4 ca-process structure

54
โโโโโโโโโโโโ โโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โโโโโโโ โโโโโโโ Process Structure

Transcript of 4 ca-process structure

Page 1: 4 ca-process structure

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

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

Process Structure

Page 2: 4 ca-process structure

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

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

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

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

Page 3: 4 ca-process structure

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

Agenda

Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

Page 4: 4 ca-process structure

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

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

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

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

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

Page 5: 4 ca-process structure

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

Process Concept (cont.)

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

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

Page 6: 4 ca-process structure

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

Process Concept (cont.)

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

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

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

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

Page 7: 4 ca-process structure

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

Diagram of Process State

Page 8: 4 ca-process structure

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

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

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

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

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

Page 9: 4 ca-process structure

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

Process Control Block (PCB)

Page 10: 4 ca-process structure

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

CPU Switch From Process to Process

Page 11: 4 ca-process structure

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

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

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

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

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

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

Page 12: 4 ca-process structure

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

Ready Queue And Various I/O Device Queues

Page 13: 4 ca-process structure

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

Representation of Process Scheduling

Page 14: 4 ca-process structure

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

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

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

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

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

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

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

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

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

Page 15: 4 ca-process structure

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

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

Page 16: 4 ca-process structure

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 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นกระบวนการทุ)�ใชิ�เวลาซี)พิ)ย.น�อยแต&ครอบครองไอ/โอนาน

Page 17: 4 ca-process structure

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

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

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

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

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

Page 18: 4 ca-process structure

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

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

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

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

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

Page 19: 4 ca-process structure

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

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

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

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

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

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

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

Page 20: 4 ca-process structure

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

Process Creation (cont.)

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

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

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

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

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

Page 21: 4 ca-process structure

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

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

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

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

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

Page 22: 4 ca-process structure

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

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

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

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

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

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

Page 23: 4 ca-process structure

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

Processes Tree on a UNIX System

Page 24: 4 ca-process structure

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

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

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

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

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

Page 25: 4 ca-process structure

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

Cooperating Process (cont.)

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

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

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

Page 26: 4 ca-process structure

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

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

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

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

Page 27: 4 ca-process structure

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

Page 28: 4 ca-process structure

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

Implementation Questions

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

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

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

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

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

Page 29: 4 ca-process structure

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

Direct Communication

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

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

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

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

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

Page 30: 4 ca-process structure

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

Indirect Communication

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

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

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

Page 31: 4 ca-process structure

ว�เชษฐ์� พลายมาศ | โครงสร�างระบบและสถาปั�ตยกรรมคอมพิ�วเตอร� | โครงสร�างของระบบคอมพิ�วเตอร� | 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นผ.�ร $บไปัให�ผ.�ส&งทุราบ

Page 32: 4 ca-process structure

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

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

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

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

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

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

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

Page 33: 4 ca-process structure

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

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

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

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

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

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

Page 34: 4 ca-process structure

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

เธรด (Thread)

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

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

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

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

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

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

Page 35: 4 ca-process structure

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

Thread (cont.)

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

Page 36: 4 ca-process structure

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

Thread (cont.)

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

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

Page 37: 4 ca-process structure

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

User Threads

Thread management done by user-level threads library

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

Page 38: 4 ca-process structure

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

Kernel Threads

Supported by the Kernel

Examples- Windows 95/98/NT/2000

- Solaris- Tru64 UNIX- BeOS- Linux

Page 39: 4 ca-process structure

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

Multithreading Models

Many-to-One

One-to-One

Many-to-Many

Page 40: 4 ca-process structure

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

Many-to-One

Many user-level threads mapped to single kernel thread.

Used on systems that do not support kernel threads.

Page 41: 4 ca-process structure

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

Many-to-One Model

Page 42: 4 ca-process structure

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

One-to-One

Each user-level thread maps to kernel thread.

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

Page 43: 4 ca-process structure

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

One-to-one Model

Page 44: 4 ca-process structure

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

Page 45: 4 ca-process structure

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

Many-to-Many Model

Page 46: 4 ca-process structure

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

Threading Issues

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

Thread cancellation. Signal handling Thread pools Thread specific data

Page 47: 4 ca-process structure

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

Page 48: 4 ca-process structure

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

Solaris 2 Threads

Page 49: 4 ca-process structure

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

Solaris Process

Page 50: 4 ca-process structure

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

Page 51: 4 ca-process structure

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

Page 52: 4 ca-process structure

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

Java Threads

Java threads may be created by:

Extending Thread class Implementing the Runnable interface

Java threads are managed by the JVM.

Page 53: 4 ca-process structure

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

Java Thread States

Page 54: 4 ca-process structure

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