사용자 수준 vs 커널 수준 (쓰레드)

송해광·2022년 10월 10일
0

OS

목록 보기
7/8

사용자 수준 쓰레드 : 쓰레드 라이브러리를 이용하여 작동하는 형태 - 다대일 매핑

커널 수준 쓰레드 : 커널(운영체제)에서 지원하는 형태 - 일대일 매핑
혼합형 쓰레드 : 둘을 혼합한 형태 - 다대다 매핑

사용자 수준 쓰레드

쓰레드 패키지를 사용자 영역에 두고 운영체제 커널은 단일 프로세스만을 관리한다.

쓰레드 패키지를 런타임 시스템에서 운영한다.

운영체제 입장에서는 런타임 시스템도 하나의 프로세스로 인식한다

쓰레드를 운영하지 않는 운영체제제에서 실행할 수 있으므로 이식성이 뛰어나다

입출력 인터럽트가 발생하면 커널은 '사용자 모드'가 되어서 사용자 수준 스레드의 응답을 기다린다. 사용자 수준 스레드의 응답이 오면 다시 '커널 모드'로 변환되어 이어서 커널 스레드가 일 처리를 하게 되는 것이다.

컨텍스트 스위칭이 발생하지 않는다.

커널 수준 쓰레드

쓰레드 패키지를 운영체제에서 관리한다.

각 응용 프로그램들은 운영체제에 영향을 많이 받게 되므로 이식성이 낮다.

프로세스가 주기억 장치에 여러 개가 적재되어 CPU 할당을 기다리며 동작

커널이 직접 관리하므로 특정 스레드가 Block이 되어도 다른 스레드들은 독립적으로 일을 할 수 있다.

참고자료 : https://junghyungil.tistory.com/132

https://coding-start.tistory.com/199

profile
끝까지 해보고 하는 후회는 반성이 되어 앞을 보게 하지만 끝까지 하지 않고 하는 후회는 미련이 되어 뒤를 보게 한다.

0개의 댓글