history problem map

OS 역사는 비어 있는 CPU와 느린 응답을 줄여 온 흐름이다

배치, 멀티프로그래밍, 시분할, GUI, 모바일, 클라우드는 서로 다른 시대의 병목을 해결하며 오늘날의 스케줄링, 보호, 가상화 개념으로 이어졌다.

40s

직접 조작

사람이 카드와 장치를 직접 준비해 컴퓨터가 오래 놀았다.

50s

배치

작업을 묶고 상주 모니터가 다음 작업을 넘겼다.

60s

멀티프로그래밍

I/O 대기 중인 작업 대신 다른 작업을 CPU에 올렸다.

70s

시분할

타임 슬라이스로 여러 사용자가 즉시 반응을 느꼈다.

90s

GUI와 PC

창, 파일, 드라이버가 대중적 사용성을 만들었다.

now

모바일과 클라우드

앱 격리, 전력, 가상화, 배포 속도가 중심이 됐다.

시대
문제
해결책
오늘의 개념
초기

수동 준비와 CPU 유휴

작업 자동 전환

작업 큐, 스풀링, 배치

멀티프로그래밍

I/O 중 CPU가 놀음

여러 프로그램을 메모리에 공존

스케줄링, 메모리 보호, 동기화

시분할

터미널 응답 지연

짧은 시간 조각으로 선점

라운드 로빈, 인터랙티브 OS

클라우드

격리와 배포 속도

가상화와 컨테이너

VM, namespace, cgroup, K8s

utilization

놀고 있는 자원을 줄인다

배치와 멀티프로그래밍은 비싼 CPU의 유휴 시간을 줄였다.

response

응답 시간을 낮춘다

시분할은 처리량만이 아니라 사용자가 느끼는 대기를 줄였다.

isolation

서로 침범하지 않게 한다

메모리 보호와 앱 샌드박스는 같은 보호 문제의 다른 형태다.

portability

차이를 추상화한다

드라이버와 시스템 콜은 하드웨어 차이를 공통 인터페이스로 숨긴다.

study lens

새 기능을 볼 때 묻는 질문

병목

어떤 자원이 비어 있거나 막혀 있었나.

정책

누구에게 먼저 자원을 줄지 어떤 기준이 생겼나.

비용

해결책이 새로 만든 복잡성과 오버헤드는 무엇인가.