책의 내용
- Overview. Ch.1, 2는 전통적인 PC부터, 서버, 모바일 디바이스까지 이르는 OS들에게서 발견되는 공통적이고 일반적인 특성을 다룬다. 그러나 자세한 내부 알고리즘과 작동원리에 대해서 다루지는 않는다.
- Process managament. Ch.3~5는 프로세스(process)와 동시성(concurrency)의 개념에 대해 다루며, 이는 현대 OS의 심장부라고 할 수 있다. 프로세스는 시스템에서 다루는 작업의 단위이며, 이러한 시스템은 동시적으로 실행되는 프로세스의 콜렉션이다. 또한 프로세스 스케줄링과 프로세스간의 통신방법, 쓰레드에 대해 자세히 다루며, 멀티코어 시스템과 병렬 프로그래밍의 실행 이슈에 대해서도 다룬다.
- Process synchronization. Ch.6~8은 프로세스 동기화와 데드락 핸들링을 다룬다.
- Memory management. Ch.9~10은 프로그램이 실행되는 동안의 메인 메모리 매니지먼트에 대해 다룬다. CPU 사용율과 사용자 응답속도를 모두 개선하기 위해선, 컴퓨터는 몇몇 프로세스를 메모리에 보관해야만한다. 메모리 매니지먼트에 사용되는 효과적인 알고리즘은 상황마다 다르다.
- Storage management. Ch.11, 12는 대용량 스토리지와 I/O가 현대 컴퓨터에서 다뤄지는 방식에 대해 설명한다. 컴퓨터에 붙은 I/O 디바이스는 정말 다양하고, OS가 이 디바이스들을 컨트롤하는데에 필요한 기능들도 천차만별이다. I/O가 컴퓨터에서 가장 느린 부분이기 때문에 발생하는 병목과 관련한 컴퓨터의 성능 이슈도 다룬다.
- File systems. Ch.13~15는 파일 시스템이 현대 컴퓨터 시스템에서 어떻게 다뤄지는지에 대해 설명한다. 클래식한 내부 알고리즘부터, 현대의 알고리즘에 대한 이해까지 설명하며, 각각의 특성과 장단에 대해 알아본다.
- Security and protection. Ch.16~17은 컴퓨터 시스템에 필수적인 보안 메커니즘에 대해 다룬다. OS의 프로세스는 다른 프로세스로부터 보호되어야한다. 이를 위해 인증된(authorized) 프로세스만이 파일, 메모리, CPU 등의 자원을 할당받도록 한다. 보호(Protection)는 프로그램과 프로세스, 유저가 시스템 자원에 접근하는 것을 통제하는 메커니즘이다. 이 메커니즘은 통제권을 부여하거나, 권한을 강제하는 수단을 제공해야만 한다. 보안(Security)은 시스템에 저장되는 정보의 보존성을 보호하는 역할을 하며, 시스템의 물리적 자원 또한 예외가 아니다.
- Advanced topics. Ch.18, 19는 가상 머신과 네트워크/분산 시스템에 대해 설명한다. Ch.18은 가상 머신과 그 동시대의 OS간의 관계를 소개하는데, 가상화를 가능케하는 하드웨어와 소프트웨어적 테크닉 또한 소개한다. Ch.19는 분산 시스템의 컴퓨터 네트워크에 대해 TCP/IP에 집중한 오버뷰를 제공한다.
10th Edition에서 추가된 내용
- 모바일 OS
- 멀티코어 시스템
- 가상화
- 보조기억장치(Secondary storage)의 비휘발성 메모리
참고자료
🦕 공룡책으로 정리하는 운영체제 Ch.1 (parksb.github.io) - 9판
https://www.os-book.com/OS10/slide-dir/index.html