Operating System

OS는 하드웨어를 직접 쓰지 않게 만들고, 자원을 안전하게 나눈다

애플리케이션은 복잡한 장치 규칙을 몰라도 된다. 운영체제가 자원 배분과 추상화 계층을 맡기 때문에 여러 프로그램이 같은 하드웨어를 함께 쓸 수 있다.

자원 관리자 CPU, 메모리, 디스크, 장치 사용 순서를 조율
추상화 제공자 파일, 프로세스, 소켓 같은 단순한 인터페이스 제공

사용자 공간: 요청은 단순한 API로 표현된다

브라우저 화면, 파일, 네트워크 요청
API 서버 소켓, 프로세스, 로그 파일
에디터 입력 장치와 저장소 사용
백그라운드 작업 CPU 시간과 메모리 요청
system call

운영체제 커널

공정성 + 효율성 + 보호
CPU 스케줄링 여러 실행 흐름에 CPU 시간을 나누어 동시에 도는 것처럼 보이게 한다.
메모리 격리 각 프로세스가 독립된 주소 공간을 쓰도록 보호한다.
파일 추상화 디스크 블록 대신 파일과 디렉터리라는 모델을 제공한다.
장치 드라이버 장치별 레지스터와 타이밍 차이를 공통 I/O로 감춘다.
controlled access

하드웨어: 실제 자원은 한정되어 있고 서로 다르다

CPU 한 순간 실행 가능한 작업 수 제한
Memory 용량과 접근 권한 관리 필요
Disk 블록 배치와 동시 접근 조율
Device 모델별 제어 방식 차이 흡수