본문 바로가기

운영체제 (이화여대 반효경)

운영체제 강의 10

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