CS/운영체제

[운영체제] cpu스케줄링, 메모리 관리, 디스크 스케줄링

happy_life 2022. 5. 31. 11:53

목차

1. cpu 스케줄링

2. 메모리 관리

3. 디스크 스케줄링

 

운영 체제 기능: 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공

 

 

1. cpu 스케줄링

개념

 운영 체제는 프로세스들에게 CPU 등의 자원 배정을 적절히 함으로써 시스템의 성능을 개선할 수 있는데, 이를 cpu 스케쥴링이라고 한다.

 

1. cpu 큐에 프로세스가 p1,p2,p3를 들어온 순서대로 스케쥴링 하는 경우

p1가  24초를 사용하여 cpu를 사용하고, 

p2가 뒤를 이어 3초(24-27)

p3가 뒤를 이어 3초(27-30)을 사용한다.

average waiting = 17

 

 2. 짧은 프로세스 순서대로 스케쥴링 하는 경우(SJF Short-Job-First)

p1 = 6, p2 = 0, p3 = 3

average waiting = 3

 

문제점: starvation(무한정 기다리는 현상) 발생가능

발생이유: 프로그램들이 계속 생성되기 때문에, 긴 것은 영원히 cpu를 못쓰게 되는 문제가 발생한다.

 

3. Round Robin 방식

starvation 문제를 해결하고 프로그램 프로세스들에게 효율적이면서, 공정하게 자원을 사용할 기회를 부여하기 위한 방법으로서, 각 프로세스에 일정 시간을 할당하고, 할당된 시간이 지나면 인터럽트가 발생하여 프로세스는 CPU를 빼앗기고 CPU뒤에 줄을 다시 선다.

예를 들어서, 화장실 변기에 앉을 수 있는 시간을 각 5분으로 정해놓는다고 하자. 그러면 큰일을 보는데에 1분이 걸리는 친구, 5분이 걸리는 친구, 20분이 걸리는 친구. 14분이 걸리는 친구가 있다면 어떻게 될까?

1분 걸리는 친구 -> 5분 걸리는 친구의 변기 사용을 지나 20분 걸리는 친구는 5분동안 큰일을 보다가, 끊고 나와서 14분 걸리는 친구 뒤에선다. 14분 친구는 마찬가지로 5분동안 큰일을 보다가, 끊고 나와서 다시 15분 친구(20-5) 뒤에 선다. 이런식으로 동작하는 방식이 RoundRobin 방식이다.

 

Q) 어떤 프로세스도 (n-1) * 할당시간 이상 기다리지 않는다.

-> 예를들어 20,10,내가 3번째 프로세스라고 가정해보자. 내가 기다릴 최대의 시간은 20이 사용할 할당시간, 10이 사용할 할당시간이다. 즉 앞의 것들의 개수 2 * 할당시간이 된다.

 

 

2. 메모리 관리

프로그램을 실행시키면 독자적인 메모리 주소가 메겨지고, 이것이 바로 물리적인 메모리에 올라가는 것이 아니고, 일단 본인만의 메모리 공간이 만들어집니다. 이것이 가상 메모리 입니다. 이 가상 메모리 중 당장 필요한 부분만 물리적인 메모리에 넣어두게 됩니다. 메모리가 가득 차, 이후 필요했던 부분이 더이상 필요하지 않게 되면 디스크의 스왑영역으로 이동시킵니다.  

Q) 다 올리면 되지 왜 가상메모리를 두고 필요한 부분만 올리나요?

-> 메모리의 용량엔 한계가 있기 때문에, 필요하지 않은 부분까지 모두 올려버리면 낭비이기 때문입니다.

 

Q) 컴퓨터가 꺼진다면 어떻게 될까요?

-> 디스크는 살아있지만, 메모리는 휘발성이라 사라집니다. 디스크(스왑영역)은 살아있습니다. 하지만 의미가 없는 영역이 되는 것입니다.

 

Q) 메모리가 가득 차,필요하지 않은 부분은 디스크의 스왑부분 넣어둔다고 했는데, 이는 어떤 과정을 통해 동작할까요?

메모리가 가득차고 5를 cpu가 가져와야하는 경우

LRU 방법

- 가장 오래 전에 참조된 페이지를 삭제합니다.

- 위의 예시에선 페이지 1이 가장 오래 전에 참조되었으므로 삭제합니다.

 

한계: 페이지 1은 전체에 걸쳐 가장 많이 사용된 것인데, 오래되었다는 이유만으로 삭제된다.

 

LFU 방법

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

- 위의 예시에선 페이지 4가 가장 적게 사용되었으므로 삭제합니다.

 

한계: 페이지 4가 신흥강자로서 떠오르는 중일 수도 있는데, 그러한 가능성들을 모두 배제해버립니다.

 

 

3. 디스크 스케줄링 

1. 디스크 개념 사진

 

2. 디스크 스케줄링의 동작 방식

2-1. SSTF(Shortest Seek Time First) 방식

현재를 기준으로 최단거리인 것을 찾아가는 방식

한계: starvation 문제

 

2-2. SCAN 방식

 

 

한계: 동일한 트랙이나 실린더 요청이 연속적으로 발생하면 헤드가 더 이상 나아가지 못하고 제자리에 머물게 되어 바깥쪽 트랙이 아사 현상을 겪는 문제가 발생.

scan 방식의 문제를 해결하기 위해 c-scan 등의 방식도 있다.

 

 

강의: http://www.kocw.net/home/search/kemView.do?kemId=1226304&ar=relateCourse