운영 체제

위키백과 ― 우리 모두의 백과사전.

(운영체제에서 넘어옴)

운영 체제(運營體制) 또는 오퍼레이팅 시스템(OS, operating system)은 컴퓨터하드웨어를 직접적으로 제어하고 관리하는 일을 하는 시스템 소프트웨어이다. 최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저위에서 실행되기도 한다.

운영 체제는 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치등의 자원들을 사용할 수 있도록 만들어 주고, 그들을 추상화하여 파일 시스템등의 서비스를 제공한다. 또한 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하고 있는 동안, 운영 체제는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 동시에 수행되는듯한 효과를 낸다.

이러한 운영체제의 핵심적인 부분을 커널 이라고 부르며 운영체제 내에서의 커널의 영역과 그 구성에 따라 모노리딕 커널(monolithic kernel), 마이크로 커널(micro kernel)등으로 분류한다.

목차

[편집] 운영체제의 목적

  • 응용 프로그램에게 그들이 실행될수 있는 실행 환경을 제공하며, 파일 시스템 등의 서비스를 제공한다.
  • 응용 프로그램들 서로간을 보호하여 한 프로세스가 다른 프로세스를 침범할 수 없게 한다.
  • 하드웨어 등의 자원을 최대한 공정하고 효율적으로 각 프로세스에 할당한다.

[편집] 일반적으로 하는 일들

프로세스 관리
프로세스들을 생성하거나 삭제하고, 중단시키거나 재개시킨다. 프로세스 간의 동기화와 통신, 교착상태 처리에 관한 메커니즘을 제공한다.
메모리 관리
메모리를 요청에 따라 할당하거나 해제한다.
CPU 스케줄링
CPU를 여러 프로세스들에게 할당(즉, 스케쥴링)한다.
2차 기억장치 관리(디스크)
디스크 등의 저장장치들을 캐싱하거나 관리하며, 파일 시스템을 구현한다.

[편집] 시스템 구성

일반적인 응용 프로그램들을 제외한 컴퓨터 시스템은 개념적으로 세 개의 구성 요소로 구분하기도 한다. 그 세 부분은 운영체제, , 그리고 (낮은 수준의) 필수 유틸리티들이다. 셸은 사용자가 시스템을 운용할수 있게끔 해주는 기본적인 응용 프로그램이다. 이런 셸의 행동들은 결국 운영체제에 명령을 내리는 일이 된다. bash등의 이러한 셸은 그러나 엄밀히 운영체제의 일부가 아니며 운영체제 입장에서는 셸이나 필수 유틸리티들이나 모두 응용 프로그램일뿐 구별하지 않는다. 다만 이러한 구분은 사용자의 입장에서 필수적인 응용 프로그램이라는 뜻이다.

하드웨어 운영체제 응용 프로그램

[편집] 범위 및 논란

운영체제는 잘 정의된 인터페이스를 가지므로 OS와 응용프로그램 간의 구분은 명확하지만, 어느 정도의 서비스를 운영체제 안에 포함시켜야하는가에 대한 문제는 기술적인 문제일뿐만 아니라 사업적인 문제이기도 하다. 이 문제는 다음의 경우에 분명히 드러난다. 1998년 미국 법무부마이크로소프트에 대해 소송을 제기하였는데, 요점은 마이크로소프트가 운영 체제에 너무 많은 기능을 포함시켜 응용 프로그램 제작업체들에게 피해를 주었다는 것이다.

[편집] 운영 체제의 예

이 부분의 본문은 운영 체제의 목록입니다.

[편집] 관련 항목

[편집] 바깥 고리