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)
'Development > Java' 카테고리의 다른 글
인터페이스간의 상속 (0) | 2017.10.23 |
---|---|
process & thread - 프로세스(Process), 프로세스의 다른 정의들, 프로세스 종류, 실행파일 vs 프로세스 (0) | 2017.10.23 |
Thread Name(스레드 이름) (0) | 2017.10.23 |
문맥 교환(context switching), 작업간 교환 (0) | 2017.10.23 |
멀티 쓰레드 vs 멀티 프로세스 (0) | 2017.10.23 |