Skip to content

Linux:Kernel:Scheduling

Multitasking

멀티태스킹 운형체제는 아래와 같은 방식이 있다.

  • 협동형 멀티태스킹 (Cooperative Multitasking)
  • 선점형 멀티태스킹 (Preemptive Multitasking)

정책 (Policy)

스케줄러가 무엇을 언제 실행할 것인지를 정하는 동작. 최적화를 위해 프로세스를 아래와 같이 두 가지로 분류한다.

  • 입출력중심 프로세스: 대부분의 GUI프로그램 (키보드나 마우스를 통해 사용자 동작을 기다리는 데 대부분의 시간을 사용한다.)
  • 프로세서중심 프로세스: ssh-keygen, MATLAB과 같은 많은 수학적 연산을 필요로 하는 프로그램.

프로세스 우선순위

리눅스 커널은 두 가지 별개의 우선순위 단위를 가지고 있다.

  • Nice value: -20 ~ +19 (Default 0): 값이 클수록 우선순위가 낮다. ps명령어를 사용하여 확인할 수 있다.1 (값이 클수록 시스템의 다른 프로세스에 더 친절 - nice - 해진다는 의미)
  • 실시간 우선순위: 0 ~ 99: 값이 클수록 우선순위가 높다. POSIX.1b에 따라 구현된다. ps명령으로 확인 가능하다.2

타임슬라이스 (Timeslice)

타임슬라이스는 프로세서 동작 시간을 실행 가능한 프로세스에게 잘라서 나눠준다는 뜻이다.

스케줄러 클래스

용어정리

선점 (Preemption)
실행 중인 프로세스를 강제로 중지시키는 작업.

See also

Favorite site

References


  1. ps -el의 NI값으로 확인 가능. 

  2. ps -eo state,uid,pid,ppid,rtprio,time,comm의 RTPRIO값으로 확인 가능. '-'는 실시간 프로세스가 아님을 뜻한다.