2010. 7. 30. 19:04
실시간 CPU 스케줄링 - Proportional Share 스케줄링 OS이야기2010. 7. 30. 19:04
Proportional Share 스케줄러는 모든 응용들에게 T개의 시간 지분을 할당하여 동작한다. 한개의 응용이 N개의 시간 지분을 할당 받으면, 그 응용은 모든 프로세스 시간중 N/T 시간을 할당받게 된다. 예를들어, T = 100인 시간 지분이 있다고 봤을 때, A가 50 B가 15, C 20이면 Proportional Share 스케줄링 기법은 A가 모든 처리기 시간의 50%, B 15% C 20%를 할당받는 것이다.
Proportional share 스케줄러는 응용이 시간 지분을 할당받는 것을 보장하는 승인 제어정책과 함께 동작해야만 한다.
50+25+10 = 85개의 지분이 할당되었다. 새로운 프로세스 D가 30을 요구하면 승인 제어기는 D의 시스템 진입을 거부한다.
Pthread 스케줄링
실시간 스레드를 위하여 두 개의 스케줄링 클래스를 정의한다.
SCHED_FIFO
SCHED_RR
SCHED_FIFO는 FIFO큐를 사용하여 먼저 온 것을 먼저 서비스하는 정책에 따라서 쓰레드를 스케줄한다.
SCHED_RR(round -robine)은 같은 우선순위의 쓰레드들에게 시간 할당량을 제공하는 것을 제외하면 SCHED_FIFO와 비슷하다.
Pthread API는 스케줄링 정책에 관한 정보를 지정하고 얻어내는 두 개의 함수를 제공한다.
pthread_attr_getsced_policy(pthread_attr_t *attr, int *policy);
pthread_attr_setsched_policy(pthread_attr_t *attr , int policy);
* 인터럽트 지연 시간()
- 해당 인터럽트 서비스 루틴을 사용하여 인터럽트를 처리하기 전에 현재 수행중인 프로세스의 상태를 저장해 놓아야만 한다.
- 인터럽트 지연 시간에 영향을 주는 요인 중 하나는 kernel object 구조체를 갱신하는 동안 인터럽트가 불가능하게 된다는 것이다.
*디스패처 지연 시간()
- 스케줄링 디스패처가 하나의 프로세스를 봉쇄시키고 다른 프로세스를 시작하게 하는 데 걸리는 시간을 말한다.
- 디스 패치 지연시간을 최소한 하는 방법은 선점형 커널이다.
- 디스패치 지연 시간의 충돌단계는 다음의 두 가지 요소로 구성되어 있다.
1. 커널에서 동작하는 프로세스에 대한 선점
2. 높은 우선순위의 프로세스가 필요한 자원을 낮은 우선순위 프로세스가 방출
VxWorks 5.x
프로세스 : Wind 마이크로커널은 프로세스와 쓰레드를 제공한다. 모두 태스크라 부른다.
스케줄링 : SCHED_RR, 선점형 두 개의 스케줄링 모델을 제공한다.
인터럽트 :
IPC(interprocess communication) : Wind마이크로 커널은 두 개의 분리된 태스크 사이의 통신을 위한 매커니즘으로 메모리 공유 기법과 메시지 전달 기법을 모두 제공한다.
'OS이야기' 카테고리의 다른 글
삽입정렬 (0) | 2011.10.11 |
---|---|
커널 시작 과정 (0) | 2011.09.22 |
OS이야기 - 분산 조정 (1) | 2010.07.27 |
OS이야기 - 분산 조정 (0) | 2010.07.26 |
Operating system concepts - 입출력 시스템 (0) | 2010.07.22 |