운영체제의 목적은 다음과 같다.
운영체제는 아래와 같이 분류된다.
자세히 알아보자!
단일 작업(single tasking)
✔️ 한 번에 하나의 작업만 처리 가능
👍 장점: 설계하기 쉬움
👎 단점: 하나의 명령을 끝내기 전에 다른 명령을 수행할 수 없음
ex. 특수 목적 제작 기계, MS-DOS
다중 작업(multi tasking)
✔️ 동시에 두 개 이상의 작업 처리
ex. UNIX, MS Windows
단일 사용자(Single User)
ex. MS-DOS, MS Windows
다중 사용자(multi User)
✔️ 두 명 이상의 사용자가 컴퓨터에 동시에 접근 가능
ex. UNIX, NT server
일괄 처리(batch Processing)
✔️ 작업 요청을 바로 처리하기보다, 일정량을 모아서 한꺼번에 처리
✔️ 작업이 완전히 종료될 때 까지 기다려야함
✔️ 명령을 주면 화면에 출력되는 때 까지 시간이 오래걸림
시분할(time sharing)
✔️ 현재 사용하는 컴퓨터에 해당
✔️ 여러 작업 수행 시 일정한 시간 단위로 분할하여 사용
✔️ CPU의 시간을 분할하여 나누어쓴다는 의미를 강조
✔️ 일괄 처리 시스템에 비해 짧은 응답시간!
✔️ interactive한 방식(명령을 주면 당장 출력)
⭐ 목적: 사람이 느끼기에 빠르고, 주어진 자원을 최대한 활용
실시간(Realtime OS)
✔️ 정해진 시간 안에 반드시 종료됨을 보장(시분할은 x)
✔️ 일반 컴퓨터보다는 특수한 목적(공장 제어, 미사일제어 등)에서 사용
💡현재 컴퓨터는 다중 작업, 다중 사용자, 시분할 방식으로 이루어짐
(상단부) CPU
✔️ CPU 스케줄링
: 누구에게 CPU를 먼저 줄지 결정 -> 최대한의 효율을 내기 위한 방향으로 발전
(중간부) Memory
✔️ 메모리 관리
: 한정된 메모리를 적절히 분배하기 위한 관리가 이루어짐
: 분배 뿐만 아니라 새로운 데이터가 들어오기 위한 자리 확보도 해야함
(하단부) Disk
✔️파일 관리
: 디스크에 파일을 어떻게 보관할지 결정
📍CPU 스케줄링 vs Disk 스케줄링
CPU 스케줄링: 너무 빠른 속도로 인한 관리 이슈
Disk 스케줄링: 헤드의 움직임을 최소화하면서 빠른 속도로 처리할 수 있는지
사용자 관점이 아니라 개발자 관점에서 어떻게 해야 더 효율적일지 생각하기!