-
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