728x90
※출처 : TOPCIT 에센스
스레드 (Thread)
- CPU를 사용하는 기본 단위
- '경량 프로세스' 라고도 한다
- 프로세스는 최소 하나의 스레드를 갖는다
- 높은 병렬성으로 나은 성능 제공
- 리소스의 효율적 사용
- data 공유 쉬움
- 공유 O : 코드, 데이터, 파일 (기억장치 공유)
- 공유 X : 레지스터, 스택
※ 프로세스와의 차이점
- 프로세스 : 중앙처리장치 사용시간을 문맥 교환(Context Switching)에 많은 시간 사용
- 스레드 : 기억장치(코드, 데이터 영역)를 공유하기 때문에 더욱 경제적인 문맥 교환(Context Switching) 가능
멀티 스레드
- 싱글 스레드 프로세스 : 하나의 프로세스, 하나의 스레드
- 멀티 스레드 프로세스 : 하나의 프로세스, 여러개 스레드
- CPU는 한순간에 오직 하나의 스레드만 점유가능
- 스레드 동작 방식 : 준비, 블록, 수행, 종료
멀티 스레드 장점
- 하나의 프로세스가 점유한 메모리를 공유하여 멀티 스레드에서 같은 메모리 주소로 접근 가능
- 스레드의 생성과 문맥교환(Context Switching) 비용은 프로세스보다 경제적임
- 프로세스의 병렬성을 높여 멀티 프로세서를 활용 가능
Context Switching
- CPU가 어떤 프로세스를 실행하는 중 인터럽트에 의해 그 다음 프로세스를 실행해야할 때 '기존 프로세스 상태 및 레지스터 값' (Context)를 PCB에 저장하고 '새 프로세스의 상태 및 레지스터 값을 PCB에서 불러와 교체하는 과정'
※ Context
- CPU가 프로세스를 실행하기 위한 프로세스의 상태정보(State)
- PCB에 저장됨
728x90
'Computer Science > 운영체제' 카테고리의 다른 글
[운영체제] 프로세스 동기화 (0) | 2020.09.14 |
---|---|
[운영체제] Pthread 개요 (0) | 2020.09.14 |
[운영체제] 인터럽트 (Interrupt) (0) | 2020.09.14 |
[운영체제] 프로세스 (0) | 2020.09.14 |
[운영체제] 운영체제 개요 (0) | 2020.09.14 |
댓글