[운영체제] Chapter 4. 스레드 관리

Lil_Young·2022년 11월 5일
0

운영체제

목록 보기
4/11

스레드

  • 스레드(Threead)의 개념

  • 스레드 구조

  • 스레드 주소 공간

  • Single-thread vs Multi-threads

  • 스레드 장점

    • 사용자 응답성 (Responsiveness)

      • 일부 스레드의 처리가 지연되어도, 다른 스레드는 작업을 계속 처리 가능

    • 자원 공유 (Resource sharing)

      • 자원을 공유해서 효율성 증가(커널의 개입을 피할 수 있음)

    • 경제성 (Economy)

      • 프로세스의 생성, context switch에 비해 효율적

    • 멀티 프로세서 (Multi-processor) 활용

      • 병렬처리를 통해 성능 향상

  • 스레드 사용 예

  • 스레드 구현

    • 사용자 수준 스레드 (User threads)

      • 사용자 영역의 스레드 라이브러리로 구현

        • 스레드 생성, 스케줄링 등

      • 커널은 스레드의 존재를 모름

        • 커널의 관리(개입)를 받지 않음

          • 생성 및 관리의 부하가 적음, 유연한 관리 가능

          • 이식성 높음

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

          • 하나의 스레드가 block 상태가 되면, 모든 스레드가 대기

    • 커널 수준 스레드 (Kernel threads)

      • OS(Kernel)이 직접 관리

      • 커널 영역에서 스레드의 생성, 관리 수행

        • Context switching 등 부하(Overhead)가 큼

      • 커널이 각 스레드를 개별적으로 관리

        • 프로세스 내 스레드들이 병행 수행 가능

          • 하나의 스레드가 block 상태가 되어도, 다른 스레드는 계속 작업 수행 가능

    • 혼합형 (n:m) 스레드

      • n개 사용자 수준 스레드, m개 커널 스레드

        • 사용자는 원하는 수 만큼 스레드 사용

        • 커널 스레드는 자신에게 할당된 하나의 사용자 스레드가 block 상태가 되어도, 다른 스레드 수행 가능

          • 병행 처리 가능

      • 효율적이면서 유연함

[출처] https://drive.google.com/file/d/1AKOc4AkPfJa9ndkNrA_7heYAzUBDbEox/view

profile
Beginner_Developer

0개의 댓글