-
스레드(Thread) 관리운영체제 2022. 7. 11. 00:11
틀린 내용이 있을 수도 있습니다!
틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다!
스레드(사용자 수준 스레드) 사용의 이점
1. 프로세스 내 스레드들은 자원을 공유해서 사용하기 때문에 비용이 적은 스레드 수준의 context switching만 발생한다.
2. 일부 스레드 처리가 지연되어도, 다른 스레드들은 작업을 계속 처리할 수 있다.
3. 멀티 프로세서 시스템에서 병렬 처리가 가능하다.
4. 프로세스 수준의 context switching가 발생하지 않기 때문에 멀티 프로세스를 사용하는 것 보다 경제적이다.
사용자 스레드와 커널 스레드
스레드는 크게 사용자 수준 스레드와 커널 수준 스레드로 나눌 수 있다.
운영체제에서는 사용자 수준 스레드와 커널 수준 스레드를 다대다 맵핑하여 사용한다.
1. 사용자 수준 스레드
- 프로세스 내에서 라이브러리를 이용해서 만드는 스레드로 커널의 개입이 없기 때문에 관리의 부하가 적다.
2. 커널 수준 스레드
- 커널 수준 스레드는 프로세스 단위로 자원을 할당한다.
- 프로세스는 적어도 하나의 커널 스레드를 갖는다.
- OS 커널이 직접 관리한다.
- 커널 영역에서 스레드를 생성하고 관리하므로 부하가 크다.
멀티 스레드 사용의 예
기본적으로 I/O가 많은 곳에서 멀티 스레드를 사용한다.
예를 들면 FPS와 같은 I/O가 많이 발생하는 게임의 경우 싱글 스레드만 사용하게 된다면 process는 running -> block -> ready -> running을 반복하게 될 것이고, 사용자의 입장에서는 굉장히 답답할 것이다.
반응형'운영체제' 카테고리의 다른 글
실습과 그림으로 배우는 리눅스 구조 4장 정리 (2) 2022.10.30 실습과 그림으로 배우는 리눅스 구조 3장 정리 (0) 2022.10.30 실습과 그림으로 배우는 리눅스 구조 2장 정리 (2) 2022.10.30 실습과 그림으로 배우는 리눅스 구조 1장 정리 (0) 2022.10.29 Process 실행 원리와 context switching (0) 2022.07.10