본문 바로가기

CS/운영체제

[운영체제] 3. Process (2)

더보기

kocw 반효경 교수님의 운영체제 강의를 수강 후 작성한 글입니다.

1. Thread

"A thread (or lightweight process) is a basic unit of CPU utilization"

 

  • Thread의 구성 (각각의 Thread가 독립적으로 가지는 부분)
    • Program Counter
    • register set
    • stack space
  • Thread가 동료 thread와 공유하는 부분(=task)
    • code section
    • data section
    • OS resources

2. Thread의 장점

- Responsiveness

다중 스레드로 구성된 태스크 구조에서는 하나의 서버 스레드가 blocked(waiting) 상태인 동안, 동일한 태스크 내의 다른 스레드가 실행(running)되어 빠른 처리를 할 수 있다.

ex) multi-threaded web : 하나의 스레드가 blocked되어도 (network를 통해 다른 서버의 이미지 등의 파일을 가져올 때) 다른 스레드는 응답이 가능(network를 통해 가져올 필요가 없는 정적 파일 등을 display 함)

 

- Throughput

동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율과 성능 향상을 얻을 수 있다.

 

- Resource Sharing

n 개의 스레드는 binary code, data, resource of the process 등 메모리의 공유할 수 있는 부분을 공유함으로 자원을 절약

 

- Economy

스레드들끼리 동일한 주소 공간을 사용하므로 creating & context switching 의 오버헤드가 프로세스보다 훨씬 적다.

 

- Utilization of Multi-Processor Architectures

CPU가 여러개인 경우, 스레드를 사용하면 병렬성을 높일 수 있다.