3. Process (2), (3)
💡 동기식 입출력과 비동기식 입출력 부연설명
- 입출력을 요청한 프로세스가 입출력이 끝날 때까지 대기상태일 경우 동기식 입출력
- 입출력을 요청한 프로세스가 종료시까지 대기하지 않고 CPU가 새로운 instruction을 실행할 경우 비동기식 입출력
💡 Thread
- A thread is a basic unit of CPU utilization
- lighweight process 라고도 불림
- CPU를 수행하는 단위라고 할 수 있음
- 프로세스 1개당 여러 실행단위를 가질 수 있음
🎇Thread의 구성
- Program Counter
- register set
- stack space
🎇Thread가 동료 Thread와 공유하는 부분
- code section
- data section
- OS Resources (각종 OS자원들)
=> 전통적인 개념의 heavyweight process는 하나의 thread를 가지고 있는 task로 볼 수 있다.
💡 Single and Multithreaded Processes
💡 Thread의 장점
- 다중 스레드로 구성된 task 구조에서는 하나의 서버 스레드가 blocked 상태인 동안에도 동일한 테스트 내의 다른 스레드가 실행(Running)되어 빠른 처리를 할 수 있다.
- 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율(throughput)과 성능 향상을 얻을 수 있다.
- 스레드를 사용하면 병렬성을 높일 수 있다. 각 thread들이 여러 개의 CPU에서 동시 실행되면 빠르게 작업을 수행할 수 있다.
- Responsiveness (응답성)
- 여러개의 스레드를 사용하게 되면, 여러 프로세스의 작업을 동시에 수행할 수 있어 응답이 빨라진다.
- Resource Sharing (자원 공유)
- Thread는 하나의 프로세스로 그 안의 CPU의 수행 단위 만을 여러 개 두는 차원이므로 자원을 공유하면서 더 많은 작업을 수행할 수 있다.
- Economy
- 쓰레드간의 switching은 오버헤드 없이 빠르게 동작이 가능하기 때문에 훨씬 경제적이다
- 프로세스를 creating or switching 하는 것보다 훨씬 오버헤드가 적음! (Sloaris의 경우 각각 30배, 5배의 오버헤드 차이가 발생함)
- Utilization of Multi Process Architectures
- 멀티 프로세서 환경에서 여러개의 스레드를 병렬적으로 수행할 수 있으므로 훨씬 효율적이다
💡 Implementation of Threads
- Kernel Threads
- 커널이 thread를 관리. 시스템 스케줄러가 커널 스레드를 관리한다.
- Windows
- Solaris
- Digital UNIX, Mach
- Library 지원 (User Threads)
- OS는 Thread에 대해 모르고, Library 차원에서 Thread관리하는 방식으로 구현에 제약이 있음
- POSIX Pthreads
- Mach C-Threads
- Solaris Threads
- Real-time Threads
Reference
https://www.ibm.com/docs/en/aix/7.1?topic=processes-kernel-threads-user-threads
http://www.kocw.net/home/search/kemView.do?kemId=1046323
반응형
'👩💻 CS > 운영체제' 카테고리의 다른 글
[OS] KOCW 운영체제 강의 정리 (반효경) - 4. Process Management (0) | 2024.07.01 |
---|---|
[OS] KOCW 운영체제 강의 정리 (반효경) - 3. Process (1) (0) | 2024.02.15 |
[OS] KOCW 운영체제 강의 정리 (반효경) - 2. System Structure & Program Execution (2) (0) | 2024.02.14 |
[OS] KOCW 운영체제 강의 정리 (반효경) - 2. System Structure & Program Execution(1) (0) | 2024.02.13 |
[OS] KOCW 운영체제 강의 정리 (반효경) - 1. Introduction to Operation Systems (0) | 2024.01.22 |