CS 기초 · 기초
운영체제가 프로세스를 관리할 때, 프로세스가 가질 수 있는 주요 상태(예: 생성, 준비, 실행, 대기, 종료)들에 대해 각각 설명해 주세요.
힌트 · 각 상태의 정의와 상태 전이 조건(예: CPU 할당, I/O 요청)을 간략하게 설명해야 합니다.
생성준비실행대기종료
모범답안
운영체제가 프로세스를 관리할 때, 프로세스는 여러 상태를 거치게 됩니다. 주요 상태로는 먼저 '생성(New)' 상태가 있습니다. 이 상태는 프로세스가 막 생성되어 운영체제에 의해 초기화되는 단계입니다.
다음은 '준비(Ready)' 상태입니다. 프로세스가 실행될 준비는 되었지만, CPU를 할당받지 못해 대기하는 상태입니다. 준비 큐에서 기다리다가 CPU를 얻으면 '실행(Running)' 상태로 전환됩니다.
'실행(Running)' 상태는 프로세스가 실제로 CPU를 할당받아 명령을 수행하는 상태입니다. 실행 중에 I/O 요청이나 인터럽트가 발생하면 '대기(Waiting)' 상태로 갈 수 있습니다.
'대기(Waiting)' 상태는 프로세스가 I/O 작업이 완료되거나 특정 이벤트가 발생하기를 기다리는 상태입니다. 이 기다림이 끝나면 다시 '준비(Ready)' 상태로 돌아가 CPU 할당을 기다립니다.
마지막으로 '종료(Terminated)' 상태는 프로세스가 실행을 마치거나 오류로 인해 종료된 상태입니다. 운영체제는 이 상태의 프로세스를 정리합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 운영체제 면접 질문
- 운영체제의 핵심 구성 요소인 커널(Kernel)은 무엇이며, 시스템에서 어떤 중요한 기능을 담당하는지 설명해 주세요.
- 컴퓨터 시스템에서 '프로세스(Process)'란 무엇을 의미하며, 프로그램과 어떤 차이가 있는지 구체적으로 설명해 주세요.
- 프로세스 내에서 '스레드(Thread)'는 어떤 역할을 하며, 멀티스레딩이 필요한 주된 이유를 설명해 주세요.
- 운영체제에서 'CPU 스케줄링'이 필요한 이유와 그 기본적인 목적은 무엇인지 설명해 주세요.
- '가상 메모리(Virtual Memory)'는 무엇이며, 이 기술이 시스템 메모리 관리에서 어떤 이점을 제공하는지 설명해 주세요.
- 프로세스와 스레드의 주요 차이점을 설명하고, 특정 애플리케이션 개발 시 어떤 기준으로 둘 중 하나를 선택할지 구체적인 시나리오를 들어 설명해보세요.