본문 바로가기

운영체제/기본

운영체제의 역할

운영체제의 역할

- 운영체제의 역할은 크게 3가지로 나뉜다.

(1) 컴퓨터 하드웨어 자원(CPU, memory, I/O device)의 중재자 역할

(2) 하드웨어 Interface 제공

(3) Standard Library 제공


(1) 컴퓨터 하드웨어 자원(CPU, memory, I/O device)의 중재자 역할

multi-programming을 지원하는 운영체제에서는 각 task들이 하드웨어 자원을 운영체제에게 요청하며 서로 경쟁하게 된다. 이러한 상황에서 운영체제는 각각의 task들이 정상적으로 수행될 수 있도록 CPU, memory 등 하드웨어 자원을 적절히 분배한다.




하드웨어 자원의 종류에 따라 위와 같이 분류할 수 있다.

1. CPU scheduler

2. Memory Management System.

3. I/O System

- File System

- Network System



Q. File과 Network는 큰 개념으로 I/O System의 일종인 것 같은데 왜 별도의 System으로 존재하는 것일까?

그 이유는 I/O 연산의 성능과 연관이 있다. Modern OS(UNIX, LINUX)는 I/O device 크게 3종류로 구분하였다


1. Character I/O device

- I/O의 단위가 Byte인 장치.


2. Block I/O device

- I/O의 단위가 Block인 장치.


3. Network I/O device

- Network를 제어하는 장치(ex. 소켓)


컴퓨터 시스템에서 Data를 전송한다는 것은 Queue에 그 명령이 대기하게 된다는 것을 의미한다.

그런데, 내가 실시간성이 요구되는 중요한 데이터를 전송했는데 이미 Queue에 별로 중요하지 않은 데이터로 꽉 차있다면 무슨 일이 일어나게 될까? 실시간성을 요구하는 데이터 패킷을 제 시간안에 전송하지 못하므로 실시간 서비스를 제공해 주지 못 할것이다. 운영체제는 중재자 역할을 수행해야 하므로 속도에 민감한 데이터(=실시간성이 요구하는 데이터, 중요한 데이터)는 별도의 Queue를 제공하여 해결했다.

이러한 이유로 I/O system외에 File System, Network System이 생겨난 것이다.


또한, Memory Hierarchy 개념이 있다.

Register -> DRAM -> SSD -> hard disk

우측으로 갈수록 데이터 I/O 속도가 현저히 떨어진다. 그래서 컴퓨터 아키텍쳐로 각 단계 사이에 Cache 메모리를 두어 I/O 속도 차이에 따른 성능저하를 최대한 막았다.

Register -> Cache -> DRAM -> SSD -> hard disk

이러한 방식으로 Cache라는 별도의 하드웨어를 이용하여 I/O 속도차이에 따른 성능저하를 완화 시킬 수도있고

DRAM 일부 공간에 disk데이터를 미리 올려둔다면 Cache와 같은 기능을 수행할 수 있을 것이다.

이러한 역할을 담당하는 것이 File System이다.