CPU 스케줄링은 운영 체제에서 중요한 개념으로, 프로세스 관리와 성능 향상을 위해 필요합니다. 면접관은 운영 체제 동작 원리와 프로세스 스케줄링 알고리즘에 대한 이해를 요구합니다. 시스템의 효율성과 성능을 최적화하는 방법을 알아보며 면접 질문에 대비하도록 합니다.
Q: CPU 스케줄링이 무엇인가요?
어떤 프로세스에 CPU를 할당할 것인지, 계획하는 작업입니다.
Q: FCFS(First Come First Served) 스케줄링은 무엇인가요?
가장 먼저 요청한 프로세스에 CPU를 할당하는 방식으로, 비선점형 스케줄링입니다. 간단하고 이해하기 쉽지만, 평균 대기 시간이 길어질 수 있으며 응답 시간이 길어질 수 있습니다.
Q: SJF(Shortest Job First) 스케줄링은 무엇인가요?
CPU의 burst time 길이를 고려하여 짧은 시간의 프로세스부터 실행합니다. 비선점과 선점형이 각각 존재하며 선점형에서는 현재 진행 중인 프로세스의 남은 시간보다, 이후 도착한 프로세스가 더 빨리 끝날 수 있는 프로세스라면, 순서를 바꾸는 SRTF(Shortest Remaining Time First) 가 존재합니다.
Q: Priority 스케줄링이란 무엇인가요?
각각의 프로세스에 우선순위 넘버가 있습니다. 선점형과 비선점형으로 나뉘며, 기아상태가 발생할 수 있습니다. Aging을 사용하여 기아상태를 해결해야 합니다.
- 기아 상태 : 우선 순위가 낮아서 계속 실행되지 않음.
Q: Round Robin은 무엇인가요?
각각의 프로세스에 동일한 CPU 할당 시간을 부여하는 선점형 방식입니다.
마치며
운영체제 CPU 스케줄링 방법에 대해 간략하게 알아보았습니다. 직무에 따라 다르겠지만, 웹 개발 기준 상세하게 파고드는 경우가 많진 않을 것으로 생각됩니다. 학부 시절 어렵지 않게 배운 내용이라 그냥 지나쳤다가, 간단한 대답도 못 한다면 너무 허무할 것 같네요. 기억을 되새김질하며 간단한 키워드 위주의 답변 정도라도 말할 수 있도록 정리하시길 바랍니다.
다음 시간에는 Process에 대한 면접 질문들을 알아보겠습니다.
답글 남기기