preemption under linux

10
선선 선선선선 && 선선 선선

Upload: hoyoung-jung

Post on 17-Jan-2015

296 views

Category:

Documents


3 download

DESCRIPTION

Preemption under Linux

TRANSCRIPT

Page 1: Preemption under Linux

선점 스케쥴링 &&커널 선점

Page 2: Preemption under Linux

왜그냥 강의자료 만들다가 심심해져서 만들었습니다 .

헷갈리시는 분들이 꽤 있더군요 .

이 자료는 유명한 공룡 책과 커널뉴비의 자료들을 발췌해서 가공했습니다 .

Page 3: Preemption under Linux

선점이란 ?사전적 의미로는 먼저 구매 권리를 획득하는 것

OS 에서는 실행중이던 프로세스를 중간에 중단시키고 대신 다른 프로세스를 실행하는 것을 말합니다 .

Page 4: Preemption under Linux

비선점형 스케쥴링옛날 OS ( 라고 하기 부끄럽다는 의견도 있지만 )

윈도우 3.1 (1992), 매킨토시 OS 9 (1984)스케쥴링은 초록색에서만 일어납니다 .프로세스 자신이 양보를 해야 다른 프로세스가 실행됨빨강 사건에서는 그냥 자기 자신이 재실행됩니다 .

Page 5: Preemption under Linux

선점형 스케쥴링요즘의 운영체제는 다 선점형 스케쥴링을 합니다 .

프로세스 자신이 원하지 않아도 OS 에 의해 중단 가능빨강 사건에도 스케쥴링이 발생우선순위가 높은 프로세스가 대신 실행됩니다 .

Page 6: Preemption under Linux

선점형 / 비선점형 커널선점형 커널과 선점형 스케쥴링은 전혀 다른

이야기입니다 .

공룡책에도 나와 있는데요……

Page 7: Preemption under Linux

비선점형 커널한 프로세스가 유저 모드에서 커널 모드로 진입하고 난

이후에는 절대 선점이 안 되는 커널을 말합니다 .

다른 프로세스가 실행되기 위해서는 다음 중 하나의 조건이 필요합니다 .

시스템 콜 종료 ( 즉 커널 유저 모드로 변환 )커널 모드에서 명시적으로 스케쥴링 기능 호출 ex. 리눅스의 경우 schedule()

Page 8: Preemption under Linux

선점형 커널커널 모드로 진입 후에도 다른 프로세스에 의해 선점이

가능하면 선점형 커널입니다 .

선점형 커널은 사용자 응답성이 더 좋아집니다 .

여러가지 문제들도 덩달아 해결됩니다 .

Page 9: Preemption under Linux

리눅스의 경우유저 프로세스에서는

원래부터 선점이 되고 있었습니다 .선점형 스케쥴러

커널 모드에서는2.4 는 커널 선점 불가

비선점형 커널2.6 부터는

CONFIG_PREEMPT 옵션을 활성화하면 커널 선점이 됩니다 .( 기본 활성화 )

선점형 커널

Page 10: Preemption under Linux

참고http://kernelnewbies.org

http://os-book.com/9 판이 벌써 나왔군요 .