ssausand-sunny / cs-study

면접.. 붙으려면 CS 공부 해야겠지?
0 stars 0 forks source link

CPU 스케줄링에 대해 설명해 주세요 #36

Open Leeminw opened 4 months ago

Leeminw commented 4 months ago

문제

CPU 스케줄링에 대해 설명해 주세요

예상 꼬리 질문 - 선점형, 비선점형 스케줄링의 차이점이 뭔가요? - 선점형, 비선점형 스케줄링 알고리즘 각각 하나씩만 설명해 주세요.

들어가야 할 키워드 정리

Hunnibs commented 4 months ago
질문 답변

cpu 스케쥴링이란 작업을 어느 프로세스에 할당할지 정하는 과정을 의미합니다.

꼬리 질문

* 선점형, 비선점형 스케줄링의 차이점이 뭔가요? 선점형 스케쥴링은 현재 실행중인 프로세스를 다른 우선순위가 더 높은 작업이 들어올 경우 대체할 수 있는 방법입니다. 비선점형 스케쥴링은 현재 프로세스를 점유하고 있는 작업이 있을 경우 다음 프로세스는 먼저 온 프로세스의 작업이 끝날 때까지 cpu에 접근할 수 없는 방법입니다. * 선점형, 비선점형 스케줄링 알고리즘 각각 하나씩만 설명해 주세요. 비선점 스케쥴링의 예시로 Fcfs이 있습니다. 가장 먼저 들어온 작업을 우선적으로 처리하여 차례대로 작업을 처리하는 과정입니다. 선점 스케쥴링의 예시로는 라운드-로빈 방식이 있습니다. 프로세스 당 할당 시간을 정해두고 들어온 프로세스 순서대로 처리하지만 일정 시간이 지나면 다음 프로세스에게 cpu를 넘겨주고 대기열의 맨 뒤로 이동합니다.

kgh2120 commented 4 months ago
예상 답변 CPU 스케줄링이란, CPU라는 자원을 효율적이게 사용하고, 각 프로세스에게 공평한 CPU 점유를 얻게 하기 위해서 특정한 알고리즘에 의해 실행할 프로세스를 선택하는 것을 말합니다. 이때 사용하는 알고리즘을 스케줄링 알고리즘이라 하며, 각 프로세스가 대기하는 시간을 줄이는 것을 목표로 설계됩니다. 대표적인 알고리즘으로는 라운드 로빈, SJF(Shortest Job First), 멀티 레벨 피드백 큐가 있습니다.
예상 꼬리 질문 답변 - 선점형, 비선점형 스케줄링의 차이점이 뭔가요? 선점형 스케줄링은 현재 실행 중인 프로세스의 CPU를 다른 프로세스가 강제로 점유할 수 있는 것을 말합니다. 비선점형 스케줄링은 현재 실행 중인 프로세스가 종료되거나, 블록되는 경우에만 다른 프로세스가 CPU를 점유할 수 있습니다. 선점형 스케줄링의 대표적인 예는 라운드로빈이 있고, 비선점형 스케줄링의 예시는 FCFS가 있습니다. - 선점형, 비선점형 스케줄링 알고리즘 각각 하나씩만 설명해 주세요. 선점형 스케줄링 알고리즘의 예시로 라운드로빈을 설명하겠습니다. 라운드로빈이란 각각의 프로세스가 최대 CPU 점유 시간인 퀀텀만큼 CPU를 점유할 수 있는 기법입니다. 라운드로빈을 사용할 경우 각각의 프로세스는 최대 Q * (N-1)의 대기 시간만을 갖게 되어 CPU 점유의 공평성을 확보할 수 있습니다. 하지만 Q의 단위에 따라서 FCFS이 되거나, 너무 작게 하면 Context Switching에 대한 오버헤드로 인해 손해가 발생할 수 있습니다. 비선점 스케줄링의 예시는 SJF(Shortest Job First) 알고리즘을 설명하겠습니다. CPU를 점유할 시간이 가장 적은 프로세스를 우선적으로 처리하는 알고리즘으로 이전 알고리즘인 FCFS에 비해 프로세스의 대기 시간을 줄일 수 있다는 장점이 있습니다. 하지만 프로세스의 기아 문제가 발생할 수 있고, 프로세스의 종료 시간을 예측하기 어렵다는 단점이 존재합니다.
Leeminw commented 4 months ago
예상 답변

cpu 스케줄링이란, cpu를 효율적으로 사용하기 위해 cpu의 자원을 여러개의 프로세스에 할당하는 과정을 말합니다.

예상 꼬리 질문 답변

- 선점형, 비선점형 스케줄링의 차이점이 뭔가요? 선점형 알고리즘의 경우 한 프로세스가 자원을 점유 중일때, 다른 우선순위가 높은 프로세스가 들어와서 cpu 의 자원을 빼았는 방식의 스케줄링입니다. 반대로 비선점형의 경우 보유한 자원을 실행이 끝날때까지 반납하지 않는 것을 말합니다. - 선점형, 비선점형 스케줄링 알고리즘 각각 하나씩만 설명해 주세요. 선점형 알고리즘의 대표적인 것은 라운드로빈 알고리즘이 있습니다. 라운드 로빈의 경우 정해진 퀀텀의 시간만큼 자원을 할당받 고, 시간이 지나게 되면 다음 프로세스가 자원을 빼았기게 됩니다. 비선점 알고리즘의 대표적인 알고리즘은 FCFS 알고리즘이 있습니다. 먼저 도착한 작업을 순차대로 처리하는 Queue와 같은 동작을 수행합니다.

kjy0349 commented 4 months ago
예상 답변

CPU를 점유해야 할 프로세스나 쓰레드가 존재할 경우, 최고의 효율을 낼 수 있도록 운영체제에서 직접 어떠한 순서로 실행 단위들이 CPU를 점유해 사용해야할지 계획을 짜는 것을 말합니다.

예상 꼬리 질문 답변

1. 선점형/비선점형 차이
- 선점형의 경우 특정 프로세스가 CPU를 사용 중일 경우에도 이를 가로채 CPU 점유가 가능할 경우(운영체제가 조절)이고, 비선점형의 경우 해당 프로세스가 CPU를 포기하지 않으면 다른 프로세스가 점유하지 못하는 형태를 말합니다.
2. 선점형/비선점형 스케줄링 알고리즘 - 선점형 스케줄링 알고리즘의 경우 라운드 로빈 스케줄링 방식이 있습니다. 모든 프로세스들이 순서대로 일정한 시간 단위만큼 CPU를 사용할 수 있도록 할당하는 방식입니다. 시간 단위가 작을 수록 오버헤드가 크지만 응답시간이 빨라질 수 있고, 클수록 스위칭 오버헤드가 작지만 CPU를 오래 점유하는 프로세스가 존재할 경우 다른 프로세스들이 응답하지못해 전체적인 응답시간이 길어질 수 있습니다. - 비선점형 스케줄링 알고리즘의 경우 SJF(Shortest Remaining Time First Scheduling)이 있습니다. CPU 점유 시간이 가장 짧은 프로세스에 CPU를 할당하는 방식입니다. 해당 방식은 평균 대기 시간을 최소화할 수 있지만, 점유 시간이 큰 프로세스들이 계속해서 뒤로 밀려날 수 있는 단점이 있습니다.