Threads
포스트 난이도: HOO_Middle
# Threads
Threads(스레드)는 address space를 통해 사용되는 Process에 해당한다.
따라서 기존 Process와 달리 Threads를 Lightweight processes라고도 부른다.
address space, 즉 virtual memory를 공유하여 Multiple threads를 사용할 수 있기 때문에 Virtual process라고도 한다.
여기서 중요한 점은 Multithreaded가 가능하지만 address space를 공유해야 한다는 점이다.
# Process와 별개로 Threads가 필요한 이유
Process와 별개로 Threads가 Operating system에서 필요하다.
Threads는 Lightweight process라고 불리듯이 create과 destory가 훨씬 더 쉽다.
또한 computing과 I/O의 사용에 있어서 Performance gain, 즉 능률 향상에 도움이 된다.
또한 Threads는 address space와 data의 능력을 공유하고 있다.
마지막으로 Threads는 address space를 공유하여 Multithreaded가 가능하기 때문에 Multicore processors에서도 다중 작업이 가능하도록 해준다.
# Threads 활용 사례
Threads는 다양한 작업을 수행하는 데 사용되고 있다.
대표적으로 word processor에서 작업을 프로세스 하는 과정을 살펴보면 Kernel 안에서 3개의 Threads를 사용하여 작업을 수행한다.
또는 Web server에서도 Multithreaded를 사용하는 것을 확인할 수 있는데, Web server process가 일어나면 user space에서 dispatcher thread을 통해 network connection이 이루어지고 수행해야 되는 작업이 worker thread를 통해 작업이 수행되고 마지막으로 web page cache로 수행되는 작업이 전달된다.
이 작업들은 Web server process의 경우에는 Threads들이 Kernel space에서 이루어지는 것이 아니라 User space에서 작업이 이루어진다.
# Construct web server solution
Multithreaded: Parallelism, Blocking system calls -> Easy to program
Single-threaded: No parallelism, Blockcing system calls -> Easy to program
Finite-state machine: Parallelism, nonblocking system calls, interrupts -> hard to program
이처럼 Threads을 통해서 web server를 구축할때 보다 더 쉽고 편하게 구축이 가능하다는 점에서 Threads를 많이 사용하고 있다.
'Computer Science' 카테고리의 다른 글
[Operating System] InterProcess Communication(IPC) (0) | 2022.03.02 |
---|---|
[Operating System] Threads: Implementation of Threads (0) | 2022.03.02 |
[Operating System] Process: Creation, Termination (0) | 2022.03.02 |
[Operating System] Process: Creation, States (0) | 2022.03.02 |
[Memory System] Cache Coherence: Write-through, Write-back (0) | 2022.02.26 |
댓글