선점형(preemptive) & 비선점형(non - preemptive)

 

스케줄러는 주기적인타이머 인터럽트에 의해서 하나의 프로세스에서 다른 프로세스로 전환하는 기능을 수행한다. 일반적으로 선점형과 비선점형으로 나뉜다.

 

비선점형은 프로세스가 자발적으로 CPU의 사용권을 반납했을 때만 다른 프로세스가 실행 될 수 있다.

 

선점형은 프로세스별 사용 시간을 지켜보면서 정기적으로 스케줄링 하는 구조이다 

 

 

선점 한계치

스레드를 생성할 때 개발자는 옵션으로 선점을 막기 위한 우선순위 상한을 지정할 수 있다. 지정된 상한보다 우선순위가 높은 스레드는 해당 스레드를 선점할 수 있지만, 우선순위가 같거나 낮은 스레드는 선점할 수 없다.

 

'Linux > Embedded System' 카테고리의 다른 글

뮤텍스 & 세마포어  (0) 2014.12.01
쓰레드 풀링 (Thread Poling)  (0) 2014.12.01
U-boot란 무엇인가  (0) 2014.11.24
부트로더란 무엇인가  (0) 2014.11.24
커널 포팅  (0) 2014.11.21