Chapter4. 스레드 관리

Date:     Updated:

카테고리:

태그:

유튜브에 있는 김덕수 교수님의 Operating System 강의를 듣고 정리한 내용입니다.
중간에 등장하는 ppt 내용들은 모두 강의자료를 캡처한 것입니다.


🔧 Thread 정의

스레드 개념 메모리 관점
4-1 4-2
  • 프로세서 활용의 기본 단위
  • 구성 요소
    • Thread ID
    • Register set (PC, SP 등)
    • Stack (local data)
  • Resource를 프로세스 내 다른 스레드들과 공유


스레드 장점

  • 사용자 응답성 (Responsiveness)
    • 일부 스레드의 처리가 지연되어도, 다른 스레드는 작업 가능
  • 자원 공유 (Resource sharing)
    • 자원을 공유하기 때문에 커널의 개입 최소화 (효율성 증가)
  • 경제성 (Economy)
    • 프로세스의 생성, context switch에 비해 효울적
  • 멀티 프로세서 활용


🔧 사용자 수준 스레드 (User Threads)

4-3

  • 사용자 영역의 스레드 라이브러리로 구현됨
    • 스레드 생성, 스케줄링, …
    • ex) Win32 threads, JAVA thread API, …
  • 커널은 스레드의 존재를 모름
    • 커널의 관리를 받지 않음
      • 생성 및 관리의 부하가 적음
      • 유연한 관리 가능
      • 이식성 높음
    • 커널은 프로세스 단위로 자원 할당 (single-threaded kernel일 경우)
      • 스레드 하나가 block 상태되면 모든 스레드 멈춤


🔧 커널 수준 스레드 (Kernel Threads)

4-4

  • OS(kernel)가 직접 관리
  • 커널 영역에서 스레드 생성, 관리함
    • context switching 등 부하(overhead)가 큼
  • 커널이 각 스레드를 개별적으로 관리
    • 스레드 하나가 block 되어도 다른 스레드들은 작업 가능


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

4-5

  • 장점들 골라서…
  • 유연하면서 효율적이게


🔧 Multi-Process vs Multi-thread

4-6

  • 멀티 프로세스의 경우 메모리를 공유하지 않음
  • 메모리 fork. 독립적인 메모리 관리
  • ex) 동시에 여러명의 로그인 처리
  • 로그인은 고유 아이디때문에 한 프로세스당 하나만 가능


맨 위로 이동하기

OS 카테고리 내 다른 글 보러가기

댓글 남기기