2-2 프로세스

2023. 3. 20. 13:51운영체제

프로세스 : 메모리에 올라와 있는 프로그램, 즉 실행 중에 있는 프로그램

 

1. 프로세스 상태 천이도(process state transition diagram) : 프로세스의 일생 주기를 나타낸 것

프로세스 상태 천이도

1) 상태

-new : 프로세스 생성 상태

-ready : CPU에 의해 실행될 준비된 상태

-running : CPU에 의해 실행되고 있는 상태

-waiting : 입출력 장치 서비스를 받기 위해 기다리고 있는 상태

-terminated : 프로세스 종료 상태

 

 

2. 프로세스 제어 블록(process control block) : 프로세스의 정보를 모아 둔 것

1) 정보의 종류

- process id(프로세스 고유번호) : 프로세스의 번호

- process state(프로세스 상태) : 프로세스 상태 천이도에서 어떤 상태에 해당하는지의 정보

- memory address(메모리 주소) : 프로세스의 시작번지, 끝번지의 정보

- MMU : 메모리를 보호하기 위한 base(메모리 시작번지), limit(메모리의 크기)의 정보

- CPU 레지스터 : 다른 프로세스로 CPU가 넘어가고 다시 돌아와서 CPU가 어디서부터 연결하여 동작하면 되는지의 CPU 레지스터의 값의 정보

 

* 운영체제 ⊃ 프로세스관리부서 ⊃ PCB

 

 

3. 프로세스 대기열(process queue) : 프로세스들이 CPU, 입출력 서비스를 받으려고 줄 서서 기다리고 있는 것

1) ready queue : CPU 서비스를 받기 위해 기다리고 있는 대기열

2) device queue : 각각의 장치(프린터, 키보드, 마우스 등)들의 서비스를 받기 위해 기다려야하는 대기열

3) job queue : 요청된 작업들이 기다리는 곳

여러가지 프로세스 대기열

 

4. 스케줄러(scheduler) : 어느 것 먼저?

1) CPU 스케줄러 : CPU 스케줄링의 프로그램

- CPU 스케줄링 : ready queue에서 기다리는 많은 프로세스 중 어느 것을 선택하여 CPU의 서비스를 받게 할 것인지 결정하는 것

 

2) job 스케줄러 : job 스케줄링의 프로그램

- job 스케줄링 : 한 프로세스가 종료되어 메모리에서 사라지게 되면 job queue에서 기다리고 있던 여러 작업들 중 하나가 선택되어 메모리로 올라온다. 어느 것을 선택하여 메모리로 올릴 것인지 결정하는 것

 

3) 장기 및 단기 스케줄러

① 단기 스케줄러(short-term scheduler)

: 다중 프로그래밍 시공유 시스템에서는 한 프로세스가 오랫동안 CPU의 서비스를 독점하지 않는다. 그래서 CPU 스케줄링은 매우 짧은 시간 간격으로 일어나 CPU 스케줄러를 단기 스케줄러라고 부름

② 장기 스케줄러(long-term scheduler)

: 하나의 프로세스가 종료되어 메모리에서 사라질 때만 하는 job 스케줄링은 꽤 긴 시간 간격으로 일어나 job 스케줄러를 장기 스케줄러라고 부름

- job scheduler은 CPU바운드 작업과 i/0바운드 작업을 적절히 섞어서 메모리에 올려줘야되고, 메모리에 올라가는 프로세스의 개수를 조정한다.

 

4) 중기 스케줄러(medium-term scheduler)

: 메모리에 올라와 있는 프로세스를 관찰하다가 어떤 프로세스가 너무 오랜시간 동안 아무 실행하지 않으면 이 프로세스를 메모리에서 쓸어내리는 프로그램.

- 후면 저장장치(backing store=swap device) : 이 때 사용하는 저장장치

- swapping=swap out + swap in

① swap out : 프로세스가 메모리→후면저장장치

② swap in : 프로세스가 후면저장장치→메모리

 

5) 컴퓨터가 처리하는 작업

① CPU 바운드 작업 : CPU서비스를 많이 필요하는 작업

② i/o 바운드 작업 : 입출력 서비스를 많이 필요하는 작업

여러가지 스케줄러

 

 

5. 콘텍스트 스위칭 : 한 프로그램 돌리다가 다른 프로그램으로 전환

* 필요 프로그램

1) CPU 스케줄러

2) dispatcher : 선택된 프로세스가 실행될 수 있도록 CPU상태(PCB의 정보)를 바꿈

->콘텍스트 스위칭 추가부담
: 콘텍스트 스위칭할 때마다 현재 상태 저장, 새로운 상태 적재 등의 추가부담

두 개 프로세스의 교대 실행

 

 

 

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

2-3 CPU 스케줄링  (0) 2023.03.20
quiz3  (0) 2023.03.20
quiz2  (0) 2023.03.20
2-1 운영체제 기술의 발전  (0) 2023.03.20
♥ 1. 커널과 쉘  (0) 2023.03.19