운영체제(Operating System)는 사용자가 컴퓨터 하드웨어를 사용하는 데 편리함을 제공해주는 인터페이스 역할을 한다.
운영체제가 없어도 컴퓨터를 사용할 수는 있다. 하지만 직접 선을 연결하여 원하는 위치로 전기 신호를 보내줘야 했다.
원하는 결과를 얻기 위해서는 컴퓨터가 알아들을 수 있는 언어로 각 기능에 대한 지시를 전달해야 했기 때문에 컴퓨터의 구조와 프로세스를 깊이 알고 있는 사람만 사용할 수 있었다.
더 많은 사람들이 컴퓨터를 사용해 보다 쉽게 더 많은 기능을 사용하기 위해 만들어진 것이 운영체제이다.
운영체제는 물리적 자원인 하드웨어의 메모리와 프로세스를 효율적으로 사용할 수 있도록 컨트롤한다. 컴퓨터 안에서 돌아가는 다양한 운영 소프트웨어들이 충돌 나지 않고 각자의 흐름에 따라 잘 동작할 수 있도록 관제하는 역할을 하는 시스템 소프트웨어다.
사용자의 지시를 컴퓨터의 언어로 바꿔서 하드웨어에 전달해주고 처리한 결과값을 사용자가 보기 편하게 다시 변환하여 보여주는 인터페이스 역할을 한다.
운영체제는 대표적으로 MacOS, Linux, Window, AIX, Hpux, Sol OS가 있다.
기능에 따른 크게 네 가지 역할로 프로세스 관리, 기억장치 관리, 입출력장치 관리, 파일 관리를 수행한다.
키보드, 마우스, usb, 모니터 등 다양한 입출력장치와 연결되어 각각의 장치와 호환되어 사용자가 더욱 직관적으로 명령을 내릴 수 있도록 매개체 역할을 해준다.
CPU를 동작시키는 데 두 가지 요소가 있다. 운영체제는 시스템의 안정성을 유지하기 위해 책임을 수행하고 있는데, 이것을 슈퍼바이저 모드라고 한다. 사람이나 소프트웨어가 하드웨어를 직접 컨트롤하여 고장내지 못하도록 운영체제가 주도권을 쥐고 하드웨어를 통제한다.
사람이나 소프트웨어가 접근할 수 있는 보호 모드는 응용프로그램이 동작되는 곳에서 이루어진다. 모든 요청은 운영체제를 통해 슈퍼바이저 모드를 거쳐 하드웨어를 제어하는 프로세스를 거친다.
메모리와 CPU의 작업 흐름을 관리하며 시스템을 호출 해주고 프로세스간의 통신을 도와주는 핵심 구성요소가 커널이다.
커널은 일체형 커널과 마이크로 커널이 있다. 일체형 커널은 커널 안에 모든 요소들이 포함되어 있어서 서로 효율적으로 상호작용 할 수 있다. 하지만 종속성이 있기 때문에 한 곳에서 오류가 생겼을 때 전체에 영향을 준다는 위험이 있으며 코드가 복잡해진다.
마이크로 커널은 메모리 관리, 프로세스 간 통신, 스레드 스케쥴링 등의 최소한의 요소만 남기고 대부분의 서비스를 커널 외부에 위치시켜 확장성이 넓고 더 안정적으로 작동한다.
하지만 시스템을 호출하는 데 더 많은 에너지를 소모하며 요소들끼리 IPC를 거쳐야 하기 때문에 느려진다는 단점이 있다.
'Computer Science > 운영체제' 카테고리의 다른 글
[운영체제] RR 스케줄링 알고리즘의 계산 (1) | 2022.03.08 |
---|---|
[운영체제] FCFS 스케줄링 알고리즘 vs RR 스케줄링 알고리즘 (0) | 2022.03.08 |
댓글