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 |