ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 쓰레드 유형
    개발이론/운영체제 2018. 11. 29. 10:23

    1. 사용자 수준 쓰레드


    - 정의

    ULT 관리 루틴으로 구성된 쓰레드 라이브러리를 이용하여, 모든 응용을

    수행하며 커널은 쓰레드의 존재를 알지 못한다.

    쓰레드 라이브러리는 스케줄링, 복구코드 등을 포함한다.


    - 장점

    프로세스 교환과 달리 모드 전환이 필요하지 않다. = > 오버헤드 절감

    스케줄링이 응용에 맞게 구성될 수 있다.

    어떤한 운영체제에도 적용될 수 있다.



    - 단점

    쓰레드가 시스템을 호출을 수행할 경우 모든 쓰레드가 블락된다.

    (프로세스가 블락되기 때문이다.)

    - 이것은 자케팅이라는 기술로 해결가능하다. 비 블록형 호출.


    순수 ULT기반의 멀티쓰레딩 응용은 멀티프로세싱의 장점을 살릴 수 없다.

    - 이것은 멀티프로세싱으로 작성되면 해결되겠지만

    오버헤드가 발생되기 때문에 ULT의 장점을 살리기도 어렵다.




    2. 커널 수준 쓰레드


    - 정의

    스레드 관리와 관련된 모든 작업이 커널에 의해 이루어지는것.

    응용에는 쓰레드 관리 코드가 없고, 커널 쓰레드에 대한 API가 있다.

    이때 쓰레드에 대한 문맥정보 등은 커널이 관리한다.


    - 장점

    여러 처리기에게 같은 프로세스 내의 여러 쓰레드를 동시에 스케줄 할 수 있다.

    (ULT 에서는 프로세스가 블록당하면 전체다 스케줄 하지 못한다)


    커널 루틴 자체가 멀티쓰레드로 구성될 수 있다.


    - 단점

    쓰레드를 교체할 때 커널로 모드 전환이 필요하다.



    '개발이론 > 운영체제' 카테고리의 다른 글

    스케줄링 정책  (0) 2018.11.29
    교체정책(Replcacement Policy)  (0) 2018.11.28
    TLB (Translation Lookaside Buffer)  (1) 2018.11.28
    지역성의 원리  (0) 2018.11.28
    가상메모리  (0) 2018.11.28
Designed by Tistory.