운영체제 개요

운영체제 개요

2.1 운영체제의 정의들

  • 시스템을 사용하기 편리하면서 정확하고 올바르게 동작시킬 책임이 있는 소프트웨어

  • 프로세서, 메모리, 디스크와 같은 물리적인 자원을 이용하여 일반적이고, 강력하고, 사용이 편리한 가상 형태의 자원을 생성한다. 따라서 가상머신이라고 불리기도 한다.

  • CPU, 메모리 및 디스크라는 시스템의 자원을 관리하는 시스템 관리자이다.

2.2 이후 우리가 다룰 질문들

  1. CPU는 어떻게 자원을 가상화 하는가

  2. 여러 프로세서가 순차적으로 일을 할때 발생하는 병행성 문제를 어떻게 해결할 것인가

  3. 데이터를 영속적으로 저장하는 방법은 무엇인가

2.3 운영체제 목표

  • 가장 기본적인 목표는 시스템을 편리하고 사용하기 쉽게 만드는데 필요한 개념들을 정의하는 것.

  • 운영체제의 설계와 구현에 중요한 목표는 성능이다. 다른 말로 표현하면 오버헤드를 최소화 하는 것.

  • 또 다른 목표는 응용 프로그램 간의 보호, 운영체제와 응용 프로그램 간의 보호이다.

  • 기타 목표로는 에너지 효율성, 보안, 이동성 등이 있다.

3. 운영체제 역사

3.1 초창기 운영체제 : 단순 라이브러리

초창기 운영체제는 자주 사용되는 함수들을 모아 놓은 라이브러리에 불과했다. 작업의 순서는 컴퓨터 관리자가 담당했고 작업 준비가 되면 일괄처리를 통해 프로그램을 실행시켰다.

3.2 라이브러리를 넘어서 : 보호

하지만 운영체제 코드는 시스템에 직접 접근하기 때문에 일반 응용 프로그램 코드보다 더 보안 측면에서 달라야 했다. 그래서 시스템 콜 개념이 등장했다. trap 이라는 하드웨어 명령어를 이용해 호출되면, 트랩 핸들러가 제어권을 갖고 특권 수준을 커널 모드로 격상시킨다.

3.3 멀티프로그래밍

멀티프로그래밍이란 하나의 프로세서에 여러 프로그램이 실행되는 것을 뜻한다. 자원을 효율적으로 관리하기 위해 Switching 능력이 중요해졌다.

3.4 현대

이후 PC가 등장했다. PC가 등장하면서 운영체제에서 중요하게 여기던 점들이 무시되었다. 메모리 보안에 소홀하고, 협업 스케줄링으로 인해 무한루프에 빠지기도 했다. 그렇게 암흑기가 지나고 현대와 비슷한 운영체제들이 출시되었고 지금까지 꾸준히 발전해왔다.

Last updated