본문 바로가기

OS(운영체제)

Process 2~3

Thread

 

Thread

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

 

1. Thread의 구성

  • Program Counter
  • Register Set
  • Stack Space

2. Thread가 동료 Thread와 공유하는 부분(=task)

  • code section
  • data section
  • OS resource
  • PCB의 Program Counter와 Registers

3. 전통적인 개념의 heavyweight process는 하나의 Thread를 가지고 있는 task로 볼 수 있다.

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

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

6. 스레드를 사용하면 병렬성을 높일 수 있다.

흐름도

  1. 현재 코드의 어느 부분을 가리키고 있는지 알 수 있도록 PC가 존재
  2. 메모리의 register값을 thread에 넣음
  3. thread가 code의 어느 부분을 가리키다가 함수 호출시 함수를 호출하고 리턴하는 정보를 Stack에 저장해야 하지만 CPU 수행 단위가 여러개 있게 되면 Stack도 Thread 별도로 가지고 있어야함
  4. 프로세스의 공유 자원을 thread도 공유 소유,CPU 수행과 관련된 정보는 별도로 소유

Benifits of Threads

1. Responsiveness

  • eg) multi-threaded web - if one thread is blocked (eg network) or, another thread continues (eg diplay)

2. Resource Sharing

  • n threads can share binary code, data, resource of the process

3. Efficiency

  • create & CPU switching thread (rather than a process)
  • In the case of Solaris(type of UNIX), the two overheads are 30 times and 5 times, respectively.

4. Utilization of MP(Multi-Processor) Architectures

  • each thread may be running in parallel on a different processor 

 

'OS(운영체제)' 카테고리의 다른 글

Process Management 2  (0) 2023.07.29
Process Management 1  (0) 2023.07.29
Process 1  (0) 2023.07.29
System Structure & Program Execution (2)  (0) 2023.07.22
System Structure & Program Execution (1)  (0) 2023.07.22