4 ca-process structure

Post on 30-Jun-2015

581 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

โครงสร�างของกระบวนการ

โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร�ว�เชษฐ์� พลายมาศ

Process Structure

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 2

ว�ตถุ�ประสงค�การเร ยนร!�

เพิ��อศึ�กษาแนวค�ดและโครงสร�างของกระบวนการในระบบคอมพิ�วเตอร�

เพิ��อศึ�กษาการจั$ดการกระบวนการ การปัระสานงานระหว&างกระบวนการ และการส��อสารระหว&างกระบวนการ

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 3

Agenda

Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 4

แนวค�ดเก $ยวก�บกระบวนการ(Process Concept)

ก�จักรรมทุ(กอย&างทุ)�หน&วยปัระมวลผลกลางกระทุ+าน$,น ในระบบเชิ�งกล(&ม (batch) เร)ยกว&า งาน (job) ในระบบแบ&งก$นใชิ�เวลา (time-sharing) เร)ยกว&า

โปัรแกรมผ.�ใชิ� (user program) หร�อภารก�จั (task)

ค+าว&า งาน และ กระบวนการ (process) จั�งสามารถใชิ�แทุนก$นได�

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 5

Process Concept (cont.)

กระบวนการ ค�อโปัรแกรมทุ)�ถ.กกระทุ+าการ (a program in execution)

กระบวนการจัะปัระกอบด�วย: program counter stack data section

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 6

Process Concept (cont.)

เม��อกระบวนการถ.กกระทุ+าการ จัะถ.กเปัล)�ยนสถานะ (state)

สถานะของกระบวนการ หมายถ�ง ขณะปั�จัจั(บ$นของก�จักรรมของกระบวนการ ปัระกอบด�วย ใหม& (new) กระบวนการทุ)�เพิ��งถ.กสร�างใหม& ก+าล$งด+าเน�นงาน (running) ชิ(ดค+าส$�งทุ)�ก+าล$งถ.กกระทุ+าการ รอ (waiting) กระบวนการทุ)�ก+าล$งรอคอยเหต(การณ�บาง

อย&าง เชิ&น รอส$ญญาณ รอให�ไอ/โอ เสร3จั พิร�อม (ready) กระบวนการทุ)�ก+าล$งรอให�เข�าใชิ�หน&วย

ปัระมวลผล ส�,นส(ด (terminated) กระบวนการทุ)�กระทุ+าการเสร3จัแล�ว

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 7

Diagram of Process State

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 8

บล%อกควบค�มกระบวนการ(Process Control Block-PCB)

บล3อกควบค(มกระบวนการ จัะปัระกอบด�วยข�อม.ลทุ)�เก)�ยวก$บ สถานะกระบวนการ (process state) ต$วน$บโปัรแกรม (program counter) เรจั�สเตอร�ของซี)พิ)ย. (CPU register) ข�อม.ลการจั$ดล+าด$บซี)พิ)ย. (CPU-scheduling

information) ข�อม.ลการจั$ดการหน&วยความจั+า (memory-

management information) ข�อม.ลบ$ญชิ)ผ.�ใชิ� (accounting information) ข�อม.ลสถานะไอ/โอ (I/O status information)

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 9

Process Control Block (PCB)

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 10

CPU Switch From Process to Process

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 11

ค�วการจั�ดล'าด�บกระบวนการ(Process Scheduling Queues)

ค�วงาน (Job queue ) กล(&มของทุ(กกระบวนการในระบบ

ค�วพิร�อม (Ready queue ) กล(&มของทุ(กกระบวนการทุ)�ฝั�งอย.&ในหน&วยความจั+าหล$กทุ)�รอ execute

ค�วอ(ปักรณ� (Device queues) กล(&มของกระบวนการทุ$,งหมดทุ)�ก+าล$งรออ(ปักรณ� i/o

ม)การย�ายกระบวนการไปัมาระหว&างค�วต&างๆข�างต�น

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 12

Ready Queue And Various I/O Device Queues

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 13

Representation of Process Scheduling

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 14

ต�วจั�ดล'าด�บ (Schedulers)

Long-term scheduler (or job scheduler) ทุ+าหน�าทุ)�ค$ดเล�อกกล(&มกระบวนการข�,นมาจัากทุ)�พิ$กเก3บไปั

ย$งหน&วยความจั+าหล$กไปัย$งค�วพิร�อม ควบค(มด)กร)ของการทุ+างานแบบหลายโปัรแกรม

(degree of multiprogramming) ให�เหมาะสม Short-term scheduler (or CPU

scheduler) ทุ+าหน�าทุ)�ค$ดเล�อกกระบวนการทุ)�พิร�อมจัะถ.กกระทุ+าการข�,น

มาหน��งกระบวนการให�เข�าใชิ�ซี)พิ)ย. ต$วจั$ดล+าด$บระยะกลาง (medium-term

scheduler) ทุ+าหน�าทุ)�ขจั$ดกระบวนการออกจัากหน&วยความจั+า ชิ&วยลด

ด)กร)ของการทุ+างานแบบหลายโปัรแกรมลง

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 15

การเพิ��มต$วจั$ดล+าด$บระยะกลาง (Medium Term Scheduling) มาชิ&วยในแถวคอย

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 16

Schedulers (cont.)

Short-term scheduler จัะทุ+างานบ&อยมาก (milliseconds) (ต�องเร3ว).

Long-term scheduler ทุ+างานไม&บ&อยน$ก (seconds, minutes) (อาจัชิ�าได�)

long-term scheduler จัะควบค(ม degree of multiprogramming.

กระบวนการส&วนใหญ&จัะม)ค(ณล$กษณะอย.& 2 ปัระเภทุ กระบวนการเน�นซี)พิ)ย. (CPU-bound process) เปั7นกระบวน

การทุ)�เข�าครอบครองซี)พิ)ย.นานแต&เก)�ยวพิ$นก$บอ(ปักรณ�ปัระเภทุไอ/โอน�อย

กระบวนการเน�นไอ/โอ (I/O-bound process) ซี��งเปั7นกระบวนการทุ)�ใชิ�เวลาซี)พิ)ย.น�อยแต&ครอบครองไอ/โอนาน

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 17

การส�บเปล $ยน (swapping)

Medium Term Scheduling จัะชิ&วยจั$ดสรรกระบวนแบบเน�นซี)พิ)ย.และแบบเน�น i/o ให�ม)ความสมด(ลก$นมากข�,นในระบบ

โดยพิยายามสล$บเอากระบวนการทุ)�ย$งไม&จั+าเปั7นออกจัากหน&วยความจั+าไปัเก3บไว�ในด�สก� และสล$บกระบวนการทุ)�จั+าเปั7นจัากด�สก�เข�ามาไว�ในหน&วยความจั+า

เร)ยกก�จักรรมเชิ&นน),ว&า การสล$บเข�า/การสล$บออก (swap-in/swap-out)

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 18

การสล�บบร�บท (Context Switch)

เม��อซี)พิ)ย.จัะเปัล)�ยนไปัย$งกระบวนการอ��น จัะต�องเก3บสถานะปั�จัจั(บ$นของกระบวนการเด�มไว�ใน PCB (process control box) ก&อน แล�วค&อยโหลดสถานะของกระบวนการใหม&เข�ามา

ในการสล$บบร�บทุ ระบบจัะเส)ยเวลา (ม) overhead) และย$งทุ+างานไม&ได�ขณะทุ+าการสล$บบร�บทุ จั�งม$กใชิ�ฮาร�ดแวร�ชิ&วย

PCB จัะเก3บข�อม.ล ค&าของเรจั�สเตอร�ในซี)พิ)ย. สถานะกระบวนการ ข�อม.ลการจั$ดการหน&วยความจั+า

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 19

การสร�างกระบวนการ (Process Creation)

กระบวนการสามารถสร�างกระบวนข�,นมาใหม&ได�ในระหว&างการทุ+างานผ&าน system call

การสร�างกระบวนการ (create-process) กระบวนการทุ)�สร�างเร)ยกว&า กระบวนการแม&

(parent process) กระบวนการทุ)�ถ.กสร�างเร)ยกว&า กระบวนการล.ก

(children process) ของกระบวนการแม&น$,น แต&ละกระบวนการสามารถสร�างกระบวนล.กได�อย&าง

ไม&จั+าก$ดในร.ปัแบบต�นไม� (tree)

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 20

Process Creation (cont.)

ล$กษณะการแบ&งปั�นทุร$พิยากร ทุ$,ง Parent และ children จัะใชิ�ทุร$พิยากรร&วมก$น

ทุ$,งหมด children จัะใชิ�ทุร$พิยากรในส&วนของ parent ทุ$,ง Parent and child ไม&ม)การใชิ�ทุร$พิยากรร&วมก$น

Execution Parent และ children จัะ execute พิร�อมๆ ก$น Parent จัะรอจันกระทุ$�ง children ส�,นส(ด

Address space Child เร)ยกใชิ�เลขทุ)�อย.&เด)ยวก$บ Parent Children ทุ+าการบรรจั(โปัรแกรมเข�าไปัไว�ในต+าแหน&งทุ)�อย.&

ของกระบวนการ Parent

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 21

การเล�กกระบวนการ (Process Termination)

เม��อกระบวนการกระทุ+าการเสร3จัส�,นแล�วก3จัะลบต$วเอง (ผ&านทุาง exit system call)

กระบวนการอาจัค�นค&าผลล$พิธ์�บางอย&างกล$บไปัย$งกระบวนการแม& (ผ&านทุาง wait system call) แล�วปัลดปัล&อยทุร$พิยากรทุ$,งหมด เชิ&น physical/virtual memory , file open, i/o buffer

กระบวนการแม&สามารถยกเล�กกระบวนการทุ$,งหมดของล.กได� (abort) กระบวนการแม&ถ.กยกเล�กโดยระบบปัฏิ�บ$ต�การหร�อผ.�ใชิ�

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 22

การเล�กกระบวนการ (Process Termination)

การยกเล�กกระบวนการสามารถเก�ดข�,นหลายสาเหต( กระบวนการล.กเร)ยกใชิ�ทุร$พิยากรทุ)�ไม&ม)ส�ทุธ์�;ใชิ� ภารก�จัทุ)�กระบวนการล.กทุ+าเสร3จัส�,นแล�วไม&จั+าเปั7นต�องใชิ�

กระบวนการล.กอ)กต&อไปั กระบวนการแม&ออกจัากระบบ และระบบปัฏิ�บ$ต�การไม&

อน(ญาตให�กระบวนการล.กเข�าใชิ�ทุร$พิยากรอ)กต&อไปั จั+าเปั7นต�องม)กลไกการเล�กแบบต&อเร)ยง

(cascading termination) เพิ��อยกเล�กกระบวนการย&อยแบบเปั7นทุอดๆ ในโครงสร�างแบบต�นไม�

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 23

Processes Tree on a UNIX System

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 24

การประสานกระบวนการ (Cooperating Process)

กระบวนการสามารถทุ+างานไปัพิร�อมๆก$บกระบวนการอ��นๆ ได�โดยอ�สระต&อก$น หร�ออาจัปัระสานงานก$นได� ถ�ากระบวนการเหล&าน),ไม&ได�ใชิ�ข�อม.ลใดๆ ร&วมก$นทุ$,ง

แบบชิ$�วคราวและถาวร เร)ยกว&าอ�สระต&อก$น (independent)

ถ�าหากกระบวนการเหล&าน$,นเก)�ยวข�องก$น ม)การใชิ�ข�อม.ลร&วมก$น ก�จักรรมของกระบวนการหน��งม)ผลต&ออ)กกระบวนการหน��ง เราเร)ยกว&ากระบวนการเหล&าน),ปัระสานงานก$น (cooperating)

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 25

Cooperating Process (cont.)

ข�อด)ของการทุ)�กระบวนการม)สภาพิแวดล�อมในการทุ+างานอย&างปัระสานก$นม)หลายปัระการ ได�แก& การแบ&งปั�นข�อม.ล (information sharing) เพิ��มความเร3วในการปัระมวลผล (computation

speedup) สภาพิมอด(ลาร� (modularity) ความสะดวก (convenience)

ในการทุ+างานร&วมก$นจั+าเปั7นต�องอาศึ$ยกลไกการส��อสารข�ามกระบวนการ (IPC) และการปัระสานเวลา (synchronization) เข�ามาชิ&วย

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 26

การส)$อสารระหว+างกระบวนการ (Interprocess Communication: IPC)

การส&งผ&านข&าวสาร (message-passing) การต$,งชิ��อ (naming) การส��อสารทุางอ�อม (indirect

communication) การปัระสานเวลา (synchronization)

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 27

Interprocess Communication (IPC)

Mechanism for processes to communicate and to synchronize their actions.

Message system – processes communicate with each other without resorting to shared variables.

IPC facility provides two operations: send(message) – message size fixed or variable receive(message)

If P and Q wish to communicate, they need to: establish a communication link between them exchange messages via send/receive

Implementation of communication link physical (e.g., shared memory, hardware bus) logical (e.g., logical properties)

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 28

Implementation Questions

-จัะทุ+าการต�ดต$,งสายการเชิ��อมโยงได�อย&างไร -สายการเชิ��อมโยงหน��งเส�นสามารถใชิ�ส��อสารได�

มากกว&าหน��งกระบวนการหร�อไม& -ต�องม)จั+านวนสายการเชิ��อมโยงกระบวนการแต&ละค.&

ได�ก)�เส�น -ความจั(ของสายควรม)ขนาดเทุ&าไร -ขนาดของข&าวสารทุ)�ใชิ�ส��อสารก$นจัะม)ร.ปัแบบคงทุ)�

หร�อแปัรผ$น -สายการเชิ��อมโยงจัะเปั7นแบบเด)�ยว

(unidirectional) หร�อแบบค.& (bi-directional)

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 29

Direct Communication

กระบวนการทุ)�ต�องการส��อจัะต�องใชิ�ชิ��อทุ)�ชิ$ดเจันทุ$,งฝั�� งร$บและฝั�� งส&งในร.ปัแบบข�างล&างน), -send(P, message) -ส&งข&าวสารไปัย$งกระบวนการ P -receive(Q, message)-ร$บข&าวสารจัากกระบวนการ Q

  การเชิ��อมโยงการส��อสารจัะต�องม)ค(ณล$กษณะ ด$งน),

ทุ$,งฝั�� งร$บและฝั�� งส&งจัะต�องต�ดต$,งการเชิ��อมโยงระหว&างก$นโดยอ$ตโนม$ต�

การเชิ��อมโยงจัะทุ+าเฉพิาะค.&ของฝั�� งร$บและฝั�� งส&งเทุ&าน$,น ฝั�� งร$บและฝั�� งส&งจัะม)การเชิ��อมโยงเพิ)ยงเส�นเด)ยวเทุ&าน$,น สายการเชิ��อมโยงสามารถใชิ�ได�ทุ$,งแบบทุางเด)�ยวและทุางค.& แต&

โดยทุ$�วไปัใชิ�แบบทุางค.&

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 30

Indirect Communication

ข&าวสารจัะถ.กส&งและร$บผ&านทุาง mailbox หร�อport mailbox จัะม)เลขทุ)�ซี��งไม&ซี+,าก$น (unique id) ก+าก$บไว� ทุ(กกระบวนการสามารถต�ดต&อส��อสารถ�งก$นโดย

อาศึ$ยmailbox ด$งกล&าวน), ในบางกรณ) อาจัม)มากกว&าหน��งกระบวนสามารถใชิ�ต.�ไปัรษณ)ย�ร&วมก$นได�

Operation ของ mailbox การสร�างต.�ไปัรษณ)ย�ใหม& การส&งข&าวสารผ&านต.�ไปัรษณ)ย� การลบต.�ไปัรษณ)ย�

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 31

Indirect Communication

Mailbox sharing P1, P2, and P3 share mailbox A. P1, sends; P2 and P3 receive. Who gets the message?

Solutions อน(ญาตให�สายการเชิ��อมโยงหน��งเส�นรองร$บกระบวนการ

ได�มากทุ)�ส(ดเพิ)ยง 2 กระบวนการเทุ&าน$,น อน(ญาตให�ม)เพิ)ยงกระบวนเด)ยวทุ)�สามารถร$บข&าวสารจัากต.�

ไปัรษณ)ย� ณ ขณะใดขณะหน��ง ให�ระบบเปั7นผ.�ต$ดส�นใจัชิ),ขาดว&าจัะเล�อกให�กระบวนการใด

เปั7นผ.�ร $บข&าวสารน$,น และแจั�งว&าใครเปั7นผ.�ร $บไปัให�ผ.�ส&งทุราบ

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 32

การประสานเวลา(synchronization)

การส��อสารระหว&างกระบวนการจัะอย.&ในร.ปัแบบทุ)�เร)ยกว&า การส&ง (send) และการร$บ (receive)

สามารถออกแบบในการร$บ-ส&งข&าวสารเปั7นแบบบล3อก (blocking) หร�อแบบน$นบล3อก (nonblocking)

แบบบล3อก (blocking) บางทุ)เร)ยกว&าการปัระสานเวลา (synchronous)

แบบน$นบล3อก (nonblocking) บางทุ)เร)ยกว&า ไม&ปัระสานเวลา (asynchronous) ก3ได�

การร$บและการส&ง สามารถก+าหนดให�เปั7นแบบบล3อก หร�อน$นบล3อก ก3ได�

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 33

การปร�บอ�ตรา (buffering)

ข&าวสารจัะถ.กแลกเปัล)�ยนโดยกระบวนการส��อสารซี��งอย.&ในกองซี�อนชิ$�วคราว (temporary queue) เล�อกว�ธ์)ใดว�ธ์)หน��งด$งน), ความจั(ค&าศึ.นย� (zero capacity) ขนาดส.งส(ดของกอง

ซี�อนม)ค&าเปั7นศึ.นย� หมายความว&า จัะม)ข&าวสารอย.&ในกองซี�อนได�เพิ)ยงชิ(ดเด)ยวเทุ&าน$,น

ความจั(ค&าจั+าก$ด (bounded capacity) ขนาดความจั(ของกองซี�อนม)ค&าจั+าก$ดเทุ&าก$บ n ด$งน$,น จั�งรองร$บข&าวสารได�มากถ�ง n จั+านวนเทุ&าความจั(

ความจั(ค&าไม&จั+าก$ด (unbounded capacity) จั�งสามารถรองร$บข&าวสารได�ทุ$,งหมดโดยผ.�ส&งไม&จั+าเปั7นต�องหย(ดรอ

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 34

เธรด (Thread)

เด�ม 1 กระบวนการ ควบค(ม 1 เธ์รด เร)ยกว&าม)น+,าหน$กมาก (heavyweight)

ปั�จัจั(บ$น 1 กระบวนการ ม)การออกเปั7นส&วนย&อยๆ จั+านวนมาก แต&ละส&วนย&อยเร)ยกว&า เธ์รด เร)ยกว&า กระบวนการน+,าหน$กเบา (lightweight process) แต&ละเธ์รดจัะบรรจั(ไว�ด�วย หมายเลขเธ์รด , ต$วน$บโปัรแกรม , กล(&มเร

จั�สเตอร� และกองซี�อนทุ)�ใชิ� เธ์รดจัะม)การใชิ�งานร&วมก$นก$บเธ์รดอ��นๆ ภายใต�กระบวนการ

เด)ยวก$น เชิ&น ส&วนรห$ส , ข�อม.ล ม)การใชิ�ทุร$พิยากรอ��นของระบบปัฏิ�บ$ต�การ อย&างเชิ&น การเปั>ดแฟ้@ม

และส$ญญาณ (signal) กระบวนการม)ค(ณล$กษณะเปั7นแบบม$ลต�เธ์รด

(multithread) สามารถควบค(มเธ์รดหลายเธ์รด จั�งสามารถทุ+างานได�หลายงานไปัพิร�อมๆ ก$นได�ในเวลาเด)ยวก$น

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 35

Thread (cont.)

กระบวนการแบบเธ์รดเด)ยวก$บม$ลต�เธ์รด

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 36

Thread (cont.)

ปัระโยชิน�ของม$ลต�เธ์รด การโต�ตอบ การใชิ�ทุร$พิยากรร&วมก$น ปัระหย$ด การใชิ�ปัระโยชิน�จัากสถาปั�ตยกรรมแบบม$ลต�

โปัรเซีสเซีอร�

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 37

User Threads

Thread management done by user-level threads library

Examples- POSIX Pthreads- Mach C-threads- Solaris threads

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 38

Kernel Threads

Supported by the Kernel

Examples- Windows 95/98/NT/2000

- Solaris- Tru64 UNIX- BeOS- Linux

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 39

Multithreading Models

Many-to-One

One-to-One

Many-to-Many

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 40

Many-to-One

Many user-level threads mapped to single kernel thread.

Used on systems that do not support kernel threads.

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 41

Many-to-One Model

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 42

One-to-One

Each user-level thread maps to kernel thread.

Examples- Windows 95/98/NT/2000- OS/2

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 43

One-to-one Model

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 44

Many-to-Many Model

Allows many user level threads to be mapped to many kernel threads.

Allows the operating system to create a sufficient number of kernel threads.

Solaris 2 Windows NT/2000 with the

ThreadFiber package

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 45

Many-to-Many Model

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 46

Threading Issues

Semantics of fork() and exec() system calls.

Thread cancellation. Signal handling Thread pools Thread specific data

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 47

Pthreads

a POSIX standard (IEEE 1003.1c) API for thread creation and synchronization.

API specifies behavior of the thread library, implementation is up to development of the library.

Common in UNIX operating systems.

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 48

Solaris 2 Threads

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 49

Solaris Process

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 50

Windows 2000 Threads

Implements the one-to-one mapping.

Each thread contains- a thread id- register set- separate user and kernel stacks- private data storage area

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 51

Linux Threads

Linux refers to them as tasks rather than threads.

Thread creation is done through clone() system call.

Clone() allows a child task to share the address space of the parent task (process)

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 52

Java Threads

Java threads may be created by:

Extending Thread class Implementing the Runnable interface

Java threads are managed by the JVM.

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 53

Java Thread States

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 54

top related