운영체제 개요
JeongSeulho
2024년 12월 22일
준비중...
클립보드로 복사
운영체제의 역할
- 프로세스 관리 : 여러 프로세스를 동시에 실행하도록 제어
- 메모리 관리 : 메모리를 효율적으로 사용할 수 있도록
- 하드웨어 관리 : 입출력 장치와의 인터페이스 제공
- 파일 관리 : 하드에 효율적으로 파일을 저장
커널
- 프로세스, 메모리, 하드디스크를 관리하는 핵심 부분
- 커널에 접근하기 위하여 다양한 인터페이스 존재
- CLI : 명령어를 통해 커널에 접근(Linux, Unix)
- GUI : 그래픽을 통해 커널에 접근(윈도우, 맥OS)
- System Call : 어플리케이션에서 커널에 접근하기 위한 인터페이스
- 드라이버 : 하드웨어에서 커널에 접근하기 위한 인터페이스
폰 노이만 구조(프로그램 내장 방식)
- 기존에는 하드웨어로 프로그램을 구현 => 프로그램 변경 시 하드웨어(스위치, 배선 등) 변경 필요
- 폰 노이만 구조는 프로그램을 메모리에 올리고 버스를 통해 CPU와 연결하는 구조
CPU 구조
- 산술논리장치(ALU) : 실제 연산을 수행
- 제어장치 : 장치들의 동작을 제어
- 레지스터 : CPU 내부에서 사용하는 메모리
부팅 과정
- ROM에 저장된 BIOS가 전원이 들어오면 실행
- 컴퓨터 장치들의 상태 확인(RAM, HDD, CPU 등)
- HDD에 있는 부트로더를 메모리로 가져와 실행
- OS를 메모리로 가져와 실행
프로세스와 쓰레드
프로세스의 메모리 구조
- 코드 영역 : 실행할 프로그램의 코드가 저장
- 데이터 영역 : 전역 변수, 정적 변수
- 힙 영역 : 런타임에 필요시 동적으로 할당되는 부분
- 스택 영역 : 함수 관련한 정보(지역변수, 매개변수, 리턴값, 함수 종료 후 돌아갈 주소)
멀티 프로그래밍과 멀티 프로세싱
- 멀티 프로그래밍 : 메모리에 여러 프로세스를 동시에 올림
- 멀티 프로세싱 : CPU가 시분할하여 여러 프로세스를 동시에 실행