프로세스와 스레드 관리 3
스레드
- 다중 스레드
n 각각 독립적으로 실행할 수 있음
n 실행 순서는 시그널이나 동기화 방법을 통해서 제어
n Ex) 한글(hwp)프로세스 사용 중에 맞춤법 검사를 해주는 것(스레드)
(프로세스 스레드 그림)
단일 프로세스, 단일 스레드 (좌), 프로세스 하나에 다중 스레드(우)
프로세스당 항목, 스레드당 항목
- 공통
n 코드, 힙, 정적
- 스레드
n 레지스터와 스택은 스레드 당 하나씩 존재
n 프로그램 카운터
n 프로세스 안에 하나의 코드를 가지고 여러 스택과 레지스터를 활용해서 프로그램 카운터가 각각 위치를 가리킨다. 그렇게 되면 메모리 사용량이 줄어든다.
- 각각 사용해야 하는 것
n 프로그램 카운터
다중 스레딩
- 다수의 스레드를 이용하여 하나의 프로세스를 처리하는 것
- 중량 프로세스(HWP : Heavy Weight Process)
n 프로세스
n 하나의 프로세스가 하나의 기능 씩 사용하는 것
- 경량 프로세스(LWP : Light Weight Process)
n 스레드
n 하나의 공통적인 것을 공유해서 함께 사용하는 것
프로세스와 스레드의 차이
- 단일 프로세스
n 프로세스 생성
u 같은 것을 복제함
u 필요한 부분만 사용하면 되는데 모든 것을 복제한다.
n 각자가 독립된 프로세스이기 때문에 전역 변수로 선언해도 각자 다른 값이 될 수 있다.
- 스레드
n Code와 data, heap는 공유
u 공유 되는 위의 3가지 속성은 각 스레드가 한가지만 가지고 접근
n Stack, 프로세스 상태, 프로그램 카운터, 레지스터, 프로세스 ID 각자
선점 / 비 선점 스케줄링
- 비 선점
n FCFS, SJF, 우선순위, HRM
- 선점
n Round-Robin(가장 많이 쓰임), SRT, 다단계 Queue,
'3학년 > 운영체제' 카테고리의 다른 글
Chapter4-1 (0) | 2018.04.17 |
---|---|
Chapter3 (0) | 2018.04.13 |
Chapter2-2 (0) | 2018.03.28 |
Chapter 2-1 (0) | 2018.03.22 |
Chapter1 (0) | 2018.03.15 |