운영체제. CPU 스케줄러

sanghee·2021년 12월 17일
0

매주 진행하는 면접스터디에서 아래의 질문들에 대한 정리를 모은 글입니다.
Interview_Question_for_Beginner/OS

FCFS(First Come First Served)

  • 먼저 온 순서대로 처리한다.
  • 비선점형(Non Preemptive) 스케줄링: 일단 CPU를 잡으면 CPU burst가 완료될 때까지 CPU를 반환하지 않는다. 할당되었던 CPU를 반환될 때만 스케줄링이 이루어진다.

문제점: Convoy Effect(호위 효과)

소요시간이 긴 프로세스가 먼저 도달하여 효율성을 낮추는 현상이 발생한다.

CPU burst, I/O burst

프로세스는 CPU burst와 I/O burst를 왔다갔다하며 실행된다. CPU burst란 말 그대로 CPU 명령을 실행하는 것이고, I/O burst란 I/O를 요청한 다음 기다리는 시간을 의미한다.

SJF(Shortest Job First)

  • 다른 프로세스가 먼저 도착했어도 CPU burst가 짧은 프로세스에게 먼저 할당한다.
  • 비선점형 스케줄링이다.

문제점: Starvation(기아 현상)

사용시간이 긴 프로세스는 영원히 CPU를 할당받지 못할 수도 있다.

SRTF(Shortest Remaining Time First)

  • 새로운 프로세스가 도착할 때마다 새로운 스케줄링이 이루어진다.
  • 선점형 스케줄링: 현재 수행중인 프로세스의 남은 burst time보다 더 짧은 CPU burst time을 가진 새로운 프로세스가 도착하면 CPU를 뺏긴다.

문제점: Starvation

📌Prioirty Scheduling

  • 우선순위가 가장 높은 프로세스에게 CPU를 할당한다. 우선순위란 정수로 표현하며, 작을수록 높다.
  • 선점형 스케줄링: 더 높은 우선순위의 프로세스가 도착하면 실행중인 프로세스를 멈추고 CPU를 선점한다.
  • 비선점형 스케줄링: 더 높은 우선순위의 프로세스가 도착하면 Ready Queue의 Head에 넣는다.

문제점: Starvation

해결책: Aging(노화)

아무리 우선순위가 낮은 프로세스라도 오래 기다리면 우선순위를 높인다.

📌RR(Round Robin)

  • 현대적인 CPU 스케줄링이다.
  • 각 프로세스는 동일한 크기의 할당 시간(Time Quantum)을 갖게 된다.
  • 할당 시간이 끝나면 프로세스는 선점당하고 Ready Queue의 맨 뒤에서 다시 줄을 선다.
  • RR은 프로세스들의 CPU 사용시간이 랜덤한 경우 효과적이다.
  • RR이 가능한 이유는 프로세스의 Context를 저장할 수 있기 때문이다.

장점

  • 응답 시간이 빨라진다.
  • 공정한 스케줄링이다.

문제점

  • 할당 시간이 너무 커지면 FCFS와 같아진다. 또 너무 작아지만 잦은 Context Switch로 오버헤드가 발생한다. 그러므로 적당한 할당 시간을 설정하는 것이 중요하다.
profile
👩‍💻

0개의 댓글