기술 면접 예상 질문 대비하기 - 운영체제(OS)편

운영체제(OS)편

운영체제(OS)와 관련된 기본적인 개념을 이해하고 기술 면접에 대비하자!


계속해서 추가할 예정입니다!
Do-Hee의 tech-interview - 이 Github 페이지와 동기화되어 있습니다.

프로세스와 스레드의 차이(Process vs Thread)

멀티 프로세스 대신 멀티 스레드를 사용하는 이유?

  1. 자원의 효율성 증대
    • 멀티 프로세스로 실행되는 작업을 멀티 스레드로 실행할 경우, 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자원을 효율적으로 관리할 수 있다.
      • 프로세스 간의 Context Switching시 단순히 CPU 레지스터 교체 뿐만 아니라 RAM과 CPU 사이의 캐시 메모리에 대한 데이터까지 초기화되므로 오버헤드가 크기 때문
    • 스레드는 프로세스 내의 메모리를 공유하기 때문에 독립적인 프로세스와 달리 스레드 간 데이터를 주고 받는 것이 간단해지고 시스템 자원 소모가 줄어들게 된다.
  2. 처리 비용 감소 및 응답 시간 단축
    • 또한 프로세스 간의 통신(IPC)보다 스레드 간의 통신의 비용이 적으므로 작업들 간의 통신의 부담이 줄어든다.
      • 스레드는 Stack 영역을 제외한 모든 메모리를 공유하기 때문
    • 프로세스 간의 전환 속도보다 스레드 간의 전환 속도가 빠르다.
      • Context Switching시 스레드는 Stack 영역만 처리하기 때문

Thread-safe

동기화 객체의 종류

뮤텍스와 세마포어의 차이

스케줄러

동기, 비동기

멀티스레드

프로세스 동기화

메모리 관리 전략

가상 메모리

캐시의 지역성

교착상태(데드락)의 개념과 조건

사용자 수준 스레드, 커널 수준 스레드

외부 단편화와 내부 단편화

Context Switching

Swapping


관련된 Post

References