리눅스데브코스 [10주차 - 1]<스케줄러 관련 시스템 콜 & 유저레벨 스케줄러>

심우열·2023년 6월 5일
0

1. 스케줄링 정책과 우선순위 수정

1. 스케줄링 정책

  • SCHED_FIFO
    -> Realtime first in first out
    -SCHED_RR
    -> Realtime round-robin
  • SCHED_OTHER
    -> Standard round-robin time-sharing
  • SCHED_BATCH
    -> Similar to SCHED_OTHER, but intended for batch execution
  • SCHED_IDLE
    -> Similar to SCHED_OTHER, but with policy even lower than nice value +19

2. CPU 친화도(affinity)

1. CPU 친화도란?

  • 스레드가 어떤 CPU에서 동작할지 결정해 주는것
  • 친화도가 설정되면, 해당 CPU에서만 동작하게 된다

3. 유저레벨 스레드

  • 커널 스레드 스케줄러의 축소형

1. 스레드가 바뀌는 과정

  1. 스케줄링 정책에 따라 다음 스레드를 찾는다
  2. 다음 스레드를 못찾으면 현재 스레드를 돌려준다
  3. 다음 스레드가 있으면 context switching 한다

스케줄링 정책은 OS 마다 각각이 지닌 철학에 따라서 달라짐

4. 리눅스: 커널 레벨 스레드

  • 스레드 변경을 위해서 커널 레벨에 들어가야 하는 상황
  • 스케줄링에서 오버헤드가 발생

1. Coroutine

  • 스케줄링 오버헤드를 감소하기 위한 방안
  • 커널에서는 하나의 스레드라고 생각하는데 유저레벨에서 여러개의 스레드를 생성
  • 유저 레벨 스레드의 스케쥴링을 최신언어에서는 모두 지원
  • 이러한 방식을 Coroutine이라 함
profile
Dev Ops, "Git, Linux, Docker, Kubernetes, ansible, " .

0개의 댓글