크게는 커널을 포함한 주변 시스템 유틸리티까지, 작게는 커널만
컴퓨터 시스템의 자원을 효율적으로 관리 하기 위함 (효율성, 형평성)
사용자 및 컴퓨터 보안을 위해서
컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
(컴퓨터를 독자적으로 사용하는 것 같은 환상을 제공)
동시작업 가능여부
사용자의 수
처리방식
일괄처리(batch processing)
시분할 방식(time sharing)
= 사람에 특화된 시스템
실시간 (Realtime OS)
요즘은 점점 실시간에 대한 작업이 늘어나기도 하여 어떻게 지원을 해야하는지에 대한 것들도 필요
Unix
최소한의 커널 구조를 가지고 프로그램 개발에 용이하게 만들어진 C언어 기반의 운영체제
확장성이 높고 오픈소스이기 때문에 다양한 버전이 존재한다.
→ Linux, Solaris Sun OS 등
Windows
Multitasking - 여러 프로그램이 동작함
Multiprogramming - 여러 프로그램이 메모리에 올라가 있음
Time sharing - CPU의 시간을 분할해 나누어 씀
Multiprocess - 여러 프로그램의 동작
→ 비슷한 개념들, 이 개념을 사용하는 운영체제에 대해 배울 것임
Multiprocessor - 하나의 컴퓨터에 CPU가 여러 개 붙어 있음을 의미
CPU 스케줄링 - CPU 사용량, 할당을 누구한테 할까?
CPU 효율적으로 사용해야함, 특정 프로세스가 불이익을 당하면 안됨
메모리 관리 - 한정된 메모리를 쪼개어 쓰지?
주소를 통해 관리