본문 바로가기
운영체제

운영체제 Chatper 4 4-3 Thread

by PlusUltraCode 2024. 7. 18.

스레드와 프로세스의 관계

주요 개념:

  • 스레드: 경량화된 실행 단위로, 프로세스 내부에서 실행되는 가장 작은 단위.
  • 프로세스: 독립된 실행 단위로, 각각의 상태, 메모리 공간, 자원을 가짐.

1: N + M: 1 = N: M 모델

  • 1: N: 하나의 스레드가 여러 프로세스에서 사용되며, 이는 각각 다른 컴퓨터에서 실행될 수 있음.
  • M: 1: 여러 스레드가 하나의 프로세스에서 관리됨.

Windows의 프로세스와 스레드 관리

일반 속성:

  • 프로세스 생성: 새로운 프로세스로 생성되거나, 기존 프로세스의 복사본으로 생성될 수 있음. (Unix는 반드시 복사본으로만 생성 가능)
  • 스레드 필수성: 모든 프로세스는 최소 하나 이상의 스레드를 반드시 가져야 함.
  • 실행 단위: 스레드가 실행의 단위이며, 스레드 단위로 디스패치됨.
  • 동기화 도구: 프로세스와 스레드 모두 동기화 도구를 가짐.

Windows 프로세스 객체 속성

  • Execution Time: 실제로 CPU를 사용한 시간은 프로세스 내부의 스레드들이 기록.
  • I/O 카운터: 프로세스 내부의 스레드들이 수행한 I/O 작업의 횟수를 기록.
  • VM 작업 카운터: 프로세스 내부의 스레드들이 수행한 가상 메모리 작업의 횟수를 기록.
  • Base Priority: 프로세스에 속한 스레드들의 최소 우선순위.
  • Default Processor Affinity: 프로세스가 선호하는 CPU 설정. 여러 CPU가 있을 때 특정 CPU에서 실행되기를 선호함.

Windows 스레드 객체 속성

  • 스레드 컨텍스트: 스레드의 실행 상태를 저장하는 가장 중요한 속성.
  • Dynamic Priority: 스레드의 실제 우선순위.
  • Base Priority: 프로세스로부터 상속받은 최소 우선순위.

Windows 스레드 상태

  • Runnable 상태: 실행 준비가 된 상태 (Ready → Standby → Running).
  • Not Runnable 상태: 실행 불가능한 상태 (Running → Terminated, Running → Waiting).
  • Waiting 상태: 블록되거나 중단된 스레드의 상태.
  • Transition 상태: 리소스가 사용 가능하지 않을 때의 상태 (Waiting → Transition).

Solaris의 프로세스와 스레드

혼합 접근 방식

  • User-Level 스레드Kernel-Level 스레드를 모두 지원.
  • Light Weight Process (LWP): 커널 수준의 스레드를 가리킴.

Solaris 스레드 상태

  • RUN 상태: 준비 상태 (Ready 상태).
  • ONPROC 상태: 실행 중 상태 (Running 상태).
  • SLEEP 상태: 블록 상태 (Blocked 상태).
  • STOP 상태: 중단 상태 (Suspended 상태).
  • IDLE 상태: 매핑되지 않은 초기 상태.

Linux의 작업(Task)

프로세스와 스레드 모델

  • Linux에서는 스레드와 프로세스를 구분하지 않음.
  • Task 구조: 상태, 스케줄링 정보, 식별자, 프로세스 간 통신 등을 포함.
  • Thread = Task = Process: 스레드와 프로세스를 동일시함.
  • Fork()와 Clone(): fork()는 새로운 프로세스를 생성하고, clone()은 자원을 공유하는 새로운 작업을 생성함.

정리

각 운영체제는 스레드와 프로세스를 관리하는 방식이 다르며, Windows와 Solaris는 프로세스와 스레드의 상태를 구분하여 관리하지만, Linux는 스레드와 프로세스를 동일시합니다. 이로 인해 운영체제별로 스레드와 프로세스의 관계와 관리 방식에 차이가 있습니다.

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

운영체제 Chatper 4 4-2 Thread  (1) 2024.07.18
운영체제 Chatper 4 4-1 Thread  (0) 2024.07.18
운영체제 Chatper 3 3-3 Process  (0) 2024.06.25
운영체제 Chapter 3-1 Process  (0) 2024.06.25
운영체제 Chapter3 3-2 Process  (0) 2024.06.25