H-Log
[운영체제] 스레드 (thread) 본문
반응형
스레드
- 경량 프로세스라고도 불림 (LWP, Light weight Process)
- 프로세스에서 실행 제어만 분리한 실행 단위
- CPU에 작업을 요청하는 실행 단위
- CPU가 처리하는 작업의 단위는 스레드
- 운영체제 입장에서 작업단위 : 프로세스
- CPU 입장에서 작업단위 : 스레드
멀티 태스트 / 멀티 스레드
- 멀티 태스크 : 여러개의 프로세스로 구성
- 멀티 스레드 : 하나의 프로세스에 여러개에 스레드로 구성 → 스레드별로 작업 → CPU 부담이 적어짐
- 멀티 태스킹 : 운영체제가 CPU한테 작업 시간을 잘게 쪼개어 주는 것
- 멀티 프로세싱 : 여러개의 CPU로 여러개 스레드를 동시에 처리
- CPU 멀티 스레드: 하나의 스레드를 잘게 쪼개어 동시에 처리하는 병령기법
멀티스레드 장점
- 응답이 빠름
- 자원 공유
- 효율성 향상
- 다중 CPU지원
멀티스레드 단점
- 모든 스레드가 자원을 공유 → 하나의 문제가 전체에 영향
멀티스레드 모델
- 사용자 스레드
- 라이브러리에 의해 구현된 일반적인 스레드
- 1 to N 모델
- 커널의 스레드 1개 + 사용자 스레드 여러개 연결
- 문맥교환X → 라이브러리가 직접 처리
- 1개의 커널 스레드가 입출력 작업을 하면 모든 사용자 스레드가 대기상태에 들어감
- 여러개의 CPU 사용할 수 없음
- 커널 스레드
- 운영체제의 커널이 직접 생성하고 관리하는 스레드
- 1 to 1 모델
- 커널 스레드 1개 + 사용자 스레드 1개 매칭
- 독립적이라 하나의 스레드가 대기상태에 가도 상관 없음
- 멀티 CPU 사용 가능
- 보안에 강하고 안정적임
- 문맥교환이 발생
- 문맥교환할 때 오버헤드 때문에 느리게 작동
- 멀티레벨 스레드
- 사용자 스레드와 커널 스레드의 혼합방식
- M to N 모델
- 하나의 커널 스레드가 대기에 들어가면 다른 커널 스레드가 작업
- 문맥교환 시 오버헤드가 있음 (커널스레드 보다는 작음)
- 사용자 스레드만큼 빠르지는 않음
- 빠르게 작업이 필요 → 사용자 스레드 작동
- 안정적 작업 필요 → 커널 스레드 작동
반응형
'dev-log > cs' 카테고리의 다른 글
[운영체제] CPU 스케줄링 (0) | 2023.09.27 |
---|---|
[운영체제] 우선순위 (0) | 2023.09.27 |
[운영체제] 프로세스 (process) (0) | 2023.09.27 |
[운영체제] 무어의 법칙 / 암달의 법칙 (0) | 2023.09.27 |
[운영체제] 멀티코어 / 멀티스레드 시스템 (0) | 2023.09.27 |
Comments