1. 운영체제 개요
운영체제란? 컴퓨터의 하드웨어와 사용자 사이에서 동작하는 프로그램
1) 운영체제의 목적
추상화 : 컴퓨터 하드웨어의 복잡성을 추상화시켜 응용 프로그램에게 표준화된 API 제공
가상화 : 여러 개의 응용프로그램과 여러 명의 사용자가 컴퓨터 자원을 공유하고 가상의 단독 컴퓨터 하드웨어를 사용하도록 제공하는 가상화 기능 제공
관리화 : 컴퓨터 자원의 제약사항에 만족시키면서 컴퓨터 자원의 성능을 최대화시켜 응용 프로그램에게 제공
2) 운영체제의 주요 기능
3) 주요 운영체제의 종류
윈도우, 맥
안드로이드, IOS
유닉스, 리눅스, 윈도우 서버
2. 프로세스 관리
1) 프로세스란 ? 수행중인 프로그램을 의미, 병행 수행이 가능한 시분할 시스템에서는 작업 단위를 의미
- 사용자 프로세스와 시스템 프로세스의 생성과 폐기
- 프로세스의 중지와 재수행
- 프로세스 통신과 동기화를 위한 기법 제공
- 교착상태 방지를 위한 기법 제공
2) 프로세스 상태
프로세스는 병행 수행될 수 있어야 하며, 동적으로 생성 및 제거될 수 있다.
프로세스 생성을 위한 fork() 라는 System Call을 통해 생성하며, 이에 의해 부모와 자식 프로세스가 생성된다.
프로세스 종료는 exit() System Call 을 통해 요청하며, 자식 프로세스는 wait() 을 통해 부모 프로세스에게 자료를 반환한다.
3) PCB(Process Control Block, 프로세스 제어 블록)
프로세스 관리를 위해 필요한 정보
프로세스가 생성될 때마다 고유의 PCB가 생성되고 프로세스가 완료되면 제거됨
포함정보 – PID(프로세스 식별번호), 프로세스 상태, 프로그램 카운터, 스케줄링 우선 순위, 레지스터 정보, 주기억장치 관리정보 등
2) 주기억장치 관리
- 기억장치를 사용하고 있는 공간과 사용자를 추적 관리
- 기억공간을 점유할 프로세스를 결정
- 기억공간을 할당하고 회수
기억장치 할당 기법 : 최초적합, 최적적합, 최악적합
단편화 문제
** 가상기억장치
3) 파일 관리
파일시스템 할당 방법 : 연속할당, 연결할당, 색인할당 ..
파일시스템 종류
i node
4) 입출력 시스템 관리
DMA
인터럽트