기출문제/정보처리기사

2022년 2회 정보처리기사 기출문제 77번

엉클지니 2025. 3. 2. 19:30

77. 사용자 수준에서 지원되는 스레드(thread)가 커널에서 지원되는 스레드에 비해 가지는 장점으로 옳은 것은?

    한 프로세스가 운영체제를 호출할 때 전체 프로세스가 대기할 필요가 없으므로 시스템 성능을 높일 수 있다.

    동시에 여러 스레드가 커널에 접근할 수 있으므로 여러 스레드가 시스템 호출을 동시에 사용할 수 있다.

    각 스레드를 개별적으로 관리할 수 있으므로 스레드의 독립적인 스케줄링이 가능하다.

     커널 모드로의 전환 없이 스레드 교환이 가능하므로 오버헤드가 줄어든다.

 

좋아요, 이 문제는 **사용자 수준 스레드(User-level thread)**와 **커널 수준 스레드(Kernel-level thread)**의 차이를 묻는 전형적인 운영체제 문제입니다. 아래에서 각 보기와 함께 해설을 정리해 드립니다.


🔎 문제 분석

사용자 수준 스레드(User-level thread)

  • 커널의 관여 없이, 사용자 영역에서만 스레드 관리 및 전환이 이루어짐.
  • 커널은 스레드의 존재를 모르고, 하나의 프로세스 단위로만 관리.
  • 장점: 커널 모드 전환이 없어서 빠르고 오버헤드가 적다.
  • 단점: 스레드 하나가 블록되면 전체 프로세스가 블록됨 (운영체제는 스레드를 모르므로).

커널 수준 스레드(Kernel-level thread)

  • 스레드를 커널이 직접 관리.
  • 운영체제가 각 스레드 단위로 스케줄링하고, 시스템 자원도 각 스레드 단위로 관리.
  • 장점: 스레드 하나가 블록되어도 나머지 스레드는 계속 실행 가능.
  • 단점: 커널 모드 전환이 필요하므로 오버헤드가 크다.

📝 각 보기 해설

선택지 내용 설명

한 프로세스가 운영체제를 호출할 때 전체 프로세스가 대기할 필요가 없으므로 성능 향상 커널 수준 스레드의 장점 (사용자 수준 스레드는 운영체제가 스레드를 모르기 때문에, 하나가 블록되면 전체 프로세스가 블록됨)
여러 스레드가 커널에 동시에 접근 가능 ❌ 이것도 커널 수준 스레드의 특징 (사용자 수준 스레드는 하나의 프로세스가 커널과 1:1 관계)
스레드를 개별 관리해 독립적 스케줄링 가능 ❌ 역시 커널 수준 스레드의 장점 (사용자 수준 스레드는 프로세스 단위로 스케줄링)
커널 모드 전환 없이 스레드 교환 가능해 오버헤드 감소 사용자 수준 스레드의 대표적인 장점

✅ 정답:

📚 요점 정리

구분 사용자 수준 스레드 커널 수준 스레드

관리 주체 사용자 영역 라이브러리 커널
문맥 전환 속도 빠름 (커널 모드 전환 없음) 느림 (커널 모드 전환 필요)
블록 처리 하나가 블록되면 전체 블록 개별 블록
시스템 호출 프로세스 단위 스레드 단위
성능 오버헤드 적음 시스템 자원 관리 효율적

 

반응형