운영체제를 공부하기 위해 운영체제 아주 쉬운 세 가지 이야기 라는 책을 읽고 공부한 내용을 정리합니다.
잘못되거나 부족한 부분이 있으면 언제든 댓글로 가르침 부탁드립니다.
유명 물리학자인 리처드 파인만의 “Six Easy Pieces”를 따라, 운영체제는 물리보다 절반정도 어렵기 때문에 3가지로 책을 썼다고 한다. 가상화, 병행성, 영속성 3가지 주제를 가지고 운영체제에 대해 설명한다
- 시스템을 사용하기 편리하면서 정확하고 올바르게 동작시킬 책임이 있는 소프트웨어
- 프로세서, 메모리, 디스크와 같은 물리적인 자원을 이용하여 일반적이고, 강력하고, 사용이 편리한 가상 형태의 자원을 생성한다. 따라서 가상머신이라고 불리기도 한다.
- CPU, 메모리 및 디스크라는 시스템의 자원을 관리하는 시스템 관리자이다.
초창기 운영체제는 자주 사용되는 함수들을 모아 놓은 라이브러리에 불과했다. 작업의 순서는 컴퓨터 관리자가 담당했고 작업 준비가 되면 일괄처리를 통해 프로그램을 실행시켰다.
하지만 운영체제 코드는 시스템에 직접 접근하기 때문에 일반 응용 프로그램 코드보다 더 보안 측면에서 달라야 했다. 그래서 시스템 콜 개념이 등장했다. trap 이라는 하드웨어 명령어를 이용해 호출되면, 트랩 핸들러가 제어권을 갖고 특권 수준을 커널 모드로 격상시킨다.
멀티프로그래밍이란 하나의 프로세서에 여러 프로그램이 실행되는 것을 뜻한다. 자원을 효율적으로 관리하기 위해 Switching 능력이 중요해졌다.
이후 PC가 등장했다. PC가 등장하면서 운영체제에서 중요하게 여기던 점들이 무시되었다. 메모리 보안에 소홀하고, 협업 스케줄링으로 인해 무한루프에 빠지기도 했다. 그렇게 암흑기가 지나고 현대와 비슷한 운영체제들이 출시되었고 지금까지 꾸준히 발전해왔다.