CS 기초 · 기초
운영체제에서 'CPU 스케줄링'이 필요한 이유와 그 기본적인 목적은 무엇인지 설명해 주세요.
힌트 · 여러 프로세스가 CPU를 효율적으로 공유하고, 시스템 처리율을 높이며, 응답 시간을 최적화하기 위함입니다.
프로세스자원 활용응답 시간공정성처리량
모범답안
운영체제에서 CPU 스케줄링이 필요한 이유는 크게 두 가지입니다. 첫째, 여러 프로세스가 동시에 실행될 때 CPU라는 한정된 자원을 효율적으로 나누어 쓰기 위해서입니다. 만약 스케줄링이 없다면 특정 프로세스가 CPU를 독점하여 다른 프로세스들이 멈춰있는 상황이 발생할 수 있습니다.
둘째, 시스템의 전체적인 성능을 향상시키기 위함입니다. CPU 스케줄링은 프로세스들의 우선순위, 중요도, CPU 사용 시간 등을 고려하여 실행 순서를 결정함으로써, 전체 시스템의 처리량(throughput)을 높이고, 사용자에게 빠른 응답 시간(response time)을 제공하며, 모든 프로세스에게 공정한(fairness) 기회를 제공하는 것을 목표로 합니다. 즉, CPU를 최대한 활용하면서 사용자 경험을 개선하는 것이죠.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 운영체제 면접 질문
- 컴퓨터 시스템에서 '프로세스(Process)'란 무엇을 의미하며, 프로그램과 어떤 차이가 있는지 구체적으로 설명해 주세요.
- 프로세스 내에서 '스레드(Thread)'는 어떤 역할을 하며, 멀티스레딩이 필요한 주된 이유를 설명해 주세요.
- 운영체제가 프로세스를 관리할 때, 프로세스가 가질 수 있는 주요 상태(예: 생성, 준비, 실행, 대기, 종료)들에 대해 각각 설명해 주세요.
- '가상 메모리(Virtual Memory)'는 무엇이며, 이 기술이 시스템 메모리 관리에서 어떤 이점을 제공하는지 설명해 주세요.
- 프로세스와 스레드의 주요 차이점을 설명하고, 특정 애플리케이션 개발 시 어떤 기준으로 둘 중 하나를 선택할지 구체적인 시나리오를 들어 설명해보세요.
- 운영체제에서 컨텍스트 스위칭(Context Switching)이 발생하는 과정과 이로 인해 발생할 수 있는 성능상의 오버헤드에 대해 설명하고, 이를 최소화하기 위한 방법은 무엇이 있을까요?