CS/운영체제(OS)

운영체제 개념, 기능: 인터럽트, CPU 스케줄링, 메모리 관리, 디스크 스케줄링

hyunah 2022. 4. 17. 14:34

운영체제란? 

 

운영체제하드웨어 바로 위에 설치되어 사용자나 다른 모든 소프트웨어와 하드웨어를 연결해주는 역할을 하는 소프트웨어 계층이다. 좁게는 컴퓨터 메모리에 상주하는 커널을 의미하며, 넓게는 커널과 각종 시스템 유틸리티를 포함한 개념이다. 

 

 

 

 

 

 

운영체제의 목적

 

- 직접 다루기 복잡한 하드웨어를 대신 다루어 주어서 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공한다.

 

- 컴퓨터 시스템의 자원(CPU, 메모리, I/O 장치 등)을 효율적으로 관리한다.

 

 

 

 

 

 

운영체제의 기능

 

1. 인터럽트

처리가 빠른 CPU와 느린 I/O 장치(키보드, 프린트 등) 간 속도 차이를 조절한다. 인터럽트가 들어오면 운영체제가 CPU를 제어한다. 즉, 운영체제로 CPU 제어권이 이양되는 것이다.

 

 

- 타이머 인터럽트

프로세스들에게 CPU를 번갈아 할당(time sharing)하기 위해 사용한다. 일정 시간이 경과되어 타이머 인터럽트가 발생하면 CPU를 쓰던 프로세스는 큐로 이동 되어서 다음 차례를 다시 기다린다.

 

 

 

- I/O 디바이스 컨트롤러에 의한 인터럽트

요청한 I/O 작업이 끝났음을 CPU에 알리기 위해 사용한다. 이 인터럽트가 발생하면 실행 중이던 프로세스는 큐로 이동시키고 I/O 인터럽트를 처리한다.

 

 

 

 

 

2. CPU 스케줄링

어떤 프로그램에게 CPU 사용권을 줄지 결정한다. 개념적으로 1개의 CPU core는 한 번에 한 개의 기계어 명령만 수행 가능하기 때문에 CPU core를 어떤 프로그램에게 줄 건지 결정하는 정책이 필요하다.

 

 

- FCFS (First-Come First-Served)

먼저 도착한 프로세스를 먼저 처리한다. 도착하는 프로세스들의 CPU 사용 시간에 따라 CPU의 성능지표인 Waiting time과 Average waiting time의 값이 크게 좌우된다. 오래 걸리는 프로세스가 먼저 도착하면 waiting time이 훨씬 커지고, CPU 사용 시간이 짧은 것들이 먼저 도착하면 waiting time이 작아진다.

 

 

 

- SJF (Shortest-Job-First)

CPU 사용시간이 가장 짧은 프로세스를 제일 먼저 처리한다. minimum average waiting time을 보장할 수 있으나, 오래 걸리는 프로세스의 우선 순위가 기약 없이 계속 밀리는 Starvation(기아 현상)이 발생할 수 있다.

 

 

 

- RR (Round Robin)

각 프로세스에 동일한 크기의 CPU 할당 시간을 배정한다. 할당 시간이 지나면 타이머 인터럽트를 통해 프로세스로부터 CPU를 빼앗고, 해당 프로세스는 CPU 큐의 제일 뒤에 줄을 서서 다시 대기한다. 전체 프로세스 개수가 N개이고, 프로세스별 CPU 할당시간이 Q time unit인 경우, 어떤 프로세스도 (N-1) * Q time unit 이상 기다리지 않는다. 일반적으로 Q값은 10-100ms이다.

 

 

 

 

 

3. 메모리 관리

한정된 메모리를 효율적으로 나눠 쓸 수 있도록 분배한다. 디스크에서 실행파일을 실행하면 메모리에 프로세스가 생성되는데, CPU가 요청한 순서에 따라 페이지를 불러오다가 메모리가 부족해졌을 때 메모리에서 어떤 페이지를 삭제할지 결정한다.

 

 

- LRU (Least Recently Used)

가장 오래 전에 참조한 페이지를 삭제한다.

 

 

 

- LFU (Least Frequently Used)

참조 횟수가 가장 적은 페이지를 삭제한다.

 

 

 

 

 

4. 디스크 스케줄링

: 디스크에 들어온 요청을 처리할 순서를 결정. 디스크에 접근할 때 걸리는 시간의 종류에는 탐색 시간, 회전지연, 전송시간이 있는데 이 중 탐색 시간, seek time(seek distance와 유사)을 최소화하는 것을 목표로 하여 디스크 처리 순서를 결정한다.

 

 

- FCFS (First-Come First-Served)

먼저 들어온 헤드로 먼저 이동한다.

 

 

 

- SSTF (Shortest Seek Time First)

현재 헤드 위치에서 가장 가까운 곳에 위치한 헤드로 먼저 이동한다. 먼 곳의 요청이 처리되지 않는 Starvation 문제 존재한다.

 

 

 

- SCAN

헤드가 디스크의 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리한다. 다른 한쪽 끝에 도달하면 역방향으로 이동하며 길목에 있는 모든 요청을 처리하는 것을 반복한다.

 

 

 

 

 

 

운영체제 종류

 

서버용 운영체제로는 리눅스, PC용 운영체제로는 Mac OS와 Windows, 리눅스가 쓰이며 스마트디바이스용 운영체제로는 리눅스를 기반으로 하는 ios와 android가 쓰인다.