22
4 . 쓰레드, SMP, 그리고 마이크로커널 4장의 강의 목표 쓰레드(thread)의 개념을 이해하고, 프로세스와의 차이점 를 구별한다. 쓰레드의 장단점을 이해한다. 사용자 수준 쓰레드와 커널 수준 쓰레드의 개념을 이해한 . 대칭적 다중처리(SMP)에 대해서 이해한다. 마이크로 커널의 개념과 장단점을 이해한다. Windows, Solaris, Linux의 쓰레드 관리 및 SMP 관리 기법 을 이해한다. 쓰레드, SMP 및 마이크로커널 2

제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

  • Upload
    lamcong

  • View
    222

  • Download
    5

Embed Size (px)

Citation preview

Page 1: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

제 4 장.쓰레드, SMP, 그리고마이크로커널

4장의강의목표

• 쓰레드(thread)의개념을이해하고, 프로세스와의차이점를구별한다.

• 쓰레드의장단점을이해한다.

• 사용자수준쓰레드와커널수준쓰레드의개념을이해한다.

• 대칭적다중처리(SMP)에대해서이해한다.

• 마이크로커널의개념과장단점을이해한다.

• Windows, Solaris, Linux의쓰레드관리및 SMP 관리기법을이해한다.

쓰레드, SMP 및마이크로커널 2

Page 2: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

목차

4.1 프로세스및쓰레드(Thread)

4.2 대칭적다중처리 (Symmetric Multiprocessing, SMP)

4.3 마이크로커널 (Microkernels)

4.4 Windows 쓰레드및 SMP 관리

4.5 Solaris 쓰레드및 SMP 관리

4.6 Linux 프로세스및쓰레드관리

쓰레드, SMP 및마이크로커널 3

4.1 프로세스와쓰레드(thread)• 프로세스

– 실행중인프로그램(A program in execution)

쓰레드, SMP 및마이크로커널 4

자원소유권 (resource ownership)

수행/스케줄링(execution/scheduling)개체

쓰레드를경량프로세스(lightweight process)라고부르기도함프로세스및태스크를서로혼용하여사용하기도함

– 메모리 (코드, 데이터, 스택), 파일, signal, IPC, accounting, …– CPU 레지스터정보, 스케줄링정보

• 현대OS에서프로세스는태스크(task) 및쓰레드(thread)라는두객체(특성)로분리– 태스크: Resource Container (사용자문맥, 시스템문맥)– 쓰레드: 제어흐름 (실행정보, 레지스터문맥)

Page 3: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

다중쓰레딩

• 단일쓰레딩(threading) vs.다중쓰레딩(Multithreading)

– 단일프로세스내에다중쓰레드실행을지원가능

쓰레드, SMP 및마이크로커널 5

4.1 프로세스와스레드

프로세스와쓰레드사례

• MS-DOS는단일사용자프로세스와단일쓰레드를지원

• UNIX 계열의여러운영체제는다중사용자, 다중프로세스를지원하지만, 프로세스당하나의쓰레드를지원한다.

• Java 수행시간환경(run-time environment)은하나의프로세스가다중쓰레드를지원한다.

• 최신버전의 UNIX, Windows, Solaris는다중쓰레드를지원하는다중프로세스를사용한다.

쓰레드, SMP 및마이크로커널 6

4.1 프로세스와스레드 다중쓰레딩

Page 4: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

다중쓰레딩환경

• 태스크 (또는프로세스) 관련사항

– 프로세스이미지를유지하는가상주소공간

– 처리기, (IPC를위한) 다른프로세스, 파일, I/O 자원들에대한접근제어

• 쓰레드관련사항

– 실행상태 (수행, 준비, 블록, …)

– 수행중이아닐때저장되는쓰레드문맥

– 실행스택

– 지역변수저장을위해각쓰레드가사용하는어떤정적저장소(storage)

– 자신프로세스의메모리및자원들에대한접근공유

• 한프로세스내의모든쓰레드들은그프로세스의자원들을공유

쓰레드, SMP 및마이크로커널 7

4.1 프로세스와스레드 다중쓰레딩

쓰레드모델

• 단일/다중쓰레드모델

쓰레드, SMP 및마이크로커널 8

4.1 프로세스와스레드 다중쓰레딩

Page 5: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

쓰레드의장점(benefits)

• 프로세스에비해새로운쓰레드생성시간/비용이절약• 프로세스종료시간보다쓰레드종료시간이짧다.• 한프로세스내의쓰레드들사이의교환/교체시간이짧다.• 동일프로세스내의쓰레드들은메모리및파일을공유하기때문에, 이들쓰레드들은커널의개입없이서로통신가능

• 한프로그램의구조(structure)를단순화– Module program structure

• 다중처리기(multiprocessor)의효율적사용– 빠른수행

• 빠른 IPC (메시지전송이아닌공유메모리사용가능)– 비동기처리

• 병행서버 (listening thread and responding threads)– Foreground and background processing

쓰레드, SMP 및마이크로커널 9

4.1 프로세스와스레드 다중쓰레딩

• 예: 쓰레드를사용한원격프로시져호출

쓰레드, SMP 및마이크로커널 10

쓰레드의기능

4.1 프로세스와스레드

Page 6: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

쓰레드의기능 (계속)

• 쓰레드상태

– 수행 / 준비 / 블록 / 종료

– 기본적인쓰레드연산:

• 생성(Spawn), 디스패치(Dispatch), 블록(Block), 비블록(Unblock), 종료(Finish)

– 그림 4.4: 단일처리기상에서다중쓰레딩예

쓰레드, SMP 및마이크로커널 11

보류 = Suspend(?)

4.1 프로세스와스레드

쓰레드동기화(synchronization)

• 한프로세스내의모든쓰레드들은동일주소공간및자원들을공유

• 공유자원

– 전역변수 / 파일

– 동적할당메모리: 예)이중연결리스트(double linked lists)

• 공유자원에대해동시접근시(특히, 갱신시), 일관성유지기법필요

– 예) 한공유변수에대해읽기연산은동시접근이가능하나, 쓰기연산은한순간에하나만가능

– 동기화관련내용은제 5장및제 6장에서다룸

쓰레드, SMP 및마이크로커널 12

쓰레드의기능4.1 프로세스와스레드

Page 7: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

사용자수준쓰레드와커널수준쓰레드

• User-Level Thread(ULT) vs. Kernel-Level Thread(KLT)

Kernel-supported thread

Lightweight process

쓰레드, SMP 및마이크로커널 13

4.1 프로세스와스레드

• 사용자수준쓰레드– 응용이모든쓰레드관리를책임짐:쓰레드라이브러리가쓰레드생성, 제거, 데이터전송, 동기화, 스케줄, 문맥교환을수행

– 커널은쓰레드의존재를모름

– 쓰레드라이브러리예: cthread, pthread등

• 커널수준쓰레드– 커널이프로세스및쓰레드에대한문맥정보를관리

– 쓰레드에대한스케줄링이커널수준에서수행됨

– 예: Windows

• 결합된접근방법 (Combined approach)– 예: Solaris

쓰레드, SMP 및마이크로커널 14

사용자수준쓰레드와커널수준쓰레드 (계속)

4.1 프로세스와스레드

Page 8: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

사용자수준쓰레드

• 사용자수준쓰레드의장점

– 쓰레드교환/교체시에커널모드권한이불필요

• 두번의모드전이오버헤드를절약가능

– 특정응용에적합한스케줄링적용가능

– 모든 OS에서수행가능

• 사용자수준쓰레드의단점

– 한쓰레드가블록상태를유발하는시스템호출을수행할경우, 자신은물론그프로세스내의모든다른쓰레드들도블록됨

– 다중처리기의장점을살리지못함.

쓰레드, SMP 및마이크로커널 15

4.1 프로세스와스레드 사용자수준쓰레드와커널수준쓰레드

• 사용자수준쓰레드상태와프로세스상태사이의관계

쓰레드, SMP 및마이크로커널 16

사용자수준쓰레드

4.1 프로세스와스레드 사용자수준쓰레드와커널수준쓰레드

스레드2가입출력시스템호출

Page 9: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

프로세스와쓰레드간의관계

쓰레드, SMP 및마이크로커널 17

4.1 프로세스와스레드

4.2 대칭적다중처리

• 전통적으로컴퓨터는순차적실행기계임

– 처리기하나는한시점에한명령어만을처리할수있음

– Each instruction is a sequence of operations

• 병렬성(parallelism) 지원을위한두가지방법

– 대칭적다중처리(Symmetric MultiProcessors: SMP)

– Clusters (chapter 16)

쓰레드, SMP 및마이크로커널 18

Page 10: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

SMP 구조

• 컴퓨터시스템의분류 (by Flynn)

– Single Instruction Single Data (SISD) stream

• 단일처리기가한메모리에저장된데이터를처리하기위해단일명령스트림을수행

– Single Instruction Multiple Data (SIMD) stream

• 각 (동일) 명령이서로다른데이터집합에대하여서로다른처리기에의해수행

• 벡터및배열처리기 (vector and array processors)

• Pentium 처리기의 superscalar 구조

– Multiple Instruction Single Data (MISD) stream

• (같은) 일련의데이터가처리기들의집합에전송되고, 각처리기는서로다른명령을수행

• 지금까지구현된적이없음

– Multiple Instruction Multiple Data (MIMD) stream

• 다수의처리기가서로다른데이터집합에대하여서로다른일련의명령어들을동시에수행

쓰레드, SMP 및마이크로커널 19

4.2 대칭적다중처리

병렬처리기들의분류 (Categories of Parallel Processors)

쓰레드, SMP 및마이크로커널 20

4.2 대칭적다중처리 SMP 구조

Page 11: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

SMP 구성

쓰레드, SMP 및마이크로커널 21

4.2 대칭적다중처리

• 캐시일관성문제

SMP를위한OS 설계시고려사항

• 목적: 사용자가다중프로그래밍단일처리기시스템(multiprogramming uniprocessor system)과동일한관점을가질수있게자원을관리

• 동시적병행(simultaneous concurrent) 프로세스또는쓰레드– 재진입(reentrant) 커널코드, 분리된(separated) 커널자료구조

• SMP를위한스케줄링– 전역큐 / 지역큐, 집단스케줄링(gang scheduling), 친화성(affinity)

• 동기화– 상호배제(mutual exclusion), 사건순서화(event ordering)

• 메모리관리– 다중포트메모리(multiport memory): dualport memory

• 신뢰성및결함허용 (fault tolerance)– 이주 (migration)

쓰레드, SMP 및마이크로커널 22

4.2 대칭적다중처리

Page 12: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

4.3 마이크로커널 (Microkernel)

• OS는초대형프로그램

– OS/360의첫번째버전: 백만줄이상의코드로구성

– Multics는 2천만줄의코드로구성

→모듈화프로그래밍기술필요

• 커널구조

– 단일체(monolithic) 운영체제

• 계층적(Layered) 커널

– 각계층은상당한기능을포함하고인접계층간에많은상호작용

– 한계층의변화는인접한계층에여러영향을미침

– 마이크로커널(Microkernel)

쓰레드, SMP 및마이크로커널 23

쓰레드, SMP 및마이크로커널 24

단일체커널 (Monolithic Kernel)

• Monolithic Architecture

– Every component contained in kernel

• Any component can directly communicate with any other

– Tend to be highly efficient

– Disadvantage is difficulty determining source of subtle errors

4.3 마이크로커널

Page 13: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

마이크로커널의구조

• 마이크로커널: 스케줄링, 보호, 메시지교환등등의필수적인핵심OS 기능/함수들만유지

– 서비스: 장치드라이버(driver), 파일시스템, 가상메모리관리자, 윈도우시스템, 보안서비스등과같은기능들을제공

쓰레드, SMP 및마이크로커널 25

4.3 마이크로커널

마이크로커널구성의이점 (benefits)

• 일관된인터페이스 (uniform interface)

– 메시지전달에의해제공되는커널및사용자수준서비스

• 확장성 (extensibility)

– 새로운서비스의삽입이용이

• 유연성 (flexibility, 융통성)

– 서비스의삽입및삭제가용이하여응용에최적인운영체제구성가능

• 이식성 (portability)

– 새로운구조의시스템에커널포팅이용이

• 신뢰성(reliability)

– 모듈단위로설계된커널보다, 작은마이크로커널이더철저히검증될수있다.

• 분산시스템지원에적합

– 마이크로커널은근본적으로클라이언트-서버모델

– 마이크로커널수준에서, 프로세스는해당서비스가어떤목표(대상) 시스템에서처리되는지를파악할필요없이메시지를전송

• 객체지향운영체제와잘부합

– 마이크로커널은객체지향의원리를반영

쓰레드, SMP 및마이크로커널 26

4.3 마이크로커널

Page 14: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

마이크로커널의성능

• 일관된인터페이스(uniform interface)에의한요청처리

– 메시지전송방식으로모든서비스를제공

– 커널수준서비스및사용자수준서비스사이의차이점구별이없음

• 성능상의고려사항 (performance consideration)

– 1세대마이크로커널 –단일체커널에서단일시스템호출처리시간보다, 마이크로커널에서메시지를통한서비스요청및응답처리시간이더걸림

– 2세대마이크로커널 (예: L4) – 12KB의코드와 7개의시스템호출로구성되어, 계층화된 OS에비해성능이떨어지지않음

쓰레드, SMP 및마이크로커널 27

4.3 마이크로커널

쓰레드, SMP 및마이크로커널 28

마이크로커널의설계

• 마이크로커널에서제공할서비스

– 저수준메모리관리 (Low-level Memory Management)

– IPC (Interprocess Communication): 메시지, 포트, …

– I/O 및인터럽트관리

– 저수준메모리관리

• 가상페이지각각을물리적프레임으로사상시켜주는기능포함

• 주소공간보호, 페이지교체, 페이징논리는메모리관리서버로구현

• 예) 그림 4.11

– Mach의외부페이지(external pager)가페이지폴트(page fault)를처리하는예

4.3 마이크로커널

Page 15: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

• 프로세스간통신

– 포트를기반으로한메시지사용

• I/O와인터럽트관리

– 하드웨어인터럽트를메시지로처리

쓰레드, SMP 및마이크로커널 29

마이크로커널의설계 (계속)4.3 마이크로커널

사례 연구(Case Studies)

• Windows, Solaris, Linux

• 서로 다른 운영체제 환경에 의해 지원되는 프로세스 구조와 기능 표현 방법– 프로세스의 이름 부여 방법

– 프로세스 내에서 쓰레드의 지원 여부

– 프로세스의 표현 방법

– 프로세스 자원의 보호 방법

– 프로세스간 통신과 동기화를 위해서 사용되는 기법

– 프로세스들이 상호 연관되는 방법

쓰레드, SMP 및 마이크로커널 30

Page 16: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

Windows 쓰레드 및 SMP 관리

• Windows 프로세스– 프로세스와 서비스는 객체로 구현

– 각 프로세스는 하나 이상의 쓰레드 포함

– 각 프로세스와 쓰레드는 내재된 (built-in) 동기화 기법 포함

• SMP 지원– Threads can run on any processor

– But an application can restrict affinity

– 연성 친화력(Soft Affinity)• The dispatcher tries to assign a ready thread to the same processor

it last ran on.

• This helps reuse data still in that processor’s memory caches from the previous execution of the thread.

– 경성 친화력(Hard Affinity)• An application restricts threads to certain processor

쓰레드, SMP 및 마이크로커널 31

Windows 쓰레드 및 SMP 관리

• Windows 프로세스와 자원 (그림 4.12)

쓰레드, SMP 및 마이크로커널 32

Page 17: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

Windows 쓰레드 및 SMP 관리

• 프로세스 객체 및 쓰레드 객체 (그림 4.13)

쓰레드, SMP 및 마이크로커널 33

Windows 쓰레드 및 SMP 관리

• 그림 4.14: 6가지 쓰레드 상태

쓰레드, SMP 및 마이크로커널 34

Page 18: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

Solaris 쓰레드 및 SMP 관리

• 다단계 쓰레드 구조– 프로세스: 보통의 UNIX 프로세스

• 사용자 주소공간, 스택, 프로세스 제어 블록(PCB) 등을 포함

– 사용자 수준 쓰레드 (ULT)

• 프로세스 주소공간에서 쓰레드 라이브러리를 통해 구현

– 경량 프로세스 (Lightweight processes ≡ LWP)

• ULT와 커널 쓰레드 사이의 사상(mapping)

– 커널 쓰레드 ≡ 커널 수준 쓰레드 (KLT)

• 처리기에 수행되는 기본 개체

→ 그림 4.15 참조

쓰레드, SMP 및 마이크로커널 35

Solaris 쓰레드 및 SMP 관리

• 프로세스와 쓰레드 관계

쓰레드, SMP 및 마이크로커널 36

Page 19: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

Solaris 쓰레드 및 SMP 관리

• Solaris 다중쓰레드 구조의 예

쓰레드, SMP 및 마이크로커널 37

Solaris 쓰레드 및 SMP 관리

• 동기 (motivations)– 어떤 프로그램은 논리적인 병렬성(parallelism)을 가지지만 하드웨

어 병렬성을 요구하지 않는다. 하나의 LWP에 ULT들의 집합 사상 가능

• 예: 다중 윈도우 환경에서 한 순간에 하나의 윈도우만이 활성화

– 어떤 응용이 (I/O 요청과 같이) 블록될 수 있는 쓰레드를 포함하는경우에는 다수의 LWP를 이용하는 것이 효과적

– 어떤 응용에서는 ULT를 LWP에 일대일로 사상하는 것이 효과적• 예: 병렬 배열 계산 (parallel array computation)

– 혼합 형태(Hybrids): bound and unbound ULTs가 공존• 예: 어떤 쓰레드는 RT 스케줄링을 수행하고, 나머지 쓰레드는 후면 함

수(background functions)을 수행

– 순수 커널 쓰레드

쓰레드, SMP 및 마이크로커널 38

Page 20: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

Solaris 쓰레드 및 SMP 관리

• 전통적인 UNIX 및 Solaris에서 프로세스 구조 (그림 4.16)

쓰레드, SMP 및 마이크로커널 39

Solaris 쓰레드 및 SMP 관리

• Solaris thread state

쓰레드, SMP 및 마이크로커널 40

Page 21: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

Solaris 쓰레드 및 SMP 관리

• 활성화(active, 수행 중) 상태의 ULT 쓰레드에 대한 상태전이의 예– 동기화 필요: 수면(sleeping) 상태로 전이

• 예: 5장에서 기술될 상호배제 필요

– 보류(suspension): 쓰레드를 보류시켜 정지(stopped) 상태로 전이

– 선점(preemption):

• 활성화 상태의 쓰레드가 수행가능(runnable) 상태로 전이

– 양보(yielding):

• thr_yield() 라이브러리 함수를 호출하면 수행가능 상태로 전이

쓰레드, SMP 및 마이크로커널 41

Solaris: Interrupts as Threads• 인터럽트 쓰레드 도입

Linux 프로세스 및 쓰레드 관리

• Linux 태스크 (task_struct 자료구조)– 상태

• Running, Interruptable, Uninterruptable, Stopped, Zombie

– 스케줄링 정보• 정책: SCHED_RR, SCHED_FIFO, SCHED_OTHER

• O(1) scheduler in Linux 2.6.*

– 식별자(pid, uid, gid)

– 프로세스간 통신 (IPC)

– 링크: 부모 프로세스, 준비 상태의 프로세스들, 블록상태의 프로세스들

– 시간과 타이머

– 파일 시스템

– 주소 공간

– 처리기 의존 문맥(processor-specific context) : 레지스터 및 스택 정보

쓰레드, SMP 및 마이크로커널 42

Linux: 다른 플래그(flag)를 갖는 clone()쓰레드를 위해 별도의 분리된 자료구조가 없다.

Page 22: 제4 장 쓰레드, SMP, 그리고 마이크로커널mm.sookmyung.ac.kr/~bigrain/class/2011/mmso/Stalling… ·  · 2011-10-04– Single Instruction Single Data (SISD) stream •

Linux 프로세스 및 쓰레드 관리

• 프로세스/쓰레드 모델

– 정지(stopped)

– 수행 중(executing)

– 좀비 (zombie)

∗ 시그널(signal)

∗ 사건(event)

쓰레드, SMP 및 마이크로커널 43

쓰레드, SMP 및 마이크로커널 44

요 약

• 프로세스와 쓰레드– 자원 컨테이너 대 제어 흐름

– 쓰레드 상태

– 사용자 수준 쓰레드(ULT) 대 커널 수준 쓰레드(KLT)

• 대칭적 다중처리

• 마이크로 커널

• Windows 쓰레드 및 SMP (Symmetric Multiprocessor) 관리

• Solaris 쓰레드 및 SMP 관리– ULT, KLT, 경량 프로세스(lightweight process)

• Linux 프로세스 및 쓰레드 관리