선점형 OS와 비선점형 OS는
현재 실행 중인 프로세스의 CPU 사용권을 운영체제가 강제로 회수할 수 있는가에 따라 구분된다.


비선점형 OS

비선점형 OS에서는 한 프로세스가 CPU를 사용하기 시작하면,
운영체제가 임의로 그 실행을 중단시키지 않는다.

현재 실행 중인 프로세스가 직접 CPU를 양보하거나,
입출력 요청 등으로 인해 Blocked 상태가 될 때까지 계속 실행된다.

즉, 실행 중인 프로세스보다 우선순위가 높은 프로세스가 Ready 상태가 되더라도,
현재 프로세스가 CPU를 내려놓기 전까지는 바로 전환되지 않는다.

Running Process      
↓
직접 양보 / I/O 요청 / 작업 종료      
↓
Scheduler      
↓
Next Process

특징

비선점형 방식은 구조가 비교적 단순하고,
실행 중간에 강제로 끊기지 않기 때문에 동기화 문제가 상대적으로 적다.

하지만 하나의 프로세스가 CPU를 오래 점유하면,
다른 프로세스들이 오래 기다려야 한다는 문제가 있다.

그래서 사용자 입력에 빠르게 반응해야 하는 환경이나,
여러 작업을 공정하게 처리해야 하는 범용 OS에는 불리할 수 있다.


선점형 OS

선점형 OS에서는 운영체제가 현재 실행 중인 프로세스의 CPU 사용권을 강제로 회수할 수 있다.

예를 들어 더 높은 우선순위의 프로세스가 Ready 상태가 되거나,
현재 프로세스에 할당된 시간 할당량, 즉 Time Quantum이 끝나면
스케줄러가 개입해 다른 프로세스로 전환할 수 있다.

Running Process      
↓
타이머 인터럽트 / 높은 우선순위 작업 등장      
↓
OS가 CPU 사용권 회수      
↓
Scheduler      
↓
Next Process

특징

선점형 방식은 특정 프로세스가 CPU를 독점하는 것을 막을 수 있다.
따라서 여러 프로세스가 동시에 실행되는 환경에서 응답성과 공정성을 높이기 좋다.

하지만 실행 흐름이 언제든 중단될 수 있기 때문에,
공유 자원 접근 시 동기화 문제가 더 중요해진다.

또한 스케줄러가 더 자주 개입하고 컨텍스트 스위칭이 발생하므로,
비선점형 방식보다 운영체제가 관리해야 할 일이 많다.