Goal

nUnderstanding a scheduler in the kernel.
nImplementing a simple kernel.
nUnderstanding system calls for process and signal.





Round-Robin Scheduling
  각 태스크는 작은 크기의 CPU Time을 부여받는데, 이것을 타임 슬라이스라고 한다. 스케쥴러가 처음 작동하게 되면, Process Ready Queue의 Front에 위치해있는 Process를 디스패칭하여 , STATE_RUNNING으로 상태를 변경하고 실행을 시키게 된다. 프로세스가 타임 슬라이스를 모두 소비하게되면, STATE_READY로 바뀌게 되고, Process Ready Queue의 Tail부분으로 가게 된다. 단, 프로세스가 타임 슬라이스를 모두 소비하지 못하고 죽는 경우, 스케쥴러는 그 상황에도 관여해서 즉시 새로운 프로세스를 디스패칭 해야한다. 일반적으로 타임 슬라이스 값이 크면, 컨텍스트 스위치 오버헤드가 적지만 응답속도가 느려지게 되고, 타임 슬라이스 값이 작으면, 컨텍스트 스위치 오버헤드가 크지만 응답속도가 빨라지게 된다.
( *이 프로그램에서는 프로세스가 Waiting State로 빠지는 경우는 없다고 가정한다. (즉, Running, Ready만 존재) )




본 소스코드를 상업적으로 이용하는것을 절대 금합니다.
저작자 표시 비영리 변경 금지
신고
by Sone 2010.11.09 20:00
| 1 |