운영체제 CS 지식백과

운영체제 관련 핵심 개념을 개발자 기술 면접에서 설명할 수 있도록 문서 16편으로 정리했습니다. 각 문서는 개념, 동작 원리, 시간 복잡도와 실무 선택 기준을 함께 다룹니다.

최종 업데이트 2026.09.17
  1. CPU 스케줄링 (CPU Scheduling)

    운영체제가 준비 상태의 여러 프로세스 중 다음에 CPU를 쓸 프로세스를 고르는 CPU 스케줄링을 다룬다. 선점과 비선점, FCFS부터 라운드 로빈과 MLFQ까지 알고리즘 비교, 리눅스 CFS와 EEVDF까지 정리한다.

  2. 교착 상태 (Deadlock)

    둘 이상의 프로세스가 서로가 점유한 자원을 기다리며 영원히 멈추는 교착 상태를 다룬다. 네 가지 필요조건, 예방과 회피와 탐지 회복 전략, 기아와 라이브락의 구분, 데이터베이스 데드락 실무 사례까지 정리한다.

  3. 파일 시스템 (File System)

    저장 장치 위에 파일과 디렉터리라는 추상화를 만드는 파일 시스템을 다룬다. 슈퍼블록과 아이노드 구조, 연속과 연결과 색인 할당 비교, 저널링과 쓰기 시 복사, VFS 계층까지 정리한다.

  4. 인터럽트 (Interrupt)

    CPU가 하던 일을 멈추고 긴급한 사건을 먼저 처리하게 하는 인터럽트를 다룬다. 폴링과의 비교, 하드웨어 인터럽트와 예외와 트랩의 구분, 처리 절차와 상반부 하반부, 타이머 인터럽트와 멀티태스킹의 관계를 정리한다.

  5. 프로세스 간 통신 (IPC, Inter Process Communication)

    독립된 주소 공간을 가진 프로세스들이 데이터를 주고받는 IPC를 다룬다. 메시지 전달과 공유 메모리 모델, 파이프와 메시지 큐와 소켓 등 기법 비교, 파이프 코드 예시와 실무 선택 기준까지 정리한다.

  6. 메인 메모리와 메모리 관리 (Main Memory)

    CPU가 직접 읽고 쓰는 메인 메모리와 이를 여러 프로세스에 나누는 메모리 관리를 다룬다. 논리 주소와 물리 주소, MMU, 연속 할당과 단편화, 스와핑과 가상 메모리, 버디 시스템까지 정리한다.

  7. 운영체제란 무엇인가 (Operating System)

    하드웨어와 응용 프로그램 사이에서 자원을 관리하고 추상화를 제공하는 운영체제를 다룬다. 커널 모드와 사용자 모드, 모놀리식과 마이크로커널 비교, 부팅 과정과 컨테이너까지 큰 그림을 정리한다.

  8. 시스템 콜과 fork, exec, wait (System Call)

    사용자 프로그램이 커널 기능을 쓰는 공식 통로인 시스템 콜과 프로세스를 만들고 실행하고 거두는 fork, exec, wait를 다룬다. 트랩을 통한 커널 진입, 쓰기 시 복사, 좀비와 고아 프로세스, 셸의 동작 원리까지 정리한다.

  9. 페이지 교체 알고리즘 (Page Replacement Algorithm)

    물리 메모리가 가득 찼을 때 내보낼 페이지를 고르는 페이지 교체 알고리즘을 다룬다. FIFO와 LRU와 클럭 알고리즘 비교, 벨라디의 모순, 스래싱과 작업 집합 모델까지 정리한다.

  10. 페이징과 세그먼테이션 (Paging and Segmentation)

    프로세스 주소 공간을 물리 메모리에 비연속적으로 배치하는 페이징과 세그먼테이션을 다룬다. 주소 변환과 TLB, 다단계 페이지 테이블, 두 기법의 단편화와 보호 관점 비교까지 정리한다.

  11. PCB와 컨텍스트 스위칭 (Context Switching)

    커널이 프로세스를 관리하는 자료구조인 PCB와 실행 문맥을 저장하고 복원하는 컨텍스트 스위칭을 다룬다. PCB의 구성, 전환 절차, 캐시와 TLB 오염이라는 간접 비용, 비용을 줄이는 설계까지 정리한다.

  12. 프로세스의 주소 공간 (Address Space)

    프로세스마다 부여되는 독립된 가상 메모리 영역인 주소 공간을 다룬다. 코드와 데이터와 BSS와 힙과 스택의 역할, 변수별 배치 예시, 스택과 힙의 동작 차이, ASLR과 가상화의 이점까지 정리한다.

  13. 프로세스 관리와 상태 전이 (Process Management)

    프로세스의 생성부터 종료까지 생명주기를 추적하는 프로세스 관리를 다룬다. 5상태 전이 모델과 상태 큐, 장기 중기 단기 스케줄러, 좀비와 고아 프로세스, 리눅스의 실제 상태 이름까지 정리한다.

  14. 프로세스와 스레드 (Process vs Thread)

    독립된 자원을 가진 프로세스와 그 안의 실행 흐름인 스레드를 다룬다. 공유하는 것과 따로 가지는 것, 멀티프로세스와 멀티스레드의 선택 기준, 커널 수준 스레드와 고루틴 같은 경량 스레드까지 정리한다.

  15. 경쟁 상태 (Race Condition)

    여러 실행 흐름이 공유 자원에 동시 접근할 때 타이밍에 따라 결과가 달라지는 경쟁 상태를 다룬다. counter++가 깨지는 과정, 임계 구역 문제의 세 조건, 뮤텍스와 원자적 연산, 데이터베이스 락 전략까지 정리한다.

  16. 세마포어와 뮤텍스 (Semaphore, Mutex)

    공유 자원 접근의 질서를 잡는 동기화 도구인 뮤텍스와 세마포어를 다룬다. 소유권 유무라는 핵심 차이, wait와 signal 연산, 생산자 소비자 문제 적용, 우선순위 역전과 상속까지 정리한다.

운영체제를 특히 많이 묻는 직군

같은 개념이라도 직군에 따라 파고드는 각도가 다릅니다. 직군별 가이드에서 어떤 질문으로 이어지는지 확인해 보세요.

다른 CS 토픽도 이어서 보기

한 주제의 원리를 익혔다면 인접한 자료구조와 운영체제, 네트워크 개념을 함께 읽어 전체 동작을 연결해 보세요.

CS 지식백과 전체 보기