CPU 스케줄러와 프로세스

Y39·2023년 4월 1일
0

toBeProgrammer

목록 보기
74/88

CPU scheduler

  • CPU가 놀지 않고 일하도록 프로세스를 "선택"하는 것.
    • ready 상태에 놓여진 프로세스 (ready queue)

dispatcher

: 선택된 프로세스가 실제로 CPU에서 "실행"될 수 있도록 하는 것

  • context switching은 조심스러운 작업이기 때문에 커널모드에서 실행
  • 선택된 프로세스 실행을 위해 유저모드로 전환
  • 실행되어야할 프로세스의 적절한 위치를 제공

스케줄링 선점 방식

  • Nonpreemptive(비선점)
    • 프로세스끼리 스스로 양보하면서 실행됨 -> 협력적(cooperative)
    • 단점: 느린 응답성
      - 기다리고 있는 시간이 길어져서 느리다고 느낄 수 있음
      -preemptive(선점)
    • 주어진 시간이 끝나면 강제로 프로세스를 끌어내리는 것 => 강제적
      • running 중인 프로세스를 주어진 시간이 끝나면 ready로
      • 단점: 데이터 일관성의 문제

다양한 스케줄링 알고리즘

  • FCFS(FIFO)
    : quere 방식
  • SJF(shortest-job-first)
    : 프로세스 cpu burst 짧은 순으로
  • SRTF(shortest-remaining-time-first)
    : 남은 cpu burst가 짧은 순으로
  • Priority
    : 우선순위가 높은 프로세스 순으로
  • RR(round-robin)
    : time slice로 나눠진 CPU time을 번갈아 가면서 실행
  • Multilevel quere
    : 프로세스들을 그룹화 해서 그룹마다 queue로 실행
profile
System.out.print("Bold")

0개의 댓글