본문 바로가기
  • AI (Artificial Intelligence)
Fundamental/Management

프로세스 스케줄러

by 로샤스 2014. 5. 29.
4. 프로세스 스케줄링


가. 프로세스 스케줄링의 목적
- CPU 이용률을 극대화 하기 위해서 항상 어떤 프로세스가 실행되도록, 프로세스 사이에서 CPU를 교체
- CPU 스케줄러 : CPU에서 수행 가능한 여러 프로세스들 중에서 하나의 프로세스 선택

나. 스케줄링 큐
1) 작업 큐(Job Queue) : 시스템 안에 모든 프로세스
2) 준비완료 큐 ( Ready Queue)
- main memory에 존재하며, 준비완료 상태에서 실행 대기 프로세스
- linked list, 각 프로세스PCB는 준비완료큐의 다음 프로세스 포인터 가르킴
3) 장치 큐(Device Queue) : I/O 장치의 동작을 대기하는 프로세스 리스트

 다. 스케줄러


1) 장기 스케줄러 (작업 스케줄러)
- 디스크 공간에 제출된 프로세스들을 선택하여 주기억장치로 적재
- 최상 성능의 시스템은 I/O bound와 CPU bound의 적절한 혼합이 필요
- 다중 프로그래밍(메모리에 있는 프로세스들의 수) 제어

2) 단기 스케쥴러(CPU 스케쥴러)
- 실행 준비가 되어있는 프로세스들 중 한 프로세스를 선택하여 CPU 할당
- 스케쥴링은 프로세스간 Context Switching이 일어나는 것

3) 중기 스케줄러
- 메모리에서 프로세스들을 제거하여, 다중 프로그래밍의 정도 완화
- 이 후 필요시 다시 메모리로 불러와서 중단 지점 부터 실행 재개(swapping)



4) 프로세스 유형

- I/O 중심 프로세스(I/O bound) : CPU 연산 보다 입/출력 수행에 더 많은 시간 소비
- CPU 중심 프로세스(CPU bound ) : 연산에 더 많은 시간 소비

라. 문맥교환 (Context Switching)

- CPU가 다른 프로세스로 교체 실행 하는 것.
- context : 프로세스의 PCB
- CPU를 다른 프로세스로 넘겨주기 위해서 지금까지의 프로세스 상태를 보관하고 새로운 프로세스의 보관된 상태를 다시 적재하는 작업
-시스템측면에서 부담이 되며 성능 병목현상을 초래, 회피방법이 thread구조임

 

 

 

 

 

 

출처 : http://i-bada.blogspot.kr/2012/04/blog-post_4837.html

 

 

 

 

 

 

 

댓글