스케줄링(Scheduling), 선점형 스케줄링 (Preemptive Scheduling), 비선점형 스케줄링 (Non-preemptive Scheduling)

CODEDRAGON Development/Java

반응형

 

 

스케줄링(Scheduling)

스케줄링은 다중 프로그래밍을 가능하게 하는 운영 체제의 동작 기법입니다.

 

 

 

선점형 스케줄링 (Preemptive Scheduling)

·       어떤 프로세스가 CPU를 사용하고 있는 동안 다른 프로세스에 의해 그 CPU의 사용을 선점당할 수 있는 스케줄링 방식(하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 차지할수 있는 방식)입니다.

·       모든 프로세스에게 CPU 사용 시간을 동일하게 부여할 수 있습니다.

·       빠른 응답시간을 요하는 대화식 시분할 시스템에 적합하며 긴급한 프로세서를 제어할 수 있습니다.

·       '운영 체제가 프로세서 자원을 선점'하고 있다가 각 프로세스의 요청이 있을 때 특정 요건들을 기준으로 자원을 배분하는 방식입니다.

 

 

 

비선점형 스케줄링 (Non-preemptive Scheduling)

·       어떤 프로세스가 CPU를 할당 받으면 그 프로세스가 종료되거나 입출력 요구가 발생하여 자발적으로 중지될 때까지 계속 실행되도록 보장하는 방식(하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없는 방식)입니다.

·       순서대로 처리되는 공정성이 있고 다음에 처리해야 할 프로세스와 관계없이 응답 시간을 예상할 수 있습니다.

·       선점 방식보다 스케줄러 호출 빈도 낮고 문맥 교환에 의한 오버헤드가 적습니다.

·       일괄 처리 시스템에 적합합니다.

·       CPU 사용 시간이 긴 하나의 프로세스가 CPU 사용 시간이 짧은 여러 프로세스를 오랫동안 대기시킬 수 있으므로, 처리율이 떨어질 수 있다는 단점이 있습니다.

 

 

 

 

스케줄링 (컴퓨팅) - Wiki

https://ko.wikipedia.org/wiki/%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81_(%EC%BB%B4%ED%93%A8%ED%8C%85)