Lined Notebook

기술면접 질문 답변 정리 (운영체제)

by yjym33

**운영체제

 

프로세스

  • 프로세스와 스레드의 차이는 무엇인가요?
    • 프로세스는 독립적인 실행 단위로, 자신만의 메모리와 자원을 가지며, 각각 별도의 주소 공간을 가집니다. 스레드는 프로세스 내에서 실행되는 작은 실행 단위로, 프로세스 내의 자원을 공유합니다.

 

  • 교착상태란 무엇이며, 교착상태가 발생하기 위해서는 어떤 조건이 있어야 하나요?
    • 교착상태(Deadlock) 이상의 프로세스가 서로 필요한 자원을 가지고 대기하며 진행하지 못하는 상태를 의미합니다. 교착상태 발생 조건에는 상호배제, 점유대기, 비선점, 순환대기 가지 조건이 있습니다.

 

  • 교착상태의 해결법은 무엇인가요?
    • 교착상태 해결법으로는 예방, 회피, 발견, 회복이 있습니다. 주로 회피와 발견을 사용하는데, 회피는 교착상태가 발생하지 않도록 자원 할당을 조절하고, 발견은 교착상태가 발생하면 감지하여 해결하는 방법입니다.

 

  • 뮤텍스와 세마포어에 대해서 설명해 보시오.
    • 뮤텍스(Mutex) 상호배제를 위한 동기화 기법으로, 번에 하나의 스레드만 접근할 있는 토큰을 사용합니다. 세마포어(Semaphore) 여러 스레드가 공유 자원에 접근할 사용하는 카운터로, 특정 개수의 스레드가 동시에 접근 가능하도록 조절합니다.

 

  • 컨텍스트 스위칭이란 무엇인가요?
    • 컨텍스트 스위칭은 CPU 현재 실행 중인 프로세스나 스레드의 상태 정보를 저장하고 다음 프로세스나 스레드의 상태 정보로 교체하는 작업을 의미합니다. 이를 통해 다중 프로세스 또는 다중 스레드 환경에서 실행을 전환할 있습니다.

 

  • 경쟁 상태란 무엇인가요?
    • 경쟁 상태(Race Condition) 여러 스레드 또는 프로세스가 공유 자원에 동시에 접근하여 예상치 못한 결과가 발생하는 상황을 의미합니다.

 

  • 프로세스 혹은 스레드의 동기화란 무엇인가요?
    • 동기화는 경쟁 상태를 방지하고 스레드 또는 프로세스 간의 작업을 조절하기 위한 메커니즘으로, 뮤텍스, 세마포어 등을 사용하여 공유 자원에 안전하게 접근하도록 보장하는 것을 말합니다.

 

  • 사용자 수준의 스레드와 커널 수준의 스레드의 차이는 무엇인가요?
    • 사용자 수준의 스레드는 스레드 관리를 어플리케이션에서 담당하고, 커널 수준의 스레드는 운영체제 커널에서 스레드 관리를 담당합니다. 사용자 수준의 스레드는 가볍지만 스레드 간의 병렬성을 제한할 있고, 커널 수준의 스레드는 많은 병렬성을 제공하지만 오버헤드가 높을 있습니다.

 

  • CPU 스케줄링이란 무엇인가요?
    • CPU 스케줄링은 여러 프로세스 또는 스레드 중에서 CPU 할당할 프로세스 또는 스레드를 선택하는 작업을 의미합니다.

 

  • CPU 스케줄링 방법에는 대표적으로 어떤 것들이 있나요?
    • CPU 스케줄링 방법에는 FCFS(First-Come, First-Served), SJF(Shortest Job First), RR(Round Robin), Priority Scheduling, Multilevel Queue Scheduling 등이 있습니다.

 

  • 동기와 비동기, 블로킹과 넌블로킹의 차이는 무엇인가요?
    • 동기(Synchronous) 작업이 순차적으로 실행되며 결과를 기다리는 방식이고, 비동기(Asynchronous) 작업을 요청하고 다른 작업을 수행하는 방식입니다. 블로킹(Blocking) 작업이 완료될 때까지 대기하는 것이고, 넌블로킹(Non-Blocking) 작업을 대기하지 않고 다른 작업을 수행할 있는 것을 의미합니다.

 

 

메모리

    • 프로세스에 할당되는 메모리의 각 영역에 대해서 설명해 주세요.
      • 프로세스 메모리는 주로 코드(Code), 데이터(Data), 스택(Stack), (Heap)으로 나뉩니다. 코드 영역은 프로그램 코드가 저장되는 곳이고, 데이터 영역에는 전역 변수와 정적 변수가 저장됩니다. 스택 영역은 함수 호출과 관련된 지역 변수 함수 호출 정보가 저장되며, 영역은 동적으로 할당되는 메모리를 관리합니다.

 

    • 메모리 구조의 순서가 어떻게 되는가? CPU에서 가까운 순으로 말해보시오.
      • 메모리 구조는 CPU에서 가까운 순서대로 다음과 같이 나열됩니다: 레지스터, 캐시 메모리, RAM( 기억장치), 보조 기억장치(하드 디스크, SSD ).

 

    • 페이지와 세그멘테이션에 대해서 설명해 보시오.
      • 페이지(Page) 물리적인 메모리를 고정 크기의 작은 블록으로 나눈 가상 메모리 관리 기법입니다. 세그멘테이션(Segmentation) 가상 메모리를 논리적인 단위인 세그먼트로 나누어 관리하는 방법입니다.

 

    • 외부 단편화란? 내부 단편화란?
      • 외부 단편화(External Fragmentation) 사용하지 않는 작은 메모리 조각들이 메모리에 흩어져 있어 할당할 메모리 공간이 충분히 있는데도 할당할 없는 상황을 의미합니다. 내부 단편화(Internal Fragmentation) 할당된 메모리 공간 중에서 사용하지 않는 부분을 의미합니다.

 

    • First Fit, Best Fit, Worst Fit에 대해서 설명해 보시오.
      • First Fit 가장 먼저 맞는( 번째로 사용 가능한) 메모리 공간에 프로세스를 할당하는 방식입니다. Best Fit 사용 가능한 메모리 공간 중에서 가장 작은 공간에 프로세스를 할당하는 방식이고, Worst Fit 가장 공간에 프로세스를 할당하는 방식입니다.

 

    • 페이지 교체 알고리즘 종류에는 어떤 것들이 있나요?
      • 페이지 교체 알고리즘에는 FIFO(First-In-First-Out), LRU(Least Recently Used), LFU(Least Frequently Used), NRU(Not Recently Used), Optimal 등이 있습니다. 알고리즘은 페이지 부재 어떤 페이지를 교체할지 결정하는 방식이 다릅니다.

 

블로그의 정보

생각보다 실천을

yjym33

활동하기