IT/정보처리기사

[필기] '사용자 수준에서 지원되는 스레드'와 '커널에서 지원되는 스레드'

iamhyeon 2025. 2. 4. 21:41

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

1) 한 프로세스가 운영체제를 호출할 때 전체 프로세스가 대기할 필요가 없으므로 시스템 성능을 높일 수 있다.
2) 동시에 여러 스레드가 커널에 접근할 수 있으므로 여러 스레드가 시스템 호출을 동시에 사용할 수 있다.
3) 각 스레드를 개별적으로 관리할 수 있으므로 스레드의 독립적인 스케줄링이 가능하다.
4) 커널 모드로의 전환 없이 스레드 교환이 가능하므로 오버헤드가 줄어든다.


스레드
- 프로세스 내 작업 단위
- 스레드는 여러 개가 존재할수도 있다. 이를 멀티 스레드라고 한다.

 

커널 수준 스레드

< 커널 수준 스레드 >
- 커널 수준 스레드는 커널 레벨에서 생성되는 스레드이다.
- 운영체제 시스템 내에서 생성되어 동작하는 스레드로, 커널이 직접 관리한다.
- 커널 수준에서는 프로세스가 주기억 장치에 여러 개가 적재되어 CPU 할당을 기다리며 동작한다.
- CPU에서 인터럽트 발생으로 현재 작업 중인 프로세스가 Block되고 다른 프로세스로 변경할 때, CPU 내 재배치 레지스터에 다음에 실행할 프로세스 정보들로 교체를 하고 캐시를 비운다. 이 것을 Context Switching이라고 한다.
- Context Switching이 일어날 때는 CPU가 일을 못한다.
- 컨텍스트 스위칭이 자주 발생하면 성능에 영향이 간다는 단점이 있다.
- 커널이 직접 관리하므로 특정 스레드가 Block이 되어도 다른 스레드들은 독립적으로 일을 할 수 있다.

 

사용자 수준 스레드

< 사용자 수준 스레드 >
- 사용자 수준 스레드는 스레드를 관리하는 라이브러리로 인해 사용자 단에서 생성 및 관리되는 스레드이다.
- 그래서 커널이 따로 관리하지 않고, 커널이 이 스레드에 대해서 알지도 못한다
- 한 마디로 커널 레벨 밖에 있는 스레드이다.
- 실제 물리적으로 커널 밖에 있다는 것이 아니다. 커널 내부에 존재하지만 커널의 통제권 안에 없을 뿐이다
- 커널에는 '커널 모드'와 '사용자 모드' 2가지가 있고, 여기서 '사용자 모드'에서 동작하는 스레드가 사용자 수준 스레드인 것이다.
- 입출력 인터럽트가 발생하면 커널은 '사용자 모드'가 되어서 사용자 수준 스레드의 응답을 기다린다. 

- 사용자 수준 스레드의 응답이 오면 다시 '커널 모드'로 변환되어 이어서 커널 스레드가 일 처리를 하게 되는 것이다.

 

  사용자 수준 스레드 ULT 커널 수준 스레드 KLT
관리 사용자 프로그램에서 관리 커널에서 관리
스케줄링 커널이 스레드를 인식하지 않음
프로세스 내의 한 스레드가 커널로 진입하는 순간, 나머지 스레드들도 전부 정지됨
커널이 스레드를 인식하고 개별적으로 스케줄링
성능 빠른 스레드 전환
context switching이 없어서 커널 스레드보다 오버헤드가 적음
context switching이 발생
스레드 전환시 커널 모드 전환으로 오버헤드 발생
멀티코어 멀티코어 시스템에서 병렬 처리 불가 멀티코어 시스템에서 병렬 처리 가능
시스템콜 스레드 간 시스템 콜 처리에 제한 있음 스레드마다 독립적인 시스템 콜 처리 가능

 


프로그래밍 언어 활용
25년 필기 1회차 1178번

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

 

 


refer to

https://velog.io/@pp8817/OS-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%88%98%EC%A4%80-%EC%8A%A4%EB%A0%88%EB%93%9C%EC%99%80-%EC%BB%A4%EB%84%90-%EC%88%98%EC%A4%80-%EC%8A%A4%EB%A0%88%EB%93%9C%EC%9D%98-%EC%B0%A8%EC%9D%B4%EB%8A%94

 

 

반응형

'IT > 정보처리기사' 카테고리의 다른 글

[필기] 감성공학의 접근 방법  (0) 2025.02.05
[필기] CASE  (0) 2025.02.05
[필기] IPv6  (0) 2025.02.04
[필기] CMMI 성숙도  (0) 2025.02.04
[필기] 데이터 수집 관련 기술  (0) 2025.02.04