운영체제 신입 기술면접

운영체제 신입 · 취준 (0~1년) CS 기초 7문항 조회수 29 · 2026-08-07 (금) 22:11:13
1 프로세스와 스레드
Easy

Q. 프로세스와 스레드의 차이점을 설명해주세요.

메모리 공간의 독립성과 자원 공유 측면에서 생각해보세요.

A. 모범답안

프로세스는 실행 중인 프로그램으로 독립적인 메모리 공간(코드, 데이터, 힙, 스택)을 가집니다. 스레드는 프로세스 내부의 실행 단위로, 같은 프로세스의 스레드들은 코드, 데이터, 힙 영역을 공유하고 스택만 독립적으로 가집니다. 프로세스 간 통신은 IPC가 필요하지만 스레드 간에는 공유 메모리를 통해 쉽게 데이터를 주고받을 수 있습니다. 스레드는 프로세스보다 생성과 컨텍스트 스위칭 비용이 적어 경량 프로세스라고도 불립니다.

핵심 포인트
  • • 프로세스는 독립적인 메모리 공간을 가짐
  • • 스레드는 프로세스 내에서 코드/데이터/힙을 공유
  • • 스레드가 생성 및 전환 비용이 더 적음
답변에 넣으면 좋은 키워드
프로세스 스레드 메모리 공간 컨텍스트 스위칭 IPC 공유 메모리
실무에서는

웹 서버에서 동시에 여러 클라이언트 요청을 처리할 때 멀티 스레드를 활용합니다.

Follow-up 질문

멀티 프로세스와 멀티 스레드 방식 중 어떤 상황에서 어떤 것을 선택하는 것이 좋을까요?

2 CPU 스케줄링
Easy

Q. CPU 스케줄링 알고리즘 중 FCFS, SJF, Round Robin의 특징을 각각 설명해주세요.

각 알고리즘이 프로세스를 선택하는 기준과 장단점을 생각해보세요.

A. 모범답안

FCFS(First Come First Served)는 먼저 도착한 프로세스를 먼저 처리하는 방식으로 구현이 간단하지만 긴 프로세스가 먼저 오면 평균 대기시간이 길어지는 convoy effect가 발생합니다. SJF(Shortest Job First)는 실행시간이 가장 짧은 프로세스를 먼저 처리해 평균 대기시간을 최소화하지만 실행시간을 미리 알기 어렵고 긴 프로세스가 기아 상태에 빠질 수 있습니다. Round Robin은 각 프로세스에 동일한 시간 할당량(time quantum)을 주고 순환하며 실행하는 방식으로 응답시간이 빠르고 공평하지만 문맥 교환 오버헤드가 발생합니다.

핵심 포인트
  • • FCFS는 도착 순서대로 처리하며 convoy effect 발생 가능
  • • SJF는 평균 대기시간 최소화하지만 기아 문제 존재
  • • Round Robin은 공평하고 응답시간이 빠르지만 문맥 교환 오버헤드 발생
답변에 넣으면 좋은 키워드
FCFS SJF Round Robin convoy effect 기아 상태 time quantum 문맥 교환
실무에서는

실시간 시스템에서는 응답시간이 중요하므로 Round Robin이나 우선순위 스케줄링을 주로 사용합니다.

Follow-up 질문

time quantum의 크기가 성능에 어떤 영향을 미치나요?

3 메모리 관리
Medium

Q. 페이징(Paging) 기법에서 페이지 테이블의 역할과 주소 변환 과정을 설명해주세요.

가상 주소가 물리 주소로 변환되는 과정에서 페이지 번호와 오프셋이 어떻게 사용되는지 생각해보세요.

A. 모범답안

페이징은 프로세스의 가상 메모리를 고정 크기의 페이지로 나누고 물리 메모리를 같은 크기의 프레임으로 나누어 관리하는 기법입니다. 페이지 테이블은 각 프로세스마다 존재하며 가상 페이지 번호를 물리 프레임 번호로 매핑하는 정보를 저장합니다. 주소 변환 시 가상 주소를 페이지 번호와 오프셋으로 분리하고, 페이지 테이블에서 해당 페이지 번호에 대응하는 프레임 번호를 찾아 오프셋과 결합해 물리 주소를 생성합니다. 이를 통해 외부 단편화를 해결하고 메모리를 효율적으로 관리할 수 있습니다.

핵심 포인트
  • • 페이지 테이블은 가상 페이지를 물리 프레임으로 매핑
  • • 가상 주소는 페이지 번호와 오프셋으로 분리됨
  • • 외부 단편화를 해결하고 메모리 효율성 향상
답변에 넣으면 좋은 키워드
페이징 페이지 테이블 가상 주소 물리 주소 프레임 오프셋 외부 단편화
실무에서는

운영체제가 각 프로세스에 독립적인 메모리 공간을 제공하면서도 물리 메모리를 효율적으로 사용하기 위해 페이징을 활용합니다.

Follow-up 질문

페이지 테이블의 크기가 너무 커지는 문제를 해결하기 위한 방법에는 무엇이 있나요?

4 가상 메모리
Medium

Q. 페이지 교체 알고리즘 중 LRU(Least Recently Used)의 동작 원리를 설명하고, FIFO와 비교했을 때의 장점을 말씀해주세요.

각 알고리즘이 교체할 페이지를 선택하는 기준의 차이를 생각해보세요.

A. 모범답안

LRU는 가장 오랫동안 사용되지 않은 페이지를 교체하는 알고리즘으로, 최근 사용 시간을 기록하여 페이지 폴트 발생 시 가장 오래전에 참조된 페이지를 선택합니다. 시간적 지역성 원리에 기반하여 최근에 사용된 페이지는 가까운 미래에 다시 사용될 가능성이 높다는 가정을 합니다. FIFO는 메모리에 가장 먼저 들어온 페이지를 교체하는데 최근 사용 여부와 무관하게 교체하므로 Belady의 모순이 발생할 수 있습니다. LRU는 실제 사용 패턴을 반영하므로 FIFO보다 페이지 폴트율이 낮고 성능이 우수하지만 구현 비용이 더 높습니다.

핵심 포인트
  • • LRU는 가장 오래 사용되지 않은 페이지를 교체
  • • 시간적 지역성 원리에 기반한 알고리즘
  • • FIFO보다 페이지 폴트율이 낮지만 구현 비용이 높음
답변에 넣으면 좋은 키워드
LRU FIFO 페이지 교체 페이지 폴트 시간적 지역성 Belady의 모순
실무에서는

데이터베이스 버퍼 캐시나 웹 브라우저 캐시에서 LRU 알고리즘을 변형하여 자주 사용합니다.

Follow-up 질문

LRU를 실제로 구현할 때 어떤 자료구조를 사용하면 효율적일까요?

5 프로세스 동기화
Medium

Q. 임계 구역(Critical Section) 문제를 해결하기 위한 세 가지 조건(상호 배제, 진행, 한정 대기)을 설명해주세요.

여러 프로세스가 공유 자원에 접근할 때 만족해야 하는 안전성과 효율성 조건을 생각해보세요.

A. 모범답안

상호 배제(Mutual Exclusion)는 한 프로세스가 임계 구역을 실행 중일 때 다른 프로세스는 진입할 수 없어야 한다는 조건으로 데이터 일관성을 보장합니다. 진행(Progress)은 임계 구역에 아무도 없을 때 진입하려는 프로세스가 있다면 합리적인 시간 내에 선택되어 진입해야 한다는 조건으로 교착 상태를 방지합니다. 한정 대기(Bounded Waiting)는 프로세스가 임계 구역 진입을 요청한 후 무한정 대기하지 않고 유한한 시간 내에 진입할 수 있어야 한다는 조건으로 기아 상태를 방지합니다. 이 세 조건을 모두 만족해야 올바른 동기화가 이루어집니다.

핵심 포인트
  • • 상호 배제는 동시 접근을 막아 데이터 일관성 보장
  • • 진행은 임계 구역이 비었을 때 진입 가능하도록 보장
  • • 한정 대기는 무한 대기를 방지하여 기아 상태 해결
답변에 넣으면 좋은 키워드
임계 구역 상호 배제 진행 한정 대기 동기화 교착 상태 기아 상태
실무에서는

멀티 스레드 환경에서 공유 변수나 파일에 접근할 때 임계 구역 문제를 해결하기 위해 Lock을 사용합니다.

Follow-up 질문

세마포어와 뮤텍스의 차이점은 무엇인가요?

6 교착 상태
Medium

Q. 교착 상태(Deadlock)가 발생하기 위한 네 가지 필요조건을 설명하고, 이 중 하나를 제거하여 교착 상태를 예방하는 방법을 예시를 들어 설명해주세요.

상호 배제, 점유와 대기, 비선점, 순환 대기 조건을 각각 생각해보세요.

A. 모범답안

교착 상태의 네 가지 필요조건은 상호 배제(자원을 동시에 사용할 수 없음), 점유와 대기(자원을 가진 채 다른 자원을 기다림), 비선점(다른 프로세스의 자원을 강제로 빼앗을 수 없음), 순환 대기(프로세스들이 원형으로 자원을 기다림)입니다. 예를 들어 순환 대기 조건을 제거하려면 모든 자원에 순서를 정하고 프로세스가 오름차순으로만 자원을 요청하도록 강제할 수 있습니다. 자원 A, B, C에 번호 1, 2, 3을 부여하고 프로세스가 항상 낮은 번호부터 요청하면 순환 고리가 형성되지 않아 교착 상태를 예방할 수 있습니다.

핵심 포인트
  • • 네 가지 조건: 상호 배제, 점유와 대기, 비선점, 순환 대기
  • • 네 조건 중 하나라도 제거하면 교착 상태 예방 가능
  • • 자원 순서화를 통해 순환 대기 조건 제거 가능
답변에 넣으면 좋은 키워드
교착 상태 상호 배제 점유와 대기 비선점 순환 대기 자원 순서화
실무에서는

데이터베이스 시스템에서 여러 트랜잭션이 동시에 레코드를 잠글 때 교착 상태가 발생할 수 있어 탐지 및 회복 메커니즘을 사용합니다.

Follow-up 질문

교착 상태 예방, 회피, 탐지 및 회복 방법 중 실무에서 어떤 방법을 주로 사용하나요?

7 파일 시스템
Easy

Q. 파일 시스템에서 i-node(index node)의 역할과 저장하는 정보에 대해 설명해주세요.

파일의 메타데이터와 실제 데이터 블록 위치 정보를 어떻게 관리하는지 생각해보세요.

A. 모범답안

i-node는 유닉스 계열 파일 시스템에서 파일의 메타데이터를 저장하는 자료구조입니다. 파일의 크기, 소유자, 권한, 생성 및 수정 시간, 파일 타입 등의 속성 정보를 포함합니다. 또한 파일의 실제 데이터가 저장된 디스크 블록의 주소를 가리키는 포인터들을 가지고 있어 데이터 블록에 접근할 수 있게 합니다. 파일 이름은 i-node에 저장되지 않고 디렉토리 엔트리에 저장되며, 디렉토리는 파일 이름과 i-node 번호의 매핑을 관리합니다. 하나의 i-node는 여러 디렉토리 엔트리에서 참조될 수 있어 하드 링크를 구현할 수 있습니다.

핵심 포인트
  • • i-node는 파일의 메타데이터를 저장하는 자료구조
  • • 파일 속성과 데이터 블록 주소 포인터 포함
  • • 파일 이름은 디렉토리에 저장되고 i-node 번호로 연결됨
답변에 넣으면 좋은 키워드
i-node 파일 시스템 메타데이터 데이터 블록 디렉토리 하드 링크
실무에서는

리눅스에서 ls -i 명령으로 파일의 i-node 번호를 확인할 수 있으며, 파일 시스템 백업과 복구 시 i-node 정보가 중요합니다.

Follow-up 질문

직접 블록 포인터만으로 큰 파일을 표현하기 어려울 때 어떤 방법을 사용하나요?

댓글 0

로그인 후 댓글을 작성할 수 있습니다.

아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!