운영 체제
위키백과 ― 우리 모두의 백과사전.
운영 체제(運營體制) 또는 오퍼레이팅 시스템(OS, operating system)은 컴퓨터의 하드웨어를 직접적으로 제어하고 관리하는 일을 하는 시스템 소프트웨어이다. 최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저위에서 실행되기도 한다.
운영 체제는 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치등의 자원들을 사용할 수 있도록 만들어 주고, 그들을 추상화하여 파일 시스템등의 서비스를 제공한다. 또한 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하고 있는 동안, 운영 체제는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 동시에 수행되는듯한 효과를 낸다.
이러한 운영체제의 핵심적인 부분을 커널 이라고 부르며 운영체제내에서의 커널의 영역과 그 구성에 따라 Monolithic kernel, micro kernel등으로 분류한다.
목차 |
[편집] 운영체제의 목적
- 응용 프로그램에게 그들이 실행될수 있는 실행 환경을 제공하며, 파일시스템등의 서비스를 제공한다.
- 응용 프로그램들 서로간을 보호하여 한 프로세스가 다른 프로세스를 침범할수 없게한다.
- 하드웨어등의 자원을 최대한 공정하고 효율적으로 각 프로세스에 할당한다.
[편집] 일반적으로 하는일들
- 프로세스 관리
- 프로세스들을 생성하거나 삭제하고, 중단시키거나 재개시킨다. 프로세스들간의 동기화와 통신, 교착상태 처리에 관한 메커니즘을 제공한다.
- 메모리 관리
- 메모리를 요청에 따라 할당하거나 해제한다.
- CPU 스케쥴링
- CPU를 여러 프로세스들에게 할당(즉, 스케쥴링)한다.
- 2차 기억장치 관리(디스크)
- 디스크등의 저장장치들을 캐싱하거나 관리하며, 파일시스템을 구현한다.
[편집] 시스템 구성
일반적인 응용 프로그램들을 제외한 컴퓨터 시스템은 개념적으로 세 개의 구성 요소로 구분하기도 한다. 그 세 부분은 운영체제, 쉘, 그리고 (낮은 수준의) 필수 유틸리티들이다. 쉘은 사용자가 시스템을 운용할수 있게끔 해주는 기본적인 응용 프로그램이다. 이런 쉘의 행동들은 결국 운영체제에 명령을 내리는 일이 된다. bash등의 이러한 쉘은 그러나 엄밀히 운영체제의 일부가 아니며 운영체제 입장에서는 쉘이나 필수유틸리티들이나 모두 응용프로그램일뿐 구별하지 않는다. 다만 이러한 구분은 사용자의 입장에서 필수적인 응용프로그램이라는 뜻이다.
하드웨어 ↔ 운영체제 ↔ 쉘 ↔ 응용 프로그램
[편집] 범위 및 논란
운영체제는 잘 정의된 인터페이스를 가지므로 OS와 응용프로그램간의 구분은 명확하지만, 어느정도의 서비스를 운영체제안에 포함시켜야하는가에 대한 문제는 기술적인 문제일뿐만 아니라 사업적인 문제이기도 하다. 이 문제는 다음의 경우에 분명히 드러난다. 1998년 미국 법무부는 마이크로소프트에 대해 소송을 제기하였는데, 요점은 마이크로소프트가 운영체제에 너무 많은 기능을 포함시켜 응용프로그램 제작업체들에게 피해를 주었다는 것이다.
[편집] 운영 체제의 예
- 이 부분의 본문은 운영 체제의 목록입니다.
[편집] 관련 항목
[편집] 바깥 고리
|
|
|
|---|---|
| 수학적 기초 | 수리논리학 · 집합론 · 정수론 · 그래프 이론 · 형 이론 · 범주론 · 수치 해석 |
| 계산 이론 | 오토마타 이론 · 계산 가능성 이론 · 계산 복잡도 이론 · 양자 계산 이론 |
| 알고리즘 & 자료 구조 | 알고리즘 · 자료 구조 · 계산 기하학 |
| 프로그래밍 언어 & 컴파일러 | 구문 분석 · 컴파일러 · 인터프리터 · 프로그래밍 언어 · 구조적 프로그래밍 · 객체 지향 프로그래밍 |
| 병행,병렬 & 분산 시스템 | 병행 컴퓨팅 · 분산 컴퓨팅 · 병렬 컴퓨팅 · 그리드 컴퓨팅 · 클라우드 컴퓨팅 · IaaS · PaaS · SaaS |
| 소프트웨어 공학 | 요구 분석 · 소프트웨어 설계 · 컴퓨터 프로그래밍 · 형식수법 · 소프트웨어 테스트 · 소프트웨어 개발 |
| 시스템 아키텍처 | 컴퓨터 아키텍처 · 마이크로아키텍처 · 운영 체계 |
| 통신 & 네트워크 | 컴퓨터 오디오 · 라우팅 · 네트워크 토플로지 · 암호학 |
| 데이터베이스 | 데이터 마이닝 · RDBMS · SQL |
| 인공 지능 | 자동추론 · 전산언어학 · 컴퓨터 비전 · 진화 연산 · 기계 학습 · 자연 언어 처리 · 로봇학 |
| 컴퓨터 그래픽 | 시각화 · 영상 처리 |
| 인간과 컴퓨터 상호 작용 | Computer accessibility · 사용자 인터페이스 · 착용 컴퓨터 · 유비쿼터스 컴퓨팅 · 가상현실 |
| 계산과학 | 인공생명 · 생물정보학 · 인지과학 · 계산화학 · 계산론적 신경과학 · 계산물리학 · 수치 해석 · Symbolic mathematics |

