1. 프로세스 상태도
2. Thread
프로세스 A -> B : 문맥교환은 save, load...와 같이 오버헤드가 많은 작업이다.
하지만 동일한 프로세스 내에서 스레드1 ->2로 cpu가 넘어가는 것은 문맥교환의 오버헤드가 필요없고
효율적으로 수행 가능하다
스레드는 프로세스 내부에서 cpu 수행 단위에 해당하는 것이다.
‣ Thread의 구성
✓ program counter
✓ register set
✓ stack space
‣ Thread가 동료 thread와 공유하는 부분(=task)
✓ code section
✓ data section
✓ OS resources
‣ 전통적인 개념의 heavyweight precess는 하나의 thread를 가지고 있는 task로 볼 수 있다
‣ 다중 스레드로 구성된 태스크 구조에서는 하나의 서버 스레드가 blocked 상태인 동안에도 동일한 태스크 내의 다른 스레드가 실행(running)되어 빠른 처리를 할 수 있다.
‣ 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율과 성능 향상을 얻을 수 있다
‣ 스레드를 사용하면 병렬성을 높일 수 있다
📌 Single and Multithreaded Processes
Benifits of Threads
‣ Responsiveness
✓ eg) multi-threaded Web - if one thread is blocked (eg. network)
another thread continues (eg. display)
‣ Resource Sharing
✓ n threads can share binary code, data, resource of the process
‣ Economy
✓ creating & CPU switching thread (rather than a process)
✓ Solaris의 경우 위 두 가지 overhead가 각각 30배, 5배
‣ Utilization of MP Architectures
✓ each thread may be running in parallel on a different processor
(마지막은 멀티프로세서, cpu가 여러개있는 환경에서의 효과. 병렬성 추구 가능)
📌 Implementation of Threads (Threads의 구현)
‣ Some are supported by kernel → Kernel Threads
✓ Windows 95/98/NT
✓ Solaris
✓ Digital UNIX, Mach
‣ Others are supported by library → User Threads
✓ POSIX Pthreads
✓ Mach C-threads
✓ Solaris Threads
‣ Some are real-time threads
- 커널 스레드 : 스레드의 존재를 운영체제가 알고 있는 경우
- 유저 스레드 : 운영체제가 스레드의 존재를 모르는 경우
'운영체제 (이화여대 반효경)' 카테고리의 다른 글
운영체제 강의 12 (0) | 2021.07.13 |
---|---|
운영체제 강의 11 (0) | 2021.07.13 |
운영체제 강의 9 (0) | 2021.07.13 |
운영체제 강의 8 (0) | 2021.07.12 |
운영체제 강의 7 (0) | 2021.07.12 |