Ch 2 process
Transcript of Ch 2 process
บทท�� บทท�� 22
การจั�ดการ การจั�ดการ ProcessProcess
1
2
การจัดการโปรเซส Process Management
• โปรเซส หมายถึ�ง โปรแกรมที่��ก�าลั�งเอ็�กซิ�คิ�วต์�อ็ย�
• ในขณะที่��โปรเซิสก�าลั�งเอ็�กซิ�คิ�วต์�อ็ย� น� 'นจัะม�การใช้)ที่ร�พยากร (Resource) ขอ็งระบบ เช้ น CPU, หน วยคิวามจั�า, ไฟลั�, อ็.ปกรณ�อ็�นพ.ต์/เอ็าต์�พ.ต์
• ในระบบ Multiprogramming อ็าจัประกอ็บด)วยโปรเซิสมากมาย
•OS จั�งม�หน)าที่��ในการจั�ดการโปรเซิสในระบบที่�'งหมด ไม ว าจัะเป/นการสร)าง ลับ การจั�ดเวลัา การจั�ดจั�งหวะแลัะการต์�ดต์ อ็ส0�อ็สารภายในโปรเซิส
3
องค์�ประกอบของโปรเซส• โปรเซิสที่��สมบ�รณ�ม�อ็งคิ�ประกอ็บด�งน�'
1. ชื่��อและหมายเลขโปรเซส (Process ID)•เป/นหมายเลัขประจั�าโปรเซิสเพ0�อ็ก�าหนดลั�าด�บการเอ็�ก
ซิ�คิ�'วต์� 2. โค์�ดโปรแกรม (Program code) เป/น
โคิ)ดคิ�าส��งที่��เป/นภาษาเคิร0�อ็งที่��สามารถึเอ็�กซิ�คิ�วต์�ได)ที่�นที่� 3. ข�อม�ล (Data) เป/นข)อ็ม�ลัขอ็งโปรเซิสหน��ง หร0อ็อ็าจัใช้)ร วมก�บโปรเซิสอ็0�น ๆ ก�ได) 4. บล อกค์วบค์"มโปรเซส (Process Control Block : PCB) •เป/นเน0'อ็ที่��ขอ็งหน วยคิวามจั�าที่��ระบบปฏิ�บ�ต์�การก�าหนด
ไว)เพ0�อ็เก�บข)อ็ม�ที่��ส�าคิ�ญขอ็งโปรเซิสไว)
4
องค์�ประกอบของโปรเซส– บล อกค์วบค์"มโปรเซส (Process Control
Block : PCB) OS จัะก�าหนดเน0'อ็ที่��บางส วนในหน วยคิวามจั�าเพ0�อ็ที่�าเป/น PCB
พอ็ยเต์อ็ร� สถึานะโปรเซิสหมายเลัขโปรเซิส
ร�จั�สเต์อ็ร�ข)อ็ม�ลัการจั�ด
เวลัาข)อ็ม�ลัหน วย
คิวามจั�าข)อ็ม�ลัแอ็�กเคิาต์�
ข)อ็ม�ลัสถึานะ I/O
:
(Process Control Block : PCB)
41. พอยเตอร�(Pointer) ส�าหร�บช้�'ต์�าแหน งขอ็งโปรเซิสที่��อ็ย� ในหน วยคิวามจั�า แลัะต์�าแหน งขอ็งที่ร�พยากรที่��โปรเซิสคิรอ็บคิรอ็งอ็ย�
42 สถานะของโปรเซส(Process Status) แสดงสถึานะขอ็งโปรเซิสที่��เป/นอ็ย� ในป6จัจั.บ�น
5
(Process Control Block : PCB)
43. หมายเลขโปรเซส(Process ID) เป/นหมายเลัขประจั�าต์�วขอ็งโปรเซิส
44. ตวนบจั'านวน(Program Counter) เป/นต์�วน�บที่��แสดงที่��อ็ย� ขอ็งคิ�าส��งต์ อ็ไปที่��จัะถึ�กประมวลัผลั
6
(Process Control Block : PCB)
o 45. ร�จั(สเตอร�(Register) ที่�าหน)าที่��เก�บข)อ็ม�ลัสถึานะระบบเม0�อ็ม�อ็�นเที่อ็ร�ร�พเก�ดข�'นเพ0�อ็ที่�าให)โปรแกรมสามารถึที่�างานต์ อ็ไปได)เม0�อ็กลั�บมาที่�างานอ็�กคิร�'ง ร�จั�สเต์อ็ร�จัะม�คิ าแลัะประเภที่ที่��เปลั��ยนแปลังได)ข�'นอ็ย� ก�บสถึาป6ต์ยกรรมขอ็งคิอ็มพ�วเต์อ็ร� ประเภที่ขอ็งร�จั�สเต์อ็ร�คิ0อ็ Accumulator, Index, Stack Pointer แลัะร�จั�สเต์อ็ร�ที่��วไป
7
(Process Control Block : PCB)o 46. ข�อม�ลการจัดการเวลาซ�พ�ย�(CPU Scheduling Information) เป/นข)อ็ม�ลัที่��ประกอ็บด)วยลั�าด�บคิวามส�าคิ�ญขอ็งโปรเซิสที่��ถึ�กก�าหนดโดยระบบปฏิ�บ�ต์�การเม0�อ็โปรเซิสถึ�กสร)างข�'นมา สามารถึเปลั��ยนคิ าไปได) ซิ��งโปรเซิสใดที่��ม�คิวามส�าคิ�ญมากระบบปฏิ�บ�ต์�การจัะให)ส�ที่ธิ�มากกว าโปรเซิสอ็0�น เช้ นให)เวลัาซิ�พ�ย�นานกว า เป/นต์)น
8
(Process Control Block : PCB)o 47. ข�อม�ลการจัดการหน)วยค์วามจั'า(Memory Management Information) เป/นข)อ็ม�ลัเก��ยวก�บหน วยคิวามจั�าที่��ระบบปฏิ�บ�ต์�การก�าหนดไว) เช้ นขนาดหน วยคิวามจั�า, คิ าขอ็งร�จั�สเต์อ็ร�, Page table แลัะ Segment table เป/นต์)น
9
(Process Control Block : PCB) 48. ข�อม�ลแอ กเค์าต�(Account Information) เป/นข)อ็ม�ลัที่��อ็าจัประกอ็บด)วยจั�านวน CPU, เวลัาที่��ก�าหนด, หมายเลัขแอ็�กเคิาต์�, หมายเลัขโปรเซิส แลัะอ็0�นๆ
49 ข�อม�ลสถานะอ(นพ"ต/เอาต�พ"ต(I/O Status Information) เป/นข)อ็ม�ลัแสดงรายการขอ็งอ็.ปกรณ�อ็�นพ.ต์/เอ็าต์�พ.ต์ที่��โปรเซิสน�'ใช้) เป/นต์)น
10
11
องค์�ประกอบของโปรเซส (ต)อ)
•โปรเซิสที่��สมบ�รณ�ม�อ็งคิ�ประกอ็บด�งน�' 5. PSW (Program Status Word)
เป/นต์�วคิวบคิ.มลั�าด�บการ เอ็�กซิ�คิ�วต์�คิ�าส��งขอ็งโปรเซิส แลัะเก�บข)อ็ม�ลัเก��ยวก�บสถึานะขอ็งโปรเซิส ที่��อ็ย� ขอ็งคิ�าส��งที่��จัะเอ็�กซิ�คิ�วต์�ต์ อ็ไป
6.ค์"ณสมบต(ของโปรเซส• ลั�าด�บคิวามส�าคิ�ญขอ็งโปรเซิส (Priority)•อ็�านาจัหน)าที่��ขอ็งโปรเซิส (Authority)•คิ.ณสมบ�ต์�อ็0�น ๆ
ค์"ณสมบต(ของโปรเซสล'าดบค์วามส'าค์ญของโปรเซส (Priority)
โดยเม0�อ็โปรเซิสถึ�กสร)างข�'นมา ลั�าด�บคิวามส�าคิ�ญขอ็งโปรเซิสจัะถึ�กก�าหนดโดยระบบปฏิ�บ�ต์�ที่�นที่� สามารถึเปลั��ยนคิ าไปได) ซิ��งโปรเซิสใดที่��ม�คิวามส�าคิ�ญมากระบบปฏิ�บ�ต์�การจัะให)ส�ที่ธิ�มากกว าโปรเซิสอ็0�น
อ'านาจัหน�าท��ของโปรเซส (Authority) เป/นการบอ็กอ็�านาจัหน)าที่��ขอ็งโปรเซิสน�'นว าสามารถึที่�าอ็ะไรได)บ)าง ใช้)อ็.ปกรณ�อ็ะไรได)บ)าง เป/นต์)น
ค์"ณสมบต(อ��น ที่��ระบบปฏิ�บ�ต์�การก�าหนดให)ม�12
13
สถานะของโปรเซส•ในขณะที่��เอ็�กซิ�คิ�วต์�โปรเซิสอ็ย� น� 'น โปรเซิส
จัะม�การเปลั��ยนแปลังสถึานะอ็ย� ต์ลัอ็ดเวลัาสามารถึแบ งสถึานะด�งน�'–สถานะเร(�มต�น (New) เป/นสถึานะที่��เร��มต์)น
สร)างโปรเซิส–สถานะพร�อม (Ready) เป/นสถึานะที่��
พร)อ็มจัะคิรอ็บคิรอ็งซิ�พ�ย� แต์ ย�งไม ม�การร�น–สถานะรน (Running) เป/นสถึานะที่��โปร
เซิสเข)าคิรอ็บคิรอ็งซิ�พ�ย�แลัะม�การเอ็�กซิ�คิ�วต์�คิ�าส��งในโปรแกรมขอ็งโปรเซิส
14
สถานะของโปรเซส• สถานะรอ (Wait) เป/นสถึานะที่��โปรเซิสก�า
ลั�งรอ็เหต์.การณ�บางอ็ย าง เช้ น การรอ็ ส�ญญาณ การจั�ดการอ็�นพ.ต์/เอ็าต์�พ.ต์ด�ไวซิ�
• สถานะบล อก (Block) เป/นสถึานะที่��โปรเซิสต์)อ็งการใช้)อ็.ปกรณ�อ็�นพ.ต์/ เอ็าต์�พ.ต์ หร0อ็เก�ด
อ็�นเที่อ็ร�ร�พต์�ระหว างที่��ร �นโปรเซิส ซิ��งจัะต์)อ็งรอ็ให)ม�การจั�ดการอ็.ปกรณ�อ็�นพ.ต์/ เอ็าต์�พ.ต์หร0อ็จั�ดการอ็�นเที่อ็ร�ร�พต์�ให)เร�ยบร)อ็ยก อ็นจัะกลั�บไปสถึานะร�นได)ต์ อ็ไป
• สถานะส(,นส"ด (Terminate) เป/นสถึานะที่��หย.ดน��งอ็�นเก�ดจัากโปรเซิสถึ�กเอ็�กซิ�คิ�วต์�หมดที่.กคิ�าส��งในโปรแกรมแลั)ว
15
สถานะของโปรเซส
เร��มต์)นnew
ร�นRunning
บลั�อ็กBlock
พร)อ็มReady
รอ็Wait
ส�'นส.ดTerminate
ยอ็มร�บให)ที่�างาน
อ็�นพ.ต์/เอ็าที่�พ.ต์หร0อ็อ็�เวนต์�เสร�จัแลั)ว
รอ็อ็�นพ.ต์/เอ็าต์�พ.ต์หร0อ็อ็�เวนต์�
ที่�างานเสร�จัส�'นแลั)วอ็�นเที่อ็ร�ร�พต์�
Scheduler dispatch
16
ข,นตอนการเปล��ยนสถานะของโปรเซส• เม0�อ็ผ�)ใช้)ต์)อ็งการส งงานให)เคิร0�อ็งคิอ็มพ�วเต์อ็ร�ที่�างาน
OS จัะเป/นผ�)ที่��ร �บที่ราบคิวามต์)อ็งการน�' แลัะจัะเต์ร�ยมสร)างโปรเซิสให)ก�บงานใหม ที่��ถึ�กส งเข)ามา
• OS จัะต์)อ็งพ�จัารณาว าเน0'อ็ที่��หน วยคิวามจั�าหลั�กขอ็งระบบม�เพ�ยงพอ็หร0อ็ไม – ถึ)าเพ�ยงพอ็ก�จัะที่�าการสร)างโปรเซิสใหม โดยเก�บไว)ในหน วย
คิวามจั�าหลั�ก– ถึ)าไม เพ�ยงพอ็ก�จัะต์)อ็งรอ็จันกว าจัะม�โปรเซิสอ็0�นจับลังแลัะม�
เน0'อ็ที่��ในหน วยคิวามจั�าเหลั0อ็มากพอ็• เม0�อ็โปรเซิสถึ�กสร)างข�'นมาใหม จัะอ็ย� ในสถึานะพร)อ็ม
ก อ็น ย�งไม สามารถึเข)าไปใช้)งาน CPU ได)
17
ข,นตอนการเปล��ยนสถานะของโปรเซส• สาเหต์.ที่��โปรเซิสไม สามารถึเข)าใช้)งาน CPU ได)ที่�นที่�
– เน0�อ็งจัากระบบคิอ็มพ�วเต์อ็ร�ในป6จัจั.บ�นเป/นระบบที่��ม�ผ�)ใช้)หลัายคินในเวลัาเด�ยวก�น
– ที่�าให)ม�โปรเซิสมากมายเก�ดข�'น ซิ��งโปรเซิสเหลั าน�'ต์)อ็งการใช้) CPU ที่�'งส�'น
– ต์)อ็งม�การจั�ดคิ�วแลัะแจั)งสถึานะพร)อ็มให)ก�บโปรเซิสไว)ก อ็น
– เม0�อ็โปรเซิสที่��ใช้)งาน CPU ที่�างานเสร�จัส�'นหร0อ็ถึ�กยกเลั�ก ที่�าให) CPU จัะว าง โปรเซิสต์ อ็ไปที่��อ็ย� ในคิ�วก�จัะเลั0�อ็นเข)าไปใช้) CPU (เปลั��ยนสถึานะจัากพร)อ็มเป/นสถึานะร�น )
– เหต์.การณ�ที่�'งหมดผ�)ที่��ที่�าหน)าที่��คิวบคิ.มการที่�างานคิ0อ็ OS
18
ข,นตอนการเปล��ยนสถานะของโปรเซส
เร��มต์)น
ร�นพร)อ็ม
ส�'นส.ด
19
ข,นตอนการเปล��ยนสถานะของโปรเซส
• กรณ�ที่��โปรเซิสใดใช้)เวลัาร�นเป/นเวลัานานก�จัะคิรอ็บคิรอ็งซิ�พ�ย�เป/นเวลัานาน
• ที่�าให)โปรเซิสอ็0�น ๆ เส�ยเวลัาในการรอ็นานเก�นไป• เพ0�อ็แก)ป6ญหาน�' OS จัะก�าหนดเวลัาในการอ็ย� ใน
สถึานะการร�นขอ็งที่.กโปรเซิสไว) เร�ยกว า “เวลาค์วนตม (Quantum time)”
• ถึ)าโปรเซิสใดใช้)เวลัาคิรอ็บคิรอ็ง CPU เก�นกว าเวลัาคิว�นต์�ม ระบบปฏิ�บ�ต์�การจัะย)ายโปรเซิสน�'นไปต์ อ็คิ�วใหม แลัะเปลั��ยนเป/นสถึานะพร)อ็ม แลัะน�าโปรเซิสที่��อ็ย� ในคิ�วต์ อ็ไปมาร�น
20
ข,นตอนการเปล��ยนสถานะของโปรเซส
เร��มต์)น
ร�นพร)อ็ม
ส�'นส.ด
• ภายในระยะเวลัาคิว�นต์�ม ถึ)าโปรเซิสจับลัง โปรเซิสก�จัะอ็อ็กจัากระบบ ที่ร�พยากรต์ าง ๆ ที่��โปรเซิสคิรอ็บคิรอ็งก�จัะถึ�กส งคิ0นให)ก�บระบบ
เก�นเวลัาคิวอ็นต์�ม
21
ข,นตอนการเปล��ยนสถานะของโปรเซส
• กรณ�ที่��โปรเซิสก�าลั�งอ็ย� ในสถึานะร�น ม�คิวามต์)อ็งการใช้)อ็.ปกรณ�อ็�นพ.ต์/เอ็าที่�พ.ต์ หร0อ็อ็าจัจัะเก�ดอ็�นเที่อ็ร�ร�พต์� (Interrupt) ข�'น
• OS ก�จัะย)ายโปรเซิสจัากสถึานะร�นไปอ็ย� ในสถึานะบลั�อ็ก แลัะด�งโปรเซิสที่��อ็ย� ในคิ�วต์ อ็ไปมาร�น
เร��มต์)น
ร�นพร)อ็ม
ส�'นส.ดบล อก
22
ข,นตอนการเปล��ยนสถานะของโปรเซส
• กรณ�ที่��ระบบม�งานมากเก�นไป OS ไม สามารถึต์อ็บสนอ็งการที่�างานขอ็งโปรเซิสที่�'งหมดได)
• OS จัะน�าเอ็าโปรเซิสบางโปรเซิสไปเก�บไว)ในสถึานะรอ็ช้��วคิราวก อ็น รอ็จันจั�านวนโปรเซิสในระบบลัดลังมาอ็ย� ในระด�บปกต์� จั�งคิ อ็ยย)ายโปรเซิสเหลั าน�'นกลั�บมาที่�างาน
ร�นพร)อ็ม
รอ็บลั�อ็ก
23
ล'าดบชื่,นของโปรเซส (Process Hierarchy)
• เม0�อ็ผ�)ใช้)ส งงานให)ก�บระบบร�น OS จัะที่�าการสร)างโปรเซิสส�าหร�บงานน�'นข�'นมา
• การที่�างานขอ็ง OS ก�ถึ0อ็ว าเป/นงานขอ็งระบบด�งน�'นจัะม�การสร)างโปรเซิสข�'นเหม0อ็นก�น
• นอ็กจัากน�'นโปรเซิสที่��ถึ�กสร)างข�'นก�สามารถึสร)างโปรเซิสย อ็ยได)
• โปรเซิสที่��ให)ก�าเน�ด เราเร�ยกว าโปรเซิสแม (parent process)
• โปรเซิสย อ็ยที่��เก�ดข�'น เราเร�ยกว าโปรเซิสลั�ก (child process)
24
ล'าดบชื่,นของโปรเซส (Process Hierarchy)
• โดยที่��วไป เม0�อ็โปรเซิสแม จับลัง โปรเซิสต์ าง ๆ ที่��อ็ย� ภายใต์)ต์�วม�นก�จัะจับลังต์ามไปด)วย
• แต์ OS บางต์�วยอ็มให)โปรเซิสแม จับลัง โดยที่��โปรเซิสลั�กไม ต์)อ็งจับลังต์ามไปด)วย ในกรณ�น�'โปรเซิสลั�กก�จัะไม ม�โปรเซิสแม
A
B C D
E F G H
25
ล'าดบชื่,นของโปรเซส (Process Hierarchy)
• จัากต์�วอ็ย างในร�ป โปรเซิส A จัะม�โปรเซิสลั�ก 3โปรเซิสคิ0อ็ B,C แลัะ D
• ถึ�งแม)ว าโปรเซิส A เป/นโปรเซิสแม ขอ็งโปรเซิส B,C แลัะ D แต์ โปรเซิส A ไม ได)เป/นผ�)ที่��สร)างโปรเซิส B,C แลัะ D
• ผ�)ที่��สร)างโปรเซิสที่�'งหมดได)แก OS ซิ��ง OS จัะม�โปรเซิสหน��งที่�าหน)าที่��สร)างแลัะย.ต์�โปรเซิส คิ0อ็ “ต์�วจั�ดคิ�วระยะยาว”
• คิ�าถึาม– โปรเซิส F,G,H น�'นถึ�กสร)างโดยโปรเซิส D ใช้ หร0อ็ไม – ใคิรเป/นผ�)ที่��สร)างโปรเซิส A
26
โปรเซสส��อประสาน (Cooperating Processes)
• โปรเซิสที่��เอ็�กซิ�คิ�วต์�ในระบบน�'นม� 2 แบบ– โปรเซิสที่��เป/นอ็�สระ ( Independent Processes)
หมายถึ�งโปรเซิสที่��ไม ม�ผลักระที่บหร0อ็ไม ได)ร�บผลักระที่บจัากโปรเซิสอ็0�น
– โปรเซิสส0�อ็ประสาน (Cooperating Processes) หมายถึ�งโปรเซิสที่��ม�ผลักระที่บหร0อ็ได)ร�บผลักระที่บจัากโปรเซิสอ็0�น
• เหต์.ผลัที่��ที่�าให)เก�ดการประสานงานระหว างโปรเซิส– ต์)อ็งการใช้)ข)อ็ม�ลัร วมก�น– ต์)อ็งการเพ��มคิวามเร�วในการคิ�านวณ
27
การต(ดต)อระหว)างโปรเซส (Interprocess communication)
• เม0�อ็โปรเซิส A ต์)อ็งการต์�ดต์ อ็ก�บโปรเซิส B – โปรเซิส A แลัะ B จัะต์)อ็งจัอ็งเน0'อ็ที่��ในหน วยคิวามจั�า
ในส วนที่��ว างเอ็าไว)– ที่�'ง 2 โปรเซิสต์)อ็งร� )ว าหน วยคิวามจั�าร วมน�'อ็ย� ที่��ใด– เม0�อ็โปรเซิส A ส งข)อ็ม�ลัให)โปรเซิส B ข)อ็ม�ลัจัะถึ�กส ง
ไปไว)ในหน วยคิวามจั�าร วม
หน วยคิวามจั�าร วม
โปรเซิส A
โปรเซิส B
ส งข)อ็ม�ลั ร�บข)อ็ม�ลั
ร�บข)อ็ม�ลั ส งข)อ็ม�ลั
28
การต(ดต)อระหว)างโปรเซส (Interprocess communication)
• เม0�อ็โปรเซิสต์)อ็งการใช้)ข)อ็ม�ลัขอ็งโปรเซิสอ็0�น โปรเซิสที่��ถึ�กร)อ็งขอ็จัะส งข)อ็ม�ลัไปให) การที่��โปรเซิสต์ าง ๆ ม�การต์�ดต์ อ็ก�นเช้ นน�' เราเร�ยกว า การต(ดต)อระหว)างโปรเซส
• โดยที่��วไปการต์�ดต์ อ็ระหว างโปรเซิสน�'นจัะใช้)ว�ธิ�การคิ0อ็ การใชื่�หน)วยค์วามจั'าร)วม (Shared memory)
• กลัไกการร�บส งข)อ็ม�ลัผ านที่างหน วยคิวามจั�าร วมน�' OS จัะไม ช้ วยจั�ดการให)โปรเซิสที่��ต์)อ็งการต์�ดต์ อ็ก�นจัะต์)อ็งจั�ดการเอ็าเอ็ง
29
การต(ดต)อระหว)างโปรเซส (Interprocess communication)
• เม0�อ็โปรเซิส A ต์)อ็งการต์�ดต์ อ็ก�บโปรเซิส B – โปรเซิส B จัะต์รวจัสอ็บได)เอ็งว าโปรเซิส A น�า
ข)อ็ม�ลัไปวางไว)แลั)วหร0อ็ย�ง– ถึ)าโปรเซิส A ย�งไม ส งข)อ็ม�ลัมา โปรเซิส B ก�จัะ
ย�งไม ด�งเอ็าข)อ็ม�ลัมาใช้)– นอ็กจัากน�'นโปรเซิส B ย�งต์)อ็งสามารถึต์รวจั
สอ็บได)ว าข)อ็ม�ลัที่��อ็ย� ในหน วยคิวามจั�าร วมน�'นเป/นข)อ็ม�ลัเก าที่��เคิยน�ามาใช้)แลั)วหร0อ็ย�ง
– ส�าหร�บโปรเซิส A ถึ)าจัะส งข)อ็ม�ลัช้.ดใหม ให) โปรเซิส A จัะต์)อ็งต์รวจัสอ็บก อ็นว าข)อ็ม�ลัช้.ดเด�มที่��อ็ย� ในหน วยคิวามจั�าร วมน�'นถึ�กน�าไปใช้)หร0อ็ย�ง ถึ)าถึ�กน�าไปใช้)แลั)วก�จัะน�าข)อ็ม�ลัช้.ดใหม ที่�บลังไป
30
การต(ดต)อระหว)างโปรเซส (Interprocess communication)
• นอ็กจัากการใช้)หน วยคิวามจั�าร วมแลั)วย�งม�ว�ธิ�อ็0�นที่��ม�คิวามสะดวกมากกว าแลัะเป/นมาต์รฐาน คิ0อ็การใช้)พอ็ร�ที่ (Port)
• พอร�ท คิ0อ็พ0'นที่��ในหน วยคิวามจั�าส วนหน��งที่�� OS จั�ดไว)เพ0�อ็ให)โปรเซิสต์ าง ๆ ใช้)ร วมก�นได)
• โดย OS จัะที่�าหน)าที่��เป/นผ�)ให)จั�งหวะในการร�บส งข)อ็ม�ลัให)ก�บแต์ ลัะโปรเซิส เช้ น– ถึ)าโปรเซิส A ต์)อ็งการใช้)ข)อ็ม�ลัจัากโปรเซิส B OS จัะ
เป/นผ�)คิ)นหาข)อ็ม�ลั B จัากพอ็ร�ที่ ถึ)าพบก�จัะให)โปรเซิส A ร�บข)อ็ม�ลัไป แต์ ถึ)าไม พบก�จัะให)โปรเซิสน�'นหย.ดรอ็จันกว าจัะม�ข)อ็ม�ลัถึ�กส งมาไว)ที่��พอ็ร�ที่
31
โค์รงสร�างของพอร�ท• พอ็ร�ที่ในป6จัจั.บ�นม� 3 แบบ
– พอร�ทแบบค์(ว โคิรงสร)างขอ็งพอ็ร�ที่แบบน�'ข)อ็ม�ลัช้.ด ใดที่��ถึ�กส งเข)าพอ็ร�ที่ก อ็นจัะถึ�กด�งอ็อ็กไปก อ็น ข)อ็ม�ลั
ช้.ดใดที่��ถึ�กส งเข)าพอ็ร�ที่ที่�หลั�งจัะถึ�กด�งอ็อ็กไปที่�หลั�ง
– พอร�ทแบบไปป/ ม�ลั�กษณะการที่�างานเหม0อ็นพอ็ร�ที่ แบบคิ�ว แต์ ไปป:ม�คิวามยาวขอ็งพอ็ร�ที่ไม จั�าก�ด ใน
ขณะที่��พอ็ร�ที่แบบคิ�วม�คิวามยาวขอ็งพอ็ร�ที่คิงที่��– พอร�ทแบบแสต0ก ม�กลัไกการที่�างานโดยข)อ็ม�ลัช้.ดใด
ที่��ถึ�กส งเข)าพอ็ร�ที่ก อ็นจัะถึ�กด�งอ็อ็กไปใช้)ที่�หลั�ง ก อ็นข)อ็ม�ลัช้.ดใดที่��ถึ�กส งเข)าพอ็ร�ที่ที่�หลั�งจัะถึ�กด�งอ็อ็กไปใช้)ก อ็น
ส งข)อ็ม�ลัเข)าพอ็ร�ที่ข)อ็ม�ลัอ็อ็กจัากพอ็ร�ที่
32
การเข�าจังหวะของโปรเซส (Process Synchronization)
• ในการใช้)ที่ร�พยากรโดยเฉพาะอ็ย างย��งข)อ็ม�ลัอ็าจัก อ็ให)เก�ดป6ญหาที่��ที่�าให)การที่�างานไม ถึ�กต์)อ็ง
• ต์�วอ็ย าง– เร��มต์)นคิ า X = 10– โปรเซิสที่�� 1 ม�การเพ��มคิ า X จัากเด�ม 10– โปรเซิสที่�� 2 ม�การลับคิ า X ลัง 10– ผลัจัากการที่�างานจัะเป/นด�งน�' (10+10-10)
= 10
33
การเข�าจังหวะของโปรเซส (Process Synchronization)
10
10X=X+
20
-10
10
โปรเซิสที่�� 1 โปรเซิสที่�� 2
โปรเซิสที่�� 1 ที่�างานเสร�จัก อ็นโปรเซิสที่�� 2
X=10X=20 X=20 X=10
34
การเข�าจังหวะของโปรเซส (Process Synchronization)
10
-10
0
10X=X+
10
โปรเซิสที่�� 2 โปรเซิสที่�� 1
โปรเซิสที่�� 2 ที่�างานเสร�จัก อ็นโปรเซิสที่�� 1
X=10X=0 X=0 X=10
35
การเข�าจังหวะของโปรเซส (Process Synchronization)
10X=X+
10
-10
0 หร0อ็ 20โปรเซิสที่�� 1
โปรเซิสที่�� 2
โปรเซิสที่�� 1 แลัะโปรเซิสที่�� 2 ที่�างานใกลั)เคิ�ยงก�น
X=10
X=10 X=0
X=20
36
การเข�าจังหวะของโปรเซส (Process Synchronization)
• จัากร�ปจัะเห�นว าถึ)าโปรเซิสที่�� 1 แลัะ 2 ม�การที่�างานที่��เป/นอ็�สระอ็าจัที่�าให)ผลัลั�พธิ�เก�ดคิวามผ�ดพลัาดข�'น
• ด�งน�'นเพ0�อ็ป=อ็งก�นคิวามผ�ดพลัาดที่��เก�ดข�'น จัะต์)อ็งม�การจั�ดจั�งหวะการที่�างานให)ก�บแต์ ลัะโปรเซิสส�าหร�บการใช้)ข)อ็ม�ลัร วมก�น
• จัากต์�วอ็ย างคิวรก�าหนดว าเม0�อ็โปรเซิสใดได)เข)ามาคิรอ็บคิรอ็งข)อ็ม�ลั โปรเซิสอ็0�น ๆ ที่��ต์)อ็งการใช้)ข)อ็ม�ลัต์�วเด�ยวก�นจัะต์)อ็งหย.ดรอ็ให)โปรเซิสแรกใช้)งานให)เสร�จัก อ็น
37
การเข�าจังหวะของโปรเซส (Process Synchronization)
• การป=อ็งก�นโปรเซิสอ็0�น ๆ เข)ามาใช้)ที่ร�พยากรซิ��งม�โปรเซิสหน��งคิรอ็บคิรอ็งอ็ย� แลั)วเร�ยกว า การไม)เก(ดร)วม (Mutual exclusion)
• ในช้ วงเวลัาที่��โปรเซิสเข)าไปคิรอ็บคิรอ็งที่ร�พยากรแบบการไม เก�ดร วมน�'เร�ยกว า โปรเซิสน�'นอ็ย� ในย านว�กฤต์ (Critical region หร�อ Critical Section)
38
ป1ญหาการท'างานของโปรเซส•ป1ญหาท�� 1 : การอดตาย (Starvation) หร�อ การเล��อนไหลไปอย)างไม)ม�วนส(,นส"ด (Infinite postponement)–ถึ)าโปรเซิส A แลัะ B ต์)อ็งการใช้)เคิร0�อ็งพ�มพ�
พร)อ็มก�น โปรเซิสที่��จัะได)ใช้)ก อ็นก�คิ0อ็โปรเซิสที่��ม�ลั�าด�บคิวามส�าคิ�ญส�งกว า
– เช้ น ถึ)า โปรเซิส B ม�ลั�าด�บคิวามส�าคิ�ญส�งกว า A โปรเซิส B ก�จัะได)ใช้)เคิร0�อ็งพ�มพ� ส วนโปรเซิส A ต์)อ็งรอ็
39
ป1ญหาการท'างานของโปรเซส–ในขณะที่��โปรเซิส A ก�าลั�งรอ็ ปรากฏิว าม�
โปรเซิสอ็0�น ๆ ที่��ม�ลั�าด�บคิวามส�าคิ�ญส�งกว าโปรเซิส A ต์)อ็งการใช้)เคิร0�อ็งพ�มพ�
–ส��งที่��เก�ดข�'นก�บโปรเซิส A คิ0อ็ โปรเซิส A จัะถึ�กโปรเซิสอ็0�นแซิงต์ลัอ็ดเวลัา เราเร�ยกเหต์.การณ�ที่��เก�ดข�'นน�'ว า “การอดตายของโปรเซส (Starvation) หร�อ การเล��อนไหลไปอย)างไม)ม�วนส(,นส"ด (Infinite postponement)
40
ป1ญหาการท'างานของโปรเซส• ป1ญหาท�� 2 : วงจัรอบ หร�อ การต(ดตาย
(Deadlock)ที่ร�พยากร A
ที่ร�พยากร B
โปรเซิส 1 โปรเซิส 2
คิรอ็บคิรอ็ง
คิรอ็บคิรอ็งต์)อ็งการ
ต์)อ็งการ
แบบฝึ3กหดบทท�� 21 . สถานะของโปรเซสม�อะไรบ�าง จังอธิ(บาย2. เวลา Quantum Time ค์�ออะไร3. ป1ญหา DeadLock เก(ดข5,นได�อย)างไร4. สถานะ Block เก(ดข5,นได�อย)างไร5. การต(ดต)อกนระหว)าง Process เป6นหน�าท��ของโค์ร6. พอร�ท ม�ก��แบบอะไรบ�าง7. จังยกตวอย)าง พอร�ทแบบสเต ก8. Mutual exclusion เก(ดข5,นได�อย)างไร9. ป1ญหาการอดตาย เก(ดข5,นได�อย)างไร1 0 .องค์�ประกอบของโปรเซส ม�อะไรบ�าง
41