ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 8. 프로세스 관리
    운영체제/운영체제 정리 2019. 10. 7. 01:51

    프로세스 관리란 (Process Management) ?

     

    CPU 자원을 어떻게 각 프로세스 에게 효과적으로 나누어 줄 수 있는가

     

    프로세스란 ? program in execution 즉 실행중인 프로그램, 하드디스크에서 메인메모리로 올라온 프로그램

     

     

     

    CPU는 프로세스들을 관리한다.  CPU시간을 각 프로세스들에게 나눠주는 일을 한다.

     

     

    프로세스 상태

     

    -new

    :처음 하드디스크에서 메모리로 올라 온 상태

     

    -ready

    :초기화를 끝내고 실행할 준비가 된 상태

     

    -running

    : 실제로 CPU가 실행하는 프로세스의 상태

     

    -waiting

    : 프린트를 하고 싶다면? CPU는 더 이상 서비스 하지 않고 다음 프로세스로 넘어가서 그 프로세스를 running 상태를 만

     

    든다. 그럼 기존의 프로세스는 waiting 상태가 된다. 프린트가 끝나면? 다시 ready 상태로 돌아온다.

     

    -terminated

    : 작업이 아예 끝난 상태

     

    time sharing system

    : 일정 시간이 지나면 running 에서 ready 상태로 간다. 이 후 다른 프로세스가 running 상태가 된다.

     

     

     

    Process Control Block  ( PCB ) 란?

     

    하나의 프로세스에 하나의 PCB가 할당된다.  PCB안에는 프로세스에 대한 모든 정보가 들어있다.

     

    어떤 상태에 있는가에 대한 상태정보

    - new , running, ready 등

     

    메모리 번지수에 대한 정보 

    -  waiting 상태에서 다시 running 상태가 되었을때 어느 번지까지 처리되었는지 건너뛰어야 한다.

     

    mmu에 대한 정보

    - 스위칭 될때마다 base 와 limit 값을 바꿔주어서 다른 process로 침범할 수 없게  해줘야 하기 때문

     

    프로세스 ID

    -PID 프로세스마다 번호를 붙히는 것.

     

    파일 리스트

    -이 프로세스가 어떤 파일들을 사용하고 있는지

     

     

    PCB는 OS 에 프로세스 관리 영역에 들어가게 된다.

     

     

    Queues

     

    -job Queue

     

    -Ready Queue

     

    -Device Queue

    (세가지 큐와 스케쥴러들은 모두 OS의 프로세스 관리 영역에 들어가있다.)

     

    프로세스들도 줄을 서야 한다.

     

    하드디스크의 용량은 많고 메인메모리에 용량은 작다.  하드디스크에서 메인메모리로 올라갈 프로그램은 많은데

     

    다 올려줄 수는 없으니 줄을 서서 기다려야 하는 것.

     

     

     

    또 CPU는 하나뿐이니 메인메모리에 올라온 이후에도 역시 줄을 서서 기다려야 한다.  실행된 후 시간이 지나면  앞서 말

     

    햇듯이(time sharing) 돌아가서 ready Queue로  다시 가게 되는 것. 

     

     

    CPU를 사용하다가 I/O를 필요로 하면 역시 줄을 서야 한다. 다른 프로세스가 이미 I/O를 요청할 수 있기 때문이다. 이때

     

    는 Devcie Queue로 들어가게 되는데 실제로 I/O 장치가 여러개 이니 여러개의 Device Queue가 있다.

     

     

     

     

    -job schedueler 

    : job queue에 있는 프로그램중 어느 것을 먼저 메인메모리로 올릴지 결정

    (= long term scheduler : 한번 올라간 프로세스가 끝날때까지 기다려야 하기 때문)

     

    -cpu scheduler

    : ready queue 즉 메인메모리 안에 줄서있는 프로세스가 많다. CPU는 무슨 프로세스를 선택해야 할까? 줄 서서 기다리

    는 프로세스중 어느 프로세스를 서비스 해줄 것인가

    (=  short term scheduler  :I/O를 만나거나, 시간이 경과하면 바로 스위칭 되기 때문에)

     

     

    -device scheduler

    : devcie queue 디스크를 사용하려는 프로세스중 어느 것을 먼저 서비스 받게 해줄 것인가

     

     

    Swapping 

    swap out

    : OS는 메인 메모리에 있는 프로세스들중 아무 활동도 안하는 메모리를 디스크로 쫒아낼 수 있다.

     

    그리고 다른 프로세스를 올리거나 이미 올라와있는 프로세스들의 메모리를 늘려줄 수 있다.

     

    이때의 디스크는 swap devcie 이다. 

     

    swap in 

    : 활동안하는 프로세스가 다시 활동을 할때  swap device에서 다시 메인메모리로 보낸다.

     

    '운영체제 > 운영체제 정리' 카테고리의 다른 글

    10. CPU 스케쥴링  (0) 2019.10.28
    9. 문맥전환, 선점과 비선점  (0) 2019.10.13
    7. 운영체제의 주요 기능들  (0) 2019.10.04
    6. mmu란?  (31) 2019.09.24
    5. 인터럽트 기반 시스템이란?  (1) 2019.09.22
Designed by Tistory.