커널 레벨 스레드와 사용자 레벨 스레드
스레드의 스케줄링 주체에 따라 커널 레벨과 사용자 레벨로 나뉜다.
커널 레벨 스레드
커널이 직접 스케줄링하는 스레드로 스레드에 관한 정보를 커널이 가지고 있다.
프로세스는 시스템 호출을 이용해 커널 레벨 스레드 생성 가능하다.
사용자 레벨 스레드
스레드 라이브러리가 스케줄링하는 스레드로 사용자 공간에서 스레드 라이브러리가 스레드에 관한 정보를 관리한다.
커널은 사용자 레벨 스레드의 정보를 가지고 있지 않다.
스레드 라이브러리를 이용해 사용자 레벨 스레드 생성한다.
사용자 레벨 스레드가 실행되기 위해서는 커널 스레드의 도움을 받아야 한다.
커널 스레드
스레드의 주소 공간이 커널 공간에 형성된 스레드이다.
모든 특권 명령을 실행하고 커널모드에서 작동한다.(사용자 모드에서 실행되는 경우 없다)
커널의 일부분으로서 커널의 기능을 수행하기 위해 만들어진 스레드이다.
N:1맵핑
사용자 레벨 스레드가 커널 레벨 스레드를 공유하는 맵핑이다.
사용자 스레드가 블록되면 어플리케이션 전체가 중단되는 경우가 생긴다.
1:1 맵핑
각각의 사용자 레벨의 스레드가 하나의 커널 레벨 스레드와 연결되는 맵핑이다.
N:M 맵핑
1개 이상의 커널 레벨 스레드와 1개 이상의 사용자 레벨 스레드가 교차로 연결되는 맵핑이다.
N:1 맵핑시 어플리케이션이 중단되는 단점을 보완한 맵핑이다.
'운영체제' 카테고리의 다른 글
스레드 (0) | 2021.01.12 |
---|---|
프로세스 (0) | 2021.01.04 |
컴퓨터 시스템과 운영체제 (0) | 2020.12.28 |
운영체제의 정의와 역사 (0) | 2020.12.28 |