4 ca-process structure
Transcript of 4 ca-process structure
โครงสร�างของกระบวนการ
โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร�ว�เชษฐ์� พลายมาศ
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