운영체제란?
- 컴퓨터의 HW와 사용자 간의 연결고리를 제공하는 인터페이스
- 운영체제를 이루는 핵심 구성요소는 커널, 컴퓨터 전원이 켜지면 메모리에 바로 올라가서 상주
- HW와 사용자를 연결하는 SW
- 왜 HW와 연결고리를 제공할까, 그냥 직접 HW를 제어하면 안 될까?
운영체제의 목적
- HW 자원을 효율적으로 관리 + 형평성도 고려
- CPU, 메모리, 디스크 등의 HW 장치를 다루는 알고리즘을 효율적으로 설계해놓고 사용자는 호출만 하도록 제공
- 프로세스, 파일, 메시지 등의 SW 자원도 관리
- 여러 사용자, 프로그램이 각각 독자적 컴퓨터에서 수행되는 것과 같은 환상을 제공
- CPU를 빠르게 할당하면서 동시 처리 되는 것처럼 보이게 함
운영체제가 하는 일 크게 3가지
- CPU 스케줄링: Process를 처리하는 하나의 CPU를 어떤 방식으로 각 Process에 할당할 것인가, Process마다 필요로 하는 처리 시간이 다른데 어떤 순서로 처리해야 좋을지
- 디스크 스케줄링: 디스크는 Head가 움직이면서 디스크를 읽고 쓰게 되는데, 어떤 동선으로 움직여야 읽고 쓰는 작업을 효율적으로 처리할 수 있을까
- 메모리 관리: 여러 프로그램들이 메모리에 올라올 때 한정된 메모리 공간 안에서 각 프로그램의 어느 부분을, 얼만큼 올릴 것인가?
운영체제의 각 기준에 따른 분류
- 동시작업 가능 여부: Single Tasking, Multi Tasking
- 용어구분
- Multi Tasking: 일반적으로 여러 작업을 동시에 진행하는 것을 말하는데 엄밀히 말하면 CPU가 여러 작업을 빠르게 번갈아 처리하면서 동시에 처리하는 것 처럼 보이도록 하는 것
- Multi Programing: 멀티태스킹 중에서도 메모리에 여러 프로그램이 동시에 올라가 있음을 강조
- Time Sharing: CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
- Multi Process: 프로세스 여러 개 동시 진행, 위와 유사한 의미
- Multi Processor: 하나의 컴퓨터에 CPU가 여러 개 붙어 있음을 강조
- 사용자 수: 컴퓨터에 동시 접근 가능한가 → Single User(ex:MS Windows), Multi User(ex:UNIX)
- 처리방식: 배치, 시분할, 실시간
의문점 정리
출처: 반효경, 운영체제, http://www.kocw.net/home/search/kemView.do?kemId=1046323