[WEEK 08] OS - Lecture 4. Thread Management

신호정 벨로그·2021년 9월 28일
0

Today I Learned

목록 보기
39/89

Lecture 4. Thread Management

프로세스와 스레드

프로세스는 자원(resources)을 할당 받아 제어하여 원하는 목적을 달성하는 일

스레드는 할당한은 자원을 제어하는 일

쓰레드 (Thread)

  • 쓰레드는 제어 정보, 지역 데이터, 스택으로 구성된다.

  • 지역 데이터는 스택에 저장이 된다.

  • 하나의 프로세스는 여러 개의 쓰레드로 구성된다.

  • 프로세스가 할당 받은 자원(코드, 전역 데이터, 힙으로 구성)은 공유된다.

  • 같은 프로세스의 쓰레드들은 동일한 주소 공간을 공유한다.

  • 쓰레드는 Light Weight Process(LWP)이며 프로세스 활용의 기본 단위이다.

  • 쓰레드는 스레드 ID, 레지스터 셋(프로그램 카운터 PC와 스택 포인터 SP), 스택으로 구성된다.

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

쓰레드의 장점

  1. 사용자 응답성: 일부 쓰레드의 처리가 지연되어도 다른 쓰레드는 작업을 계속 처리 가능

  2. 자원 공유: 자원을 공유하여 효율성 증가 (커널의 개입을 피할 수 있음)

  3. 경제성: 프로세스의 생성, 컨텍스트 스위치에 비해 효율적

  4. 멀티 프로세서 활용: 병렬 처리를 통해 성능 향상

쓰레드의 구현

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

  • 사용자 영역의 쓰레드 라이브러리로 구현된다.

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

  • 커널은 쓰레드의 존재를 모르기 때문에 커널의 관리(개입)를 받지 않는다.

  • 커널은 프로세스 단위로 자원을 할당하기 때문에 하나의 쓰레드가 block 상태가 되면, 모든 쓰레드가 대기

커널 수준 쓰레드 (Kernel Thread)

  • OS(커널)가 직접 관리

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

  • 커널이 각 쓰레드를 개별적으로 관리: 부하(Overhead)가 크다.

  • 프로세스 내 쓰레드들이 병행 수행 가능: 하나의 쓰레드가 block 상태가 되어도 다른 쓰레드들은 작업 수행 가능

혼합형 쓰레드 (Multi-Threading Model)

  • n개의 사용자 수준 쓰레드와 m개의 커널 수준 쓰레드를 혼합

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

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

0개의 댓글