운영체제 - 6

KOCW 운영체제 6강

양희재 교수님 강의를 듣고 쓴 글입니다.


Process Management

CPU를 어떻게 하면 각 process에게 효과적으로 나눠줄 수 있는가?


os6_1


PCB(Process Control Block)

process에 대한 모든 정보가 들어있다. process당 1개씩 할당된다. OS영역 안의 process management 안에 있다.

os6_2


Queue, Schedular

위에서 process의 state에 대해서 배웠다. 그 그림을 아래와 같이 확장시킬 수 있다.

os6_3

main memory의 공간은 Storage에 비해서 작은데 마구잡이로 main memory에 program을 loading했다가는 memory의 크기를 넘어갈 것이다. Queue가 존재하는 이유는 어떤 program이 loading돼야 할지를 정해서 memory공간을 관리해야 하기 때문이다.

Multiprogramming System에서는 main memory에 여러개의 program을 load하기 때문에 이러한 Queue가 필요한 것이다.



I/O, CPU Bounded Process

하나의 bounded process종류만 main memory에 loading하게 되면 CPU는 바쁜데 I/O는 아무일 안하거나 그 반대의 경우가 나올 수 있다. HW resource를 효율적으로 못 쓰는 것이기 때문에 Job Schedular는 main memory에 loading할 때 위 2개의 process를 적절히 섞어주는게 중요하다.


Medium-term Schedular

Time-sharing system : 각 process에게 균등하게 CPU time을 주는 것.


상황 : 서버컴퓨터 1대에 A, B, C, D, E 총 5명의 사용자가 접속하여 사용 중.

근데 만약에 B라는 사용자가 쉬러 가느라 컴퓨터를 사용하지 않는다면 어떻게 될까? Time-sharing system에서는 모든 process에게 균등하게 CPU time을 주는데 현재 B는 쉬러갔지만, B가 사용하는 process는 main memory에 존재하기 때문에 그대로 CPU time을 계속 받게 된다. → CPU resource를 비효율적으로 사용하게 됨.

따라서 B가 쓰는 process를 swap out하여 CPU time을 다른 사용자들에게 더 할당해주거나, 다른 process를 main memory에 loading할 수 있다.

Long-term보다는 자주 일어나고, short-term보다는 덜 일어나기 때문에 medium-term schedular이다.