운영체제의 CPU 스케줄링 알고리즘 중 라운드 로빈(Round Robin)과 우선순위(Priority) 스케줄링의 특징과 장단점을 비교 설명하고, 각각 어떤 종류의 시스템 환경에 적합한지 예를 들어 설명해주세요.
힌트 · 라운드 로빈은 시분할 시스템에서 공평한 자원 분배에 유리하며, 우선순위 스케줄링은 중요 작업의 빠른 처리가 필요한 실시간 시스템에 적합합니다. 기아 현상 발생 가능성도 고려해야 합니다.
모범답안
라운드 로빈 스케줄링과 우선순위 스케줄링은 CPU 스케줄링의 대표적인 알고리즘입니다.
라운드 로빈은 각 프로세스에 동일한 시간 할당량(타임 슬라이스)을 부여하고, 큐에 들어온 순서대로 CPU를 할당하는 방식입니다. 공정성이 높고 응답 시간이 비교적 빠르다는 장점이 있지만, 문맥 교환 오버헤드가 발생할 수 있고, 모든 프로세스에 동일한 중요도를 부여하기 때문에 특정 작업에 불리할 수 있습니다. 시분할 시스템이나 여러 사용자가 동시에 사용하는 환경에 적합합니다. 예를 들어, 웹 서버에서 여러 사용자의 요청을 처리할 때 라운드 로빈을 사용하여 각 요청에 공평하게 CPU 시간을 할당할 수 있습니다.
반면, 우선순위 스케줄링은 각 프로세스에 우선순위를 부여하고, 높은 우선순위의 프로세스부터 CPU를 할당하는 방식입니다. 중요도가 높은 작업을 빠르게 처리할 수 있다는 장점이 있지만, 낮은 우선순위의 프로세스가 CPU를 할당받지 못하는 기아 현상이 발생할 수 있습니다. 실시간 시스템이나 특정 작업의 중요도가 높은 환경에 적합합니다. 예를 들어, 항공기 제어 시스템에서 엔진 제어와 같은 중요한 작업에 높은 우선순위를 부여하여 즉각적으로 처리할 수 있도록 합니다. 기아 현상을 방지하기 위해 에이징 기법 등을 함께 사용하기도 합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 운영체제 면접 질문
- 교착상태(Deadlock)가 발생하는 4가지 필수 조건을 설명하고, 실제 시스템에서 교착상태를 예방하거나 회피하기 위한 대표적인 기법들을 제시해주세요.
- 가상 메모리(Virtual Memory)의 개념과 작동 원리를 설명하고, 실제 물리 메모리보다 큰 프로그램을 실행할 수 있게 하는 핵심적인 메커니즘은 무엇인지 구체적인 예시를 들어 설명해보세요.
- 페이징(Paging) 기법이 가상 메모리 시스템에서 어떻게 작동하는지 설명하고, 페이지 테이블(Page Table)과 TLB(Translation Lookaside Buffer)의 역할 및 이들이 메모리 접근 속도에 미치는 영향에 대해 논해보세요.
- 멀티스레드 환경에서 공유 자원에 대한 동시성 문제를 해결하기 위한 세마포어(Semaphore)와 뮤텍스(Mutex)의 차이점을 설명하고, 각각 어떤 상황에서 더 적합하게 사용될 수 있는지 구체적인 시나리오를 제시해주세요.
- NUMA(Non-Uniform Memory Access) 아키텍처 환경에서 애플리케이션의 메모리 접근 성능을 최적화하기 위한 OS 수준의 고려사항과 구체적인 전략에 대해 설명해 주십시오. 특히, 메모리 할당 정책과 스케줄링 관점에서 어떤 최적화 기법을 적용할 수 있을까요?
- 리눅스 커널의 Completely Fair Scheduler(CFS)는 공정성을 유지하면서도 처리량을 극대화하기 위해 어떤 핵심적인 원리들을 적용하고 있습니까? 특히, `vruntime`과 레드-블랙 트리를 활용한 스케줄링 큐 관점에서 CFS의 동작 방식을 심층적으로 설명해 주십시오.