면접 질문 정리 - OS(운영체제) [CPU 스케쥴링]

코난·2024년 2월 21일
0

CS 면접 정리

목록 보기
29/67

CPU 스케쥴링이란?

운영체제의 CPU 스케쥴러는 Ready 상태의 프로세스중에서 어떤 프로세스에게 CPU를 할당할지 결정하는데 이를 CPU 스케줄링이라고 한다. 즉, OS가 CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업으로 자원을 어떤 프로세스에 얼마나 할당하는지 정책을 만드는 것이라고 볼 수 있다.

Context Switching

멀티프로세스 환경에서 CPU가 어떤 하나의 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선 순위의 프로세스가 실행되어야 할 때 기존의 프로세스의 상태 또는 레지스터 값(Context)을 저장하고 CPU가 다음 프로세스를 수행하도록 새로운 프로세스의 상태 또는 레지스터 값(Context)를 교체하는 작업을 Context Switching이라고 한다.

선점형 VS 비선점형

비선점형 스케쥴링

비선점형의 경우에는 어떤 프로세스가 실행 상태에 들어가면 그 프로세스가 끝나거나 CPU를 자진 반납하는 경우가 아니라면 계속 실행되는 것을 말한다. Context Switch에 대한 오버헤드도 없고 스케쥴러가 할 일도 적어져 효율적일 수 있으나 전체 시스템의 처리율이 떨어지게 된다.
FCFS / SJF / 우선순위 스케줄링 등이 이에 해당한다.

  • 콘보이 현상(convoy effect, 호위 효과)
    short process behind long process! 로 처리 시간이 긴 프로세스가 CPU를 차지하면 다른 프로세스들은 하염없이 기다려 시스템의 효율성이 떨어진다. CPU가 작업하지 않고 쉬는 시간이 많아 작업 효율이 떨어진다. 이로 인해 평균 대기 시간이 길어지기도 한다.

FCFS (First Come First Service)

선착순 처리 방식이다.

SJF (Shortest Job First)

작업 시간이 짧은 순서대로 CPU가 처리하는 방식이다.

선점형 스케줄링

선점형의 경우에는 운영체제가 필요하다고 판단하면 실행 상테에 있는 프로세스의 작업을 중단시키고 새로운 작업을 시작할 수 있다. Timeout 상황, I/O Interrupt, System call 등이 발생한 경우에 현재 실행 상태에 있는 프로세스의 CPU를 강제 회수하고 다른 프로세스에게 CPU를 할당해줄 수 있는 스케줄링 방식이다.
라운드 로빈 / SRT / 다단계 큐 / 다단계 피드백 큐 스케줄링 등이 이에 해당한다.

SRT (Shortest Remaining Time)

작업 시간이 짧은 순서대로 CPU가 처리하되, 더 짧은 작업이 오면 진행중이던 프로세싱도 멈추고 처리하는 방식이다.

라운드 로빈(Round Robin)

대기 큐의 순서대로 처리하되, 정해진 시간만큼만 작업을 처리하고 다음 작업으로 넘기는 방식이다.

다단계 큐 (Multi Level Queue)

작업 그룹별로 별개의 큐를 운용하는 스케줄링 기법이다.

다단계 피드백 큐 (Multi Level Feedback Queue)

새로운 프로세스에 높은 우선권을 주되, 점차 낮은 우선순위로 밀려나 라운드 로빈을 수행하게 되는 방식이다.


참고

https://star7sss.tistory.com/931
https://kjhoon0330.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COS-CPU-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81
https://velog.io/@mooh2jj/CPU-%EC%8A%A4%EC%BC%80%EC%A5%B4%EB%A7%81-%EC%A0%95%EB%A6%AC
https://velog.io/@mooh2jj/CPU-%EC%8A%A4%EC%BC%80%EC%A5%B4%EB%A7%81-%EC%A0%95%EB%A6%AC
https://dev-coco.tistory.com/162

profile
몸은 커졌어도, 머리는 그대로... 하지만 불가능을 모르는 명탐정 현아! 진실은 언제나 하나!

0개의 댓글