CS 기초 · 중급
교착상태(Deadlock)가 발생하는 4가지 필수 조건을 설명하고, 실제 시스템에서 교착상태를 예방하거나 회피하기 위한 대표적인 기법들을 제시해주세요.
힌트 · 상호 배제, 점유 및 대기, 비선점, 순환 대기 조건이 충족될 때 발생합니다. 은행원 알고리즘이나 자원 순서 할당 등의 기법이 있습니다.
상호 배제점유 대기비선점순환 대기자원 할당 그래프
모범답안
교착 상태는 여러 프로세스가 서로 원하는 자원을 점유하고 놓아주지 않아, 모든 프로세스가 영원히 대기하는 상황을 말합니다. 발생 조건은 크게 네 가지입니다.
첫째, 상호 배제입니다. 자원은 한 번에 하나의 프로세스만 사용할 수 있어야 합니다. 둘째, 점유 및 대기입니다. 프로세스가 이미 자원을 가지고 있으면서, 다른 자원을 기다려야 합니다. 셋째, 비선점입니다. 프로세스가 사용 중인 자원을 강제로 빼앗을 수 없습니다. 넷째, 순환 대기입니다. 프로세스들이 서로 꼬리 물기 형태로 자원을 기다리는 상황입니다.
교착 상태를 예방하는 방법으로는 자원 순서 할당이 있습니다. 모든 자원에 고유한 순서를 부여하고, 프로세스가 순서대로 자원을 요청하도록 하는 것입니다. 회피 기법으로는 은행원 알고리즘이 있습니다. 시스템이 안전 상태를 유지하도록 자원 할당량을 조절하는 방식입니다. 자원 할당 그래프를 활용하여 교착 상태 가능성을 미리 탐지하는 방법도 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 운영체제 면접 질문
- '가상 메모리(Virtual Memory)'는 무엇이며, 이 기술이 시스템 메모리 관리에서 어떤 이점을 제공하는지 설명해 주세요.
- 프로세스와 스레드의 주요 차이점을 설명하고, 특정 애플리케이션 개발 시 어떤 기준으로 둘 중 하나를 선택할지 구체적인 시나리오를 들어 설명해보세요.
- 운영체제에서 컨텍스트 스위칭(Context Switching)이 발생하는 과정과 이로 인해 발생할 수 있는 성능상의 오버헤드에 대해 설명하고, 이를 최소화하기 위한 방법은 무엇이 있을까요?
- 가상 메모리(Virtual Memory)의 개념과 작동 원리를 설명하고, 실제 물리 메모리보다 큰 프로그램을 실행할 수 있게 하는 핵심적인 메커니즘은 무엇인지 구체적인 예시를 들어 설명해보세요.
- 페이징(Paging) 기법이 가상 메모리 시스템에서 어떻게 작동하는지 설명하고, 페이지 테이블(Page Table)과 TLB(Translation Lookaside Buffer)의 역할 및 이들이 메모리 접근 속도에 미치는 영향에 대해 논해보세요.
- 운영체제의 CPU 스케줄링 알고리즘 중 라운드 로빈(Round Robin)과 우선순위(Priority) 스케줄링의 특징과 장단점을 비교 설명하고, 각각 어떤 종류의 시스템 환경에 적합한지 예를 들어 설명해주세요.