운영체제의 선점형과 비선점형을 아주 간단하게 말하자면

특정 프로세스가 CPU 를 독점하는것이 불가능(운영체제가 강제로 프로세스의 CPU 점유를 제어)하면 선점형
특정 프로세스가 CPU 를 독점하는것이 가능(프로세스가 스스로 CPU 점유를 포기해야만 다른 프로세스가 실행)하면 비선점형,

커널이 짱이냐, 프로세스가 깡패냐로 이해가능 합니다.
선점형은 사전적 의미처럼 프로세스에게 뭘시켜도 커널이 내꺼야 라고 프로세스로 부터 권한을뺏어올수 있습니다.
비선점형은 프로세스가 '걍 배째' 라고 이야기 하면 그냥 그런것. 한마디로 프로세스가 깡패인 상황.

운영체제 책 'Operating Systems : Internals and Design Principles (Fifth Edition), William Stallings 저'를 참고해보면
이것을 스케쥴링 정책의 decision mode라고 부르고있고 정확히 Nonpreemptive(비선점)과 Preemptive(선점)라는 용어를 사용하고 있습니다
.
대표적인 비선점형 스케쥴링 방식으로는 FCFS(First-Come-First-Served)가 있고, 선점형 스케쥴링 방식으로는 Round-Robin이 있습니다.

리눅스 커널은 선점형 멀티태스킹을 하고, 2.4 이하는 비선점형 커널, 2.6은 선점형 커널과 비선점형 커널을 선택할 수 있습니다.

MS윈도우즈3.1은 비선점형 멀티태스킹을 합니다.
한 어플리케이션이 시스템콜 호출, 입출력 사용 등의 방법으로 CPU를 운영체제에 넘겨주지 않으면 혼자서 프로세서를 독점합니다.

+ Recent posts