41
Deadlocks 1 บบบบบ 8 สสสสสสสสสสสสส Deadlocks

Ch8 Deadlock

Embed Size (px)

Citation preview

Page 1: Ch8 Deadlock

Deadlocks 1

บทท�� 8สภาวะเดรสล็อคDeadlocks

Page 2: Ch8 Deadlock

Deadlocks 2

หั�วข้�อบรรยาย ร�ปแบบข้องป�ญหัาเดรสล็อค ล็�กษณะข้องวงจรเดรสล็อค การจ�ดการป�ญหัาวงจรเดรสล็อค การป�องก�นการเก�ดวงจรเดรสล็อค การหัล็ กเล็ !ยงการเก�ดวงจรเดรสล็อค การตรวจหัาวงจรเดรสล็อค การก��ค#นจากวงจรเดรสล็อค การจ�ดการป�ญหัาวงจรเดรสล็อคโดยว�ธี ผสมผสาน

Page 3: Ch8 Deadlock

Deadlocks 3

ร�ปแบบข้องป�ญหัาเดรสล็อค ค#อ กล็)*มข้องโปรเซสกล็)*มหัน,!งที่ !อย�*ในสถานะการที่ !ถ�กบล็อก

โดยที่ !ต*างกถ#อครองที่ร�พยากรบางอย*างเอาไว� แล็ะต�องการใช้�ที่ร�พยากรใหัม*เพ�!มเต�ม ซ,!งที่ร�พยากรที่ !ต�องการเพ�!มเต�มกถ�กถ#อครองโดยโปรเซสอ#!นที่ !อย�*ในเดรสล็อคเด ยวก�น

ต�วอย*างเช้*น ระบบม เที่ปไดร3 2 ต�ว โดยโปรเซส p1 แล็ะ p2 ต*างกถ#อครอง เที่ปไดร3เอาไว�

คนล็ะต�ว แล็ะแต*ล็ะโปรเซสต*างกต�องการเที่ปไดร3เพ�!มอ กโปรเซสล็ะ 1 ต�ว เช้*นน 4จะถ#อว*าระบบอย�*ในสภาวะเดรสล็อค

Page 4: Ch8 Deadlock

Deadlocks 4

ต�วอย*างสภาวะเดรสล็อค

ก5าหันดใหั�ระบบสามารถเด�นรถได�ที่างเด ยว พ#4นที่ !บนถนนเปร ยบเสม#อนที่ร�พยากรในระบบ ถ�าสภาวะเดรสล็อคเก�ดข้,4น สามารถแก�ไข้ได�โดยใหั�รถที่�ศที่างใด

ที่�ศที่างหัน,!งถอยหัล็�งออกไป เร ยกว*าที่5าการ rollback เปร ยบเสม#อนการเร ยกที่ร�พยากรข้องระบบค#นจากโปรเซส

ซ,!งกรณ เช้*นน 4 อาจเป7นไปได�ที่ !รถหัล็ายๆค�นอาจจะต�องถ�กที่5าการ rollback ถ�าม สภาวะเดรสล็อคเก�ดข้,4นมา

Page 5: Ch8 Deadlock

Deadlocks 5

ร�ปแบบข้องระบบ ในระบบประกอบด�วยที่ร�พยากร เช้*น

CPU cycles, memory space, I/O devices ที่ร�พยากรแต*ล็ะอย*าง เปร ยบเสม#อน Ri ซ,!งม จ5านวนที่�4ง

ส�4น Wi ช้�4น การใช้�ที่ร�พยากรในระบบข้องแต*ล็ะโปรเซส ม ข้�4นตอนด�งน 4

request -การร�องข้อใช้�ที่ร�พยากร use - สภาวะที่ !โปรเซสก5าล็�งใช้�ที่ร�พยากรน�4น release -การค#นที่ร�พยากรที่ !ใช้�แล็�วใหั�แก*ระบบ

Page 6: Ch8 Deadlock

Deadlocks 6

ล็�กษณะข้องวงจรเดรสล็อค(Deadlock Characterization)

Mutual exclusion: เวล็าใดๆจะม โปรเซสเพ ยงโปรเซสเด ยวเที่*าน�4นที่ !สามารถใช้�ที่ร�พยากรน�4นได�

Hold and wait: โปรเซสก5าล็�งถ#อครองที่ร�พยากรอย*างน�อย 1 ต�วแล็ะก5าล็�งร�องข้อที่ร�พยากรเพ�!ม

No preemption: ที่ร�พยากรน�4น ๆ เม#!อถ�กเร�!มต�นใช้�งานแล็�วจะต�องถ�กใช้�งานต*อเน#!อง จะค#นกต*อเม#!อที่5างานน�4นเสรจแล็�วเที่*าน�4น

Circular wait: การถ#อครองแล็ะการข้อใช้�ที่ร�พยากรต*อเน#!องก�นเป7นวงกล็ม

Page 7: Ch8 Deadlock

Deadlocks 7

ล็�กษณะข้อง Resource-Allocation Graph

V ถ�กแบ*งออกเป7น 2 ประเภที่: P = {P1, P2, …, Pn}, ค#อกล็)*มข้องโปรเซสที่ !อย�*ในระบบ

R = {R1, R2, …, Rm}, ค#อกล็)*มข้องที่ร�พยากรที่ !ม อย�*ที่� 4งหัมดในระบบ

request edge – ค#อที่�ศที่างข้องเส�นจาก Pi Rj

assignment edge – ค#อที่�ศที่างข้องเส�นจาก Rj Pi

ค#อ กล็)*มข้องโหันด V แล็ะแข้น E

Page 8: Ch8 Deadlock

Deadlocks 8

ล็�กษณะข้อง Resource-Allocation Graph (ต*อ)

โปรเซสใช้�ส�ญล็�กษณ3

ที่ร�พยากรใช้�ส�ญล็�กษณ3เป7นร�ปส !เหัล็ !ยม

ถ�าโปรเซส pi ร�องข้อใช้�ที่ร�พยากร Rj

Pi

Rj

Page 9: Ch8 Deadlock

Deadlocks 9

ล็�กษณะข้อง Resource-Allocation Graph (ต*อ)

ถ�าโปรเซส pi ก5าล็�งถ#อครองที่ร�พยากร Rj ใหั�ใช้�

Pi

Rj

Page 10: Ch8 Deadlock

Deadlocks 10

ต�วอย*างข้อง Resource Allocation Graph

Page 11: Ch8 Deadlock

Deadlocks 11

ต�วอย*างข้อง Resource Allocation Graph ที่ !เก�ดเดรสล็อค

Page 12: Ch8 Deadlock

Deadlocks 12

ต�วอย*างข้อง Resource Allocation Graph ที่ !ไม*เก�ดเดรสล็อค

Page 13: Ch8 Deadlock

Deadlocks 13

ความหัมายข้อง Resource Allocation Graph ถ�ากราฟไม*ม cycle แสดงว*าไม*ม สภาวะวงจรเดรสล็อค

เก�ดข้,4น ถ�ากราฟม cycle กพ�จารณาเพ�!มเต�มค#อ

ถ�าในระบบที่ !ที่ร�พยากรแต*ล็ะช้น�ดม เพ ยงต�วเด ยว แสดงว*าได�เก�ดสภาวะวงจรเดรวล็อคข้,4นแล็�ว

ในกรณ ที่ !ที่ร�พยากรแต*ล็ะช้น�ดม หัล็ายต�ว แสดงว*าระบบอย�*ในสภาพที่ !เส !ยงต*อการเก�ดวงจรเดรสล็อค

Page 14: Ch8 Deadlock

Deadlocks 14

การจ�ดการป�ญหัาวงจรเดรสล็อค ในระบบปฏิ�บ�ต�การที่�!วๆไป ม 3 แนวที่างที่ !จ�ดการก�บ

ป�ญหัาน 4 ที่5าใหั�แน*ใจว*าระบบจะไม*เข้�าส�*วงจรเดรสล็อค ยอมใหั�ระบบเข้�าส�*วงจรเดรสล็อคก*อนแล็�ว จ,งค*อยแก�ไข้ในภาย

หัล็�ง ไม*ใหั�ความสนใจก�บป�ญหัาวงจรเดรสล็อค โดยต�4งสมม)ต�ฐานว*า

ระบบจะไม*ม ที่างที่ !จะเก�ดป�ญหัาวงจรเดรสล็อค

Page 15: Ch8 Deadlock

Deadlocks 15

การป�องก�นการเก�ดวงจรเดรสล็อค (Deadlock Prevention)

Mutual Exclusion – ค)ณสมบ�ต�น 4ไม*สามารถหัล็ กเล็ !ยงได� เพราะเป7นค)ณสมบ�ต�ตามธีรรมช้าต�ข้องที่ร�พยากรแต*ล็ะช้น�ด

Hold and Wait – ระบบจะต�องร�บประก�นว*า เม#!อใดที่ !โปรเซสร�องข้อใช้�ที่ร�พยากร โปรเซสน 4จะต�องไม*ครอบครองที่ร�พยากรอ#!นๆ อย�* บ�งค�บใหั�โปรเซสจะต�องประกาศล็*วงหัน�าว*าต�องการใช้�

ที่ร�พยากรอะไรบ�าง ด�งน�4นโปรเซสจะเร�!มประมวล็ผล็ได�กต*อเม#!อได�ร�บการจ�ดสรรที่ร�พยากรที่ !ต�องการใช้�ใหั�หัมดเร ยบร�อยเส ยก*อน

ม การใช้�ที่ร�พยากรข้องระบบในระด�บต5!าแล็ะเก�ดป�ญหัาการอดอยาก (Starvation)

Page 16: Ch8 Deadlock

Deadlocks 16

การป�องก�นการเก�ดวงจรเดรสล็อค (Deadlock Prevention) (ต*อ)

No Preemption – ก5าหันดกฎการที่5างานใหั�เป7นด�งน 4 ถ�าโปรเซสที่ !ก5าล็�งครอบครองที่ร�พยากรอย*าง

ใดอย*างหัน,!งร�องข้อใช้�ที่ร�พยากรเพ�!มเต�ม แต*ระบบปฏิ�บ�ต�การไม*สามารพจ�ดหัาได�ในที่�นที่ กใหั�โปรเซสน�4นค#นที่ร�พยากรที่ !ครอบครองอย�*ที่� 4งหัมดใหั�แก*ระบบ

เพ�!มเต�มที่ร�พยากรที่ !สามารถหัย)ดการที่5างานกล็างค�นได�

โปรเซสจะสามารถที่5างานได�อ กคร�4งเม#!อระบบปฏิ�บ�ต�การสามารถจ�ดสรรที่ร�พยากรเก*ารวมที่�4งที่ร�พยากรใหัม*ที่ !โปรเซสน�4นร�องข้อใหั�แก*โปรเซสน�4นได�

Page 17: Ch8 Deadlock

Deadlocks 17

การป�องก�นการเก�ดวงจรเดรสล็อค (Deadlock Prevention) (ต*อ)

Circular Wait –ว�ธี ก5าหันดหัมายเล็ข้เฉพาะใหั�แก*ที่ร�พยากรที่)กต�ว เร ยกว*า การจ�ดล็5าด�บที่�4งระบบโปรเซสใด ๆ จะได�ร�บอน)ญาตใหั�ร�องข้อที่ร�พยากรที่ !ม หัมายเล็ข้ส�งกว*าเที่*าน�4น

Page 18: Ch8 Deadlock

Deadlocks 18

การหัล็ กเล็ !ยงการเก�ดวงจรเดรสล็อค Deadlock Avoidance

ว�ธี การที่ !ง*ายที่ ส)ดแล็ะเป7นประโยช้น3มากที่ !ส)ดค#อใหั�แต*ล็ะโปรเซสประกาศล็*วงหัน�าว*าต�องการใช้�ที่ร�พยากรใดบ�างแล็ะต�องการใช้�ที่ร�พยากรจ5านวนส�งส)ดเที่*าใด

อ�ล็กอร�ที่,มจะที่5าการตรวจสอบสถานการณ3ถ#อครองที่ร�พยากรข้องโปรเซสต*าง ๆ อย�*ตล็อดเวล็าเพ#!อที่5าใหั�แน*ใจว*าไม*เก�ดเง#!อนไข้ circular-wait ข้,4น

สถานะresource allocation state ก5าหันดข้,4นโดยจ5านวนที่ร�พยากรที่ !ว*างอย�*แล็ะจ5านวนที่ร�พยากรที่ !จ�ดสรรใหั�แก*โปรเซสต*าง ๆ ไปแล็�ว

Page 19: Ch8 Deadlock

Deadlocks 19

สภาวะ Safe State เม#!อโปรเซสร�องข้อใช้�ที่ร�พยากรที่ !ว*างอย�* ระบบจะต�อง

ตรวจสอบว*าเม#!อใหั�ที่ร�พยากรน�4นไปแล็�วระบบจะย�งคงอย�*ในสถานะ safe state

ระบบจะอย�*ในสถานะ safe state ถ�าสามารถค�นหัา safe sequence ข้องโปรเซสที่�4งหัมดได�

ส5าหัร�บแต*ล็ะโปรเซส ระบบปฏิ�บ�ต�การจะสามารถจ�ดสรรที่ร�พยากรใหั�แก*โปรเซสที่ !ร �องข้อน�4นได� ซ,!งรวมที่�4งจ5านวนที่ !โปรเซส Pi (เม#!อ j<i ) ร�องข้อได� ถ�าโปรเซส Pi ต�องการใช้�ที่ร�พยากรที่ !ระบบไม*

สามารถจ�ดสรรใหั�ได�ที่�นที่ โปรเซส Pi จะต�องหัย)ดรอจนโปรเซส Pi ที่�4งหัมดจะที่5างานเสรจส�4นแล็ะค#นที่ร�พยากรใหั�แก*ระบบ

Page 20: Ch8 Deadlock

Deadlocks 20

สภาวะ Safe State (ต*อ) เม#!อโปรเซส Pi ที่5างานเสรจ โปรเซส Pi จ,งจะได�ร�บ

การจ�ดสรรที่ร�พยากรใหั� สามารถประมวล็ผล็แล็ะค#นที่ร�พยากรใหั�แก*ระบบเม#!อเสรจส�4นการที่5างาน

เม#!อโปรเซส Pi ที่5างานเสรจ โปรเซส Pi 1+ จ,งจะได�ร�บการจ�ดสรรที่ร�พยากรใหั�แล็ะที่5างานได�ต*อไป

Page 21: Ch8 Deadlock

Deadlocks 21

ความหัมายข้องสภาวะ Safe State ถ�าระบบอย�*ในสภาวะ safe state ไม*ม เดรสล็อคเก�ด

ข้,4น

ถ�าระบบอย�*ในสภาวะ unsafe state เป7นไปได�ที่ !จะม เดรสล็อคเก�ดข้,4นในระบบ

การหัล็ กเล็ !ยง ค#อ ที่5าใหั�แน*ใจว*าระบบจะไม*เข้�าส�*สภาวะ unsafe state

Page 22: Ch8 Deadlock

Deadlocks 22

สภาวะ Safe, Unsafe , Deadlock State

Page 23: Ch8 Deadlock

Deadlocks 23

ต�วอย*าง Resource-Allocation Graph เพ#!อหัล็ กเล็ !ยงเดรสล็อค

Page 24: Ch8 Deadlock

Deadlocks 24

ต�วอย*าง Resource-Allocation Graph ในสภาวะ Unsafe

Page 25: Ch8 Deadlock

Deadlocks 25

อ�ล็กอร�ธี,ม Banker ก5าหันดใหั�ม ที่ร�พยากรหัล็ายอย*างแล็ะที่ร�พยากรแต*ล็ะ

อย*างม อย�*หัล็ายช้�4น แต*ล็ะโปรเซสจะต�องแจ�งใหั�ที่ราบล็*วงหัน�าว*าต�องการใช้�

ที่ร�พยากรอะไรบ�าง ส�งส)ดเที่*าไร เม#!อโปรเซสร�องข้อที่ร�พยากรอาจจะไม*ได�ร�บการจ�ดสรรใน

ที่�นที่ จ,งอาจต�องรอคอยบ�าง เม#!อโปรเซสได�ร�บการจ�ดสรรที่ร�พยากรใหั�แล็�ว โปรเซสน�4น

จะต�องค#นที่ร�พยากรใหั�แก*ระบบภายในระยะเวล็าอ�นสมควร

Page 26: Ch8 Deadlock

Deadlocks 26

โครงสร�างข้�อม�ล็ข้อง Banker’s Algorithm

Available: เป7นค*าเวกเตอร3ความยาว m ถ�า available [j] = k หัมายความว*า ม ที่ร�พยากรประเภที่ Rj อย�* k ต�ว

Max: เป7นเมตร�กข้นาด n x m ถ�า Max [i,j] = k หัมายความว*า โปรเซสช้#!อ Pi ต�องการที่ร�พยากรประเภที่ Rj ส�งส)ด k ต�ว

ก5าหันดใหั� n = จ5านวนข้องโปรเซส, แล็ะ m = จ5านวนประเภที่ข้องที่ร�พยากร

Page 27: Ch8 Deadlock

Deadlocks 27

โครงสร�างข้�อม�ล็ข้อง Banker’s Algorithm (ต*อ)

Allocation: เป7นค*าเมตร�กข้นาด n x m ถ�า Allocation[i,j] = k หัมายความว*า โปรเซสPi ครอบครองที่ร�พยากร Rj. เป7นจ5านวนที่�4งส�4น k ต�วในข้ณะน 4

Need: เป7นค*าเมตร�กข้นาด n x m ถ�า Need[i,j] = k หัมายความว*า โปรเซส Pi ต�องการที่ร�พยากร Rj อ กจ5านวน k ต�ว จ,งจะที่5างานส5าเรจ

Need [i,j] = Max[i,j] – Allocation [i,j].

Page 28: Ch8 Deadlock

Deadlocks 28

การที่5างานข้องอ�งกอร�ธี,มใหั� Requesti เป7นเวกเตอร3แสดงค5าร�องข้อข้อง

กระบวนการ Pi ได�ร�องข้อที่ร�พยากรประเภที่ Rj เป7นจ5านวน k ต�ว1. ถ�า Requesti Needi แล็�ว ระบบ

จะแจ�งข้�อผ�ดพล็าดว*า กระบวนการการข้อที่ร�พยากรมากกว*าที่ !ระบ) แล็ะกระบวนการจะถ�กข้�บออกจากระบบ แต*ถ�า Requesti Needi แล็�ว จะไปที่5างานในข้�4นตอนที่ ! 2

2. ถ�า Requesti Available แล็�วใหั� Pi รอจนกว*าที่ร�พยากรที่ !ร �องข้อจะว*าง จากน�4นจ,งไปที่5างานในข้�4นตอนที่ ! 3 แต*ถ�า Requesti Available แล็�ว จะไปที่5างานในข้�4นตอนที่ ! 3ที่�นที่

Page 29: Ch8 Deadlock

Deadlocks 29

การที่5างานข้องอ�งกอร�ธี,ม (ต*อ)

3. ระบบสมมต�ว*าได�จ�ดสรรที่ร�พยากรใหั�ตามที่ !กระบวนการ Pi ร�องข้อมา โดยระบบจะม สถานะเปล็ !ยนไปด�งน 4

Available = Available = Requesti;

Allocationi = Allocationi + Requesti;

Needi = Needi – Requesti;;

• ถ�า safe ที่ร�พยากรน�4นได�ร�บการจ�ดสรรใหั� Pi

• ถ�า unsafe Pi จะต�องรอ

Page 30: Ch8 Deadlock

Deadlocks 30

ต�วอย*างข้อง Banker’s Algorithm ม โปรเซสอย�* 5 โปรเซส ค#อ P0 ถ,ง P

4 แล็ะม ที่ร�พยากรอย�* 3 ประเภที่

โดยม ประเภที่ A อย�* 10 ต�ว ประเภที่ B อย�* 5 ต�วแล็ะประเภที่ C อย�* 7 ต�ว

เร�!มต�นที่ !ข้�อม�ล็ในระบบเป7นด�งน 4Allocation MaxAvailableA B CA B C A B CP0 0 1 0 7 5 3 3 3 2

P1 2 0 0 3 2 2

P2 3 0 2 9 0 2

P3 2 1 1 2 2 2

P4 0 0 2 4 3 3

Page 31: Ch8 Deadlock

Deadlocks 31

ต�วอย*างข้อง Banker’s Algorithm (ต*อ)

เน#!องจากเมที่ร�กซ3 Need เก�ดจาก Max-Allocation จะได�ว*าNeedA B C

P0 7 4 3

P1 1 2 2

P2 6 0 0

P3 0 1 1

P4 4 3 1 พบว*าระบบอย�*ในสถานะปล็อดภ�ยเน#!องจากระบวนการอาจที่5างานได�

ตามล็5าด�บ ซ,!งเป7นไปตามเง#!อนไข้ข้องสถานะปล็อดภ�ย < P1, P3, P4, P2, P0>

Page 32: Ch8 Deadlock

Deadlocks 32

การตรวจจ�บสภาวะเดรสล็อค อน)ญาตใหั�ระบบเข้�าส�*สภาวะเดรสล็อค

ใช้� Detection algorithm เพ#!อตรวจสอบ

ถ�าพบกที่5าการก��ค#นกล็�บมา

Page 33: Ch8 Deadlock

Deadlocks 33

กรณ ที่ร�พยากรแต*ล็ะประเภที่ม เพ ยงแค*หัน,!งต�ว

ใช้� wait-for graph ช้*วย โหันดค#อโปรเซส Pi Pj ถ�า Pi รอที่ร�พยากรที่ ! Pj ใช้�งานอย�*

จากน�4นที่5าการค�นหัา cycle ในกราฟ

ค*าการด5าเน�นงานที่ !ใช้�ในการค�นหัาในกราฟ ม ค*าเป7น n2 operations เม#!อ n ค#อจ5านวนข้องโหันดในกราฟ

Page 34: Ch8 Deadlock

Deadlocks 34

ต�วอย*างการแปล็ง Resource-Allocation Graph เป7น Wait-for Graph

Resource-Allocation Graph Corresponding wait-for graph

Page 35: Ch8 Deadlock

Deadlocks 35

กรณ ที่ร�พยากรแต*ล็ะประเภที่ม หัล็ายๆต�ว Available: ค#อเวกเตอร3ข้นาด m ซ,!งแที่นจ5านวน

ประเภที่ข้องที่ร�พยากร

Allocation: ค#อเมตร�กข้นาด n x m ใช้�บอกจ5านวนที่ร�พยากรแต*ล็ะประเภที่ที่ !แต*ล็ะโปรเซสครอบครองอย�*

Request: ค#อเมตร�กข้นาด n x m ใช้�บอกจ5านวนที่ร�พยากรที่ !โปรเซสต*ล็ะโปรเซสร�องข้อเพ�!ม

Page 36: Ch8 Deadlock

Deadlocks 36

ต�วอย*าง Detection Algorithm ในระบบประกอบด�วยโปรเซสที่�4งส�4น 5 โปรเซส ช้#!อว*า P0

จนถ,ง P4 โดยม ที่ร�พยากรอย�* 3 ประเภที่ ค#อ A (7 ต�ว),

B (2 ต�ว), แล็ะ C (6 ต�ว) ที่ !เวล็าเร�!มต�น ข้�อม�ล็ในระบบเป7นด�งน 4

Page 37: Ch8 Deadlock

Deadlocks 37

ต�วอย*าง Detection Algorithm (ต*อ)

AllocationRequestAvailableA B C A B C A B C

P0 0 1 0 0 0 0 0 0 0

P1 2 0 0 2 0 2

P2 3 0 3 0 0 0

P3 2 1 1 1 0 0

P4 0 0 2 0 0 2

ล็5าด�บ <P0, P2, P3, P1, P4> เป7นผล็ที่5าใหั� Finish[i] = true ในที่)ก i

Page 38: Ch8 Deadlock

Deadlocks 38

การใช้�งาน Detection-Algorithm จะตรวจสอบเม#!อใดแล็ะบ*อยแค*ไหัน

ความถ !หัร#อโอกาสที่ !จะเก�ดสภาวะข้�ดตายข้,4นในระบบ จ5านวนโปรเซสที่ !ต�อง roll back ที่5างานย�อนกล็�บ

หัล็�ง)

ถ�าอ�ล็กอร�ที่,มตรวจหัาสภาวะข้�ดตาย ถ�กน5ามาใช้�อย*างไม*สมบ�รณ3 อาจเป7นไปได�ว*าจะเก�ดcycle ข้,4นเป7นจ5านวนหัล็าย cycle ที่5าใหั�ไม*สามารถบอกได�ว*า โปรเซสใดอย�*ในกล็)*ม cycle ใดที่ !เก�ดสภาวะข้�ดตายข้,4น

Page 39: Ch8 Deadlock

Deadlocks 39

การก��ระบบค#นจากสภาวะเดรสล็อค บ�งค�บใหั�ที่)กโปรเซสที่ !เก !ยวข้�องหัย)ดที่5างานที่�4งหัมด ส�!งใหั�โปรเซสหัย)ดที่5างานในที่�นที่ ที่ ล็ะโปรเซสจนกว*าหั*วงโซ*ข้อง

โปรเซสที่ !ที่5าใหั�เก�ดสภาวะข้�ดตายจะหัมดไป การเล็#อกโปรเซสที่ !จะถ�กส�!งใหั�หัย)ดที่5างาน พ�จารณาจาก

เล็#อกตามล็5าด�บความส5าค�ญข้องแต*ล็ะโปรเซส เวล็าซ พ ย�ที่ !ใช้�ไป หัร#อเวล็าซ พ ย�ที่ !เหัล็#ออย�*ข้องแต*ล็ะโปรเซส ปร�มาณที่ร�พยากรที่ !ใช้�ไปแล็�ว ปร�มาณที่ร�พยากรที่ !ต�องการใช้�เพ�!ม จ5านวนโปรเซสที่ !จะต�องถ�กส�!งใหั�หัย)ดที่5างาน ล็�กษณะข้องโปรเซส ค#อเป7นงานแบบ interactive หัร#อ

batch

Page 40: Ch8 Deadlock

Deadlocks 40

การก��ระบบค#นจากสภาวะเดรสล็อค(ต*อ) เล็#อกโปรเซสโดยพ�จารณาจากโปรเซสที่ !ม ม�ล็ค*าการ

ที่5างานต5!าที่ !ส)ด Rollback –เล็#อกโปรเซสที่ !จะที่5าใหั�เก�ดโรล็แบก ต5!าที่ !ส)ด

การโรล็แบก ค#อการย�อนการที่5างานข้องโปรเซสหัน,!งกล็�บไปย�งจ)ดที่ !ปล็อดภ�ย

Starvation –ว�ธี การเล็#อกโปรเซสที่ !ไม*เหัมาะสมอาจที่5าใหั�เก�ดป�ญหัา starvation ค#อโปรเซสกล็)*มหัน,!งม�กจะถ�กเล็#อกใหั�หัย)ดที่5างานเสมอเม#!อเก�ดป�ญหัาข้�ดตายข้,4น

Page 41: Ch8 Deadlock

Deadlocks 41

การจ�ดการป�ญหัาวงจรเดรสล็อคโดยว�ธี ผสมผสาน

รวมเที่คน�คที่�4งสามว�ธี เข้�าด�วยก�น เที่คน�คการป�องก�น เที่คน�คการหัล็ กเล็ !ยง เที่คน�คการตรวจสอบ

อน)ญาตใหั�ใช้�เที่คน�คที่ !เหัมาะก�บที่ร�พยากรแต*ล็ะประเภที่ในระบบ

แบ*งที่ร�พยากรออกเป7นคล็าสๆ เล็#อกเที่คน�คที่ !เหัมาะสมในแต*ล็ะคล็าส โดยไม*จ5าเป7นต�อง

เหัม#อนก�น