ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • OS 4강: 쓰레드 관리
    os 운영체제 2024. 2. 20. 16:20

    쓰레드란?

    LWP: Light Weight Process

    프로세서 활용의 기본 단위 (쓰레드가 여러개면 동시에 여러 cpu 사용 가능)

    구성: Thread Id, Register set(PC, SP), Stack

    제어요소 외 코드, 데이터 및 자원들은 프로세스 내 다른 스레드들과 공유

    전통적 프로세스: 단일 스레드 프로세스

     

    쓰레드는 제어를 담당.

     

    하나의 프로세스에 n개의 쓰레드 존재,

    스레드 마다 각자의 작업 영역 (stack)을 할당 받고, 자원은 공유한다.

    지역 데이터로 제어를 한다.

    쓰레드 장점:

    사용자 응답성: 일부 쓰레드가 느려져도 다른 쓰레드는 빨리 응답

    자원 공유: 자원 동시 사용으로 효율성 증가(커널의 개입을 피함/context switch방지) 

    경제성: 프로세스의 생성, context switch에 비해 효율적.

    멀티 프로세서 활용: 병렬처리 가능

    쓰레드 3개를 만들어서 입력, 사운드 출력, 화면 출력을 병렬처리


    쓰레드 구현:

    사용자 수준 쓰레드(User Thread):

        사용자 영역의 쓰레드 라이브러리로 구현 됨:

        n대일 n:1 매핑 (1커널 쓰레드)

        쓰레드의 생성 및 관리의 부하가 적음(쓰레드 개입x), 유연한 관리 가능, 이식성 높음

        but

        커널은 프로세스 단위로 자원 할당

        하나의 쓰레드가 block이 되면 모든 쓰레드가 대기(single threaded kernel)

    커널 수준 쓰레드:

        os(kernel)가 직접 관리 (1:1 매핑)

        커널 영역에서 쓰레드의 생성, 관리 수행(context switch등 부하 발생)

        but

        커널이 각 쓰레드를 개별적으로 관리.

        프로세스 내 쓰레드 병렬처리(하나가 block 되도 다른 쓰레드는 계속 작업 가능)

    혼합형 쓰레드:

    n개 사용자 수준 쓰레드 - m개의 커널 쓰레드

        사용자는 원하는 수 만큼 쓰레드 사용, 쓰레드 병렬처리 가능

        효율적, 유연함 

    'os 운영체제' 카테고리의 다른 글

    컴퓨터 구조: 어드레싱 모드란?  (0) 2024.03.25
    OS 5강: 프로세스 스케줄링  (0) 2024.03.01
    OS 3강: 프로세스 관리  (0) 2024.02.19
    OS 2강: OS overview  (1) 2024.02.19
    OS 1강: 컴구 Overview  (0) 2024.02.17
Designed by Tistory.