งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

นงลักษณ์ พรมทอง วิเชษฐ์ พลายมาศ

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "นงลักษณ์ พรมทอง วิเชษฐ์ พลายมาศ"— ใบสำเนางานนำเสนอ:

1 นงลักษณ์ พรมทอง วิเชษฐ์ พลายมาศ
นงลักษณ์ พรมทอง วิเชษฐ์ พลายมาศ ภาวะติดตาย Deadlocks

2 Deadlocks The Deadlock Problem System Model Deadlock Characterization
Methods for Handling Deadlocks Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock

3 Chapter Objectives เพื่อศึกษาแนวคิดพื้นฐานเกี่ยวกับปัญหาของภาวะติดตาย ซึ่งเป็นกลุ่มของกระบวนการที่ทำงานในภาวะพร้อมกันเพื่อให้ภารกิจของตนเสร็จสิ้น เพื่อศึกษาวิธีการที่แตกต่างกันในการจัดการกับภาวะติดตาย โดยการป้องกันหรือการหลีกเลี่ยง

4 ปัญหาภาวะติดตาย The Deadlock Problem
กลุ่มของกลุ่มกระบวนการที่ต่างฝ่ายต่างรอคอยทรัพยากรที่กำลังถูกถือครองโดยกระบวนการอื่นอยู่ Example ระบบที่มีเทปไดรฟ์ 2 ชุด P1 และ P2 ต่างฝ่ายต่างถือเทปไดรฟ์อยู่ และรอเทปไดรฟ์จากอีกฝ่ายหนึ่ง. semaphores A and B, initialized to 1 P0 P1 wait (A); wait(B) wait (B); wait(A)

5 Bridge Crossing Example
จราจรเดินรถได้เพียงคันเดียวบนสะพาน ไม่สามารถสวนกันได้ สะพานแต่ละแห่ง เปรียบได้กับทรัพยากรชุดหนึ่งๆ ถ้าเกิดภาวะติดตายขึ้น สามารถแก้ได้โดยยอมให้รถคันหนึ่งถอยไปจากสะพาน (บังคับให้ปลดปล่อยทรัพยากร และย้อนกลับ -preempt resources and rollback) บางทีจำเป็นต้องถอยรถออกจากสะพานจำนวนหลายคัน จึงจะสามารถแก้ปัญหาภาวะติดตายได้ อาจเกิดภาวะต่างฝ่ายต่างรอซึ่งกันและกัน (Starvation)

6 แบบจำลองระบบ System Model
ทรัพยากรแบ่งออกเป็นหลายชนิด R1, R2, . . ., Rm รอบซีพียู, พื้นที่หน่วยความจำ, อุปกรณ์ไอ/โอ ทรัพยากรแต่ละชนิด (Ri) จะมีจำนวนที่คงที่ (Wi). แต่ละกระบวนการ จะใช้ประโยชน์จากทรัพยากร ดังนี้ : ร้องขอ (request) ใช้ (use) ปลดปล่อย (release)

7 คุณลักษณะของภาวะติดตาย Deadlock Characterization
ภาวะติดตายอาจเกิดขึ้นได้ถ้าประสบกับเงื่อนไขทั้ง 4 ข้อต่อไปนี้เกิดขึ้นในเวลาเดียวกันในระบบ การไม่เกิดร่วม (mutual exclusion) มีทรัพยากรอย่างน้อยหนึ่งหน่วยที่ถือไว้ในภาวะที่ไม่สามารถแบ่งปันได้ (nonsharable mode) มีเพียงกระบวนการเท่านั้นที่ใช้ทรัพยากรนั้นได้ ถือ-และ-รอ (hold-and-wait) มีกระบวนการกำลังครอบครองทรัพยากรอย่างน้อยหนึ่งหน่วย และกำลังรอคอยทรัพยากรอื่นเพิ่มเติม โดยที่ทรัพยากรนั้นกำลังถูกใช้อยู่โดยกระบวนการอื่นในขณะนั้น ไม่มีการบังคับ (no preemption) ทรัพยากรเหล่านั้นไม่สามารถถูกบังคับได้ จะถูกปลดปล่อยออกมาเองภายหลังจากกระบวนการใช้จนเสร็จสิ้น การรอเป็นวงกลม (circular wait) จะต้องมีเซ็ต {P0, P1, …, Pn} ของกระบวนการที่กำลังรอคอย กล่าวคือ P0 กำลังรอทรัพยากรที่ถูกถือไว้โดย P1 ในขณะที่ P1 ก็กำลังรอทรัพยากรที่ถือไว้โดย P2 ต่อเนื่องเช่นนี้ไปเรื่อยๆ จนถึง Pn-1 กำลังรอทรัพยากรที่ถูกถือไว้โดย Pn และ Pn ก็กำลังรอทรัพยากรที่ถูกถือไว้โดย P0

8 ตัวอย่างภาวะติดตายของการจราจรบริเวณสี่แยก

9 กราฟการจัดสรรทรัพยากร Resource-Allocation Graph
กราฟการจัดสรรทรัพยากรระบบ (system resource-allocation graph) กราฟนี้ประกอบด้วยเซ็ตของจุดยอด V และเซ็ตของเส้นเชื่อม E เส้นของจุดยอด V แบ่งออกเป็น 2 ประเภท P = {P1, P2, …, Pn} เป็นเซ็ตที่ประกอบด้วยกระบวนการทั้งหมดในระบบ R = {R1, R2, …, Rm} เป็นเซ็ตที่ประกอบด้วยทรัพยากรทั้งหมดในระบบ เส้นเชื่อมจากกระบวนการ Pi ไปยังทรัพยากร Rj แทนด้วย P1  Rj หมายความว่า กระบวนการ Pi ร้องขอทรัพยากรของ Rj และขณะนี้กำลังรอทรัพยากรนั้นอยู่ เส้นเชื่อมจากทรัพยากร Rj ไปยังกระบวนการ Pi แทนด้วย assignment edge – directed edge Rj  Pi หมายความว่า ทรัพยากร Rj ถูกจัดสรรให้แก่กระบวนการ Pi

10 Resource-Allocation Graph (Cont.)
กระบวนการ Process ทรัพยากรที่มี 4 หน่วย Pi ร้องขอ Rj Pi กำลังถือ Rj Pi Rj Pi Rj

11 ตย. กราฟการจัดสรรทรัพยากร

12 ตย. กราฟการจัดสรรทรัพยากรที่เกิดภาวะติดตาย

13 ตย. กราฟการจัดสรรทรัพยากรแต่ไม่เกิดภาวะติดตาย

14 ข้อสังเกต ถ้ากราฟการจัดสรรทรัพยากรไม่มีวงกลม แสดงว่าระบบไม่เกิดสถานะของภาวะติดตาย ถ้ากราฟการจัดสรรทรัพยากรมีวงกลม แสดงว่าระบบอาจเกิดสถานะของภาวะติดตายหรือไม่ก็ได้ โดยที่ ถ้ามี 1 หน่วยต่อ 1 ทรัพยากร แสดงว่าเกิดภาวะติดตาย ถ้ามีหลายหน่วยต่อทรัพยากร อาจเป็นไปได้ที่จะเกิดภาวะติดตาย

15 วิธีการควบคุมภาวะติดตาย Methods for Handling Deadlocks
วิธีที่ใช้ในการจัดการกับปัญหาภาวะติดตายมี 3 วิธี เราอาจใช้เกณฑ์วิธีเพื่อประกันว่า ระบบจะไม่มีโอกาสเข้าสู่สถานะของภาวะติดตาย (ป้องกัน-prevention) เรายินยอมให้มีการเกิดภาวะติดตายได้ และจากนั้นจะใช้การกู้คืน (กู้คืน-recovery) เราสามารถหลีกเลี่ยงปัญหาภาวะติดตาย และอ้างว่าภาวะติดตายไม่เกิดขึ้นในระบบ (หลีกเลี่ยง-avoidance) วิธีที่ 3 นิยมนำไปใช้ในระบบปฏิบัติการส่วนใหญ่ รวมทั้งยูนิกซ์ ส่วน JVM ไม่มีการจัดการกับภาวะติดตาย เพราะยกให้นักพัฒนาแอพพลิเคชันเขียนโปรแกรมเพื่อควบคุมภาวะติดตาย

16 การป้องกันภาวะติดตาย Deadlock Prevention
การป้องกันไม่ให้เงื่อนไขทั้ง 4 ประการเกิดขึ้น เงื่อนไข การไม่เกิดร่วม (Mutual Exclusion) ห้ามร้องขอทรัพยากรที่ใช้ร่วมกัน (sharable resources) โดยจะถือครองได้เฉพาะทรัพยากรประเภทไม่สามารถใช้ร่วมกัน (nonsharable resources) ได้เท่านั้น เงื่อนไข ถือและรอ (Hold and Wait) ต้องประกันว่า เมื่อไรก็ตามที่กระบวนการใดๆ ร้องขอทรัพยากร กระบวนการนั้นจะต้องไม่ถือทรัพยากรอื่นใดอยู่เลยในขณะนั้น วิธีการคือ แต่ละกระบวนการที่ร้องขอจะต้องได้รับทรัพยากรทั้งหมดก่อนที่จะเริ่มกระทำการ -หรือ- จะยินยอมให้เฉพาะกระบวนการที่ไม่ถือทรัพยากรใดๆ อยู่ในมือเท่านั้นที่มีสิทธิ์ร้องขอทรัพยากรใหม่ได้ ดังนั้น ก่อนที่จะเริ่มร้องขอทรัพยากรเพิ่ม กระบวนการนั้นจะต้องปลดปล่อยทรัพยากรที่กำลังถืออยู่ทั้งหมดออกไปเสียก่อน ข้อด้อย มีการใช้ประโยชน์ทรัพยากรต่ำ และมีความเป็นไปได้ที่อาจเกิดภาวะรอแบบไม่รู้จบ

17 Deadlock Prevention (Cont.)
เงื่อนไข ไม่มีการบังคับ (No Preemption) ถ้ากระบวนการที่กำลังถือทรัพยากรบางอย่างอยู่ร้องขอทรัพยากรอื่นเพิ่มเติม แต่ทรัพยากรนั้นยังไม่สามารถจัดสรรให้ได้ในขณะนั้น กระบวนการนั้นจะต้องถูกบังคับให้ปลดปล่อยทรัพยากรทั้งหมดที่กำลังถืออยู่ และทรัพยากรเหล่านี้จะถูกใส่เพิ่มเข้าไปในรายการของทรัพยากรที่กระบวนการกำลังรอ จากนั้น กระบวนการนั้นจะต้องเริ่มต้นร้องขอใหม่ทั้งหมด เช่นเดียวกับกระบวนการที่เพิ่งมาใหม่ เงื่อนไข การรอเป็นวงกลม (Circular Wait) ต้องทำการจัดอันดับทรัพยากรทุกประเภท การร้องขอจากกระบวนการใดๆ จะต้องถูกนำไปจัดอันดับด้วย

18 การหลีกเลี่ยงภาวะติดตาย Deadlock Avoidance
ระบบจะต้องเพิ่มเติมข้อมูลเกี่ยวกับ ลำดับความสำคัญ (priori) วิธีที่ง่ายที่สุดและใช้ประโยชน์ได้มากก็คือ แต่ละกระบวนการจะต้องประกาศจำนวนทรัพยากรสูงสุดแต่ละประเภทที่จำเป็นต้องใช้ไว้ล่วงหน้า, จัดลำดับความสำคัญก่อนหลังของทรัพยากรแต่ละประเภทที่จำเป็นต้องใช้ หรืออาจต้องการใช้ในแต่ละกระบวนการ ขั้นตอนวิธีแบบหลีกเลี่ยงภาวะติดตายนั้น จะทำการตรวจสอบสถานะการจัดสรรทรัพยากรอยู่ตลอดเวลาเพื่อประกันว่าการจัดสรรนั้นจะไม่นำไปสู่เงื่อนไขการรอแบบวงกลม สถานะการจัดสรรทรัพยากร ระบุเกี่ยวกับจำนวนทรัพยากรที่ว่างอยู่ และที่กำลังถูกจัดสรร และความต้องการสูงสุดของกระบวนการทั้งหมด

19 สถานะปลอดภัย Safe State
เพื่อประกันว่าการจัดสรรนั้นจะไม่นำไปสู่เงื่อนไขการรอแบบวงกลม เมื่อกระบวนการร้องขอทรัพยากรที่ว่างอยู่ ระบบจะตัดสินว่าจะจัดสรรให้หรือไม่โดยพิจารณาว่าระบบจะอยู่ในสถานะปลอดภัย หรือไม่ วิธีการที่นำเสนอในที่นี้จะใช้กราฟการจัดสรรทรัพยากรเข้ามาช่วย ด้วยการตรวจสอบว่ากราฟนั้นเป็นวงกลมหรือไม่ และใช้ในการตัดสินใจว่าจะจัดสรรทรัพยากรอย่างไรจึงจะไม่เกิดภาวะติดตายขึ้นในระบบ สมมุติว่า กระบวนการ Pi ร้องขอทรัพยากร Rj การร้องขอดังกล่าวจะได้รับอนุญาตได้ก็ต่อเมื่อ ถ้ามีการแปลงการร้องขอจากเส้นโยง Pi  Rj ไปยังเส้นโยงมอบหมาย Pi  Rj แล้วไม่ก่อให้เกิดผลลัพธ์เป็นวงกลมของกราฟการจัดสรรทรัพยากร การตรวจสอบสถานะปลอดภัย (safe state) หรือไม่ปลอดภัย (unsafe state) สามารถทำโดยได้โดยอาศัยขั้นตอนวิธีการตรวจหาวงกลม ซึ่งขั้นตอนวิธีการตรวจหาวงกลมนี้ต้องใช้เวลาปฏิบัติการในอันดับ n2 โดยที่ n คือจำนวนกระบวนการทั้งหมดในระบบ

20 เงื่อนไขพื้นฐาน ถ้าไม่เกิดวงกลมก็แสดงว่าการจัดสรรทรัพยากรดังกล่าวก็ถือว่าระบบอยู่ในสถานะปลอดภัย (safe state -ไม่เกิดภาวะติดตาย) ถ้าพบว่า เกิดวงกลม ก็ถือว่าอยู่ในสถานะไม่ปลอดภัย (unsafe state) ขั้นตอนวิธีแบบหลีกเลี่ยง ต้องประกันว่าระบบจะต้องไม่เข้าสู่อาณาบริเวณของสถานะไม่ปลอดภัยในขณะใดขณะหนึ่ง

21 Safe, Unsafe , Deadlock State

22 Resource-Allocation Graph Algorithm
การเพิ่มเส้นโยงเรียกร้อง (claim edge) เข้าไปจากเดิมที่มีเพียงเส้นโยงร้องขอกับเส้นโยงมอบหมาย โดยที่ เส้นโยงเรียกร้องของ Pi  Rj แสดงว่า กระบวนการ Pi เรียกร้องเพื่อจะขอใช้ทรัพยากร Rj ในอนาคตอันใกล้นี้ เส้นโยงเรียกร้องจะแสดงเป็นเส้นประ เส้นโยงเรียกร้องจะแปลงไปเป็นเส้นโยงร้องขอ (request edge) เมื่อมีการร้องขอทรัพยากร เส้นโยงมอบหมาย (assignment edge) เมื่อทรัพยากรถูกปลดปล่อยโดยกระบวนการหนึ่ง เส้นโยงมอบหมายจึงจะถูกแปลงไปเป็นเส้นโยงเรียกร้อง ในระบบนี้ ทรัพยากรทั้งหมดจะถูกเรียกร้องตามลำดับความสำคัญ จะช่วยให้สามารถพยากรณ์สถานะของภาวะติดตายที่อาจเกิดขึ้นในระบบได้อย่างแม่นยำด้วยการตรวจสอบว่ากราฟนั้นเป็นวงกลมหรือไม่ และใช้ในการตัดสินใจว่าจะจัดสรรทรัพยากรอย่างไรจึงจะไม่เกิดภาวะติดตายขึ้นในระบบ

23 กราฟการจัดสรรทรัพยากรสำหรับการหลีกเลี่ยงภาวะติดตาย

24 สถานะไม่ปลอดภัยในกราฟการจัดสรรทรัพยากร

25 การตรวจหาภาวะติดตาย Deadlock Detection
ยินยอมให้ระบบเข้าสู่สถานะของภาวะติดตายได้ (deadlock state) ขั้นตอนวิธีที่ใช้ตรวจสอบสถานะของระบบว่าเกิดภาวะติดตายหรือไม่ (Detection algorithm) ขั้นตอนวิธีที่ใช้กู้คืนจากภาวะติดตาย (Recovery scheme)

26 ทรัพยากรในระบบที่มีเพียงหน่วยเดียว
สามารถใช้ขั้นตอนวิธีการตรวจหาภาวะติดตายด้วยการใช้กราฟการจัดสรรทรัพยากรที่เรียกว่า กราฟการรอ (wait-for graph) ในการตรวจหาภาวะติดตายนี้ ระบบจำเป็นต้องบำรุงรักษากราฟการรอ และเรียกใช้ขั้นตอนวิธีดังกล่าวเป็นระยะๆ เพื่อค้นหาวงกลมในกราฟ ขั้นตอนวิธีดังกล่าวต้องใช้เวลาปฏิบัติการในอันดับ O(n2) โดยที่ n คือจำนวนของยอดในกราฟ

27 Resource-Allocation Graph and Wait-for Graph
(a) กราฟการจัดสรรทรัพยากร (b) ความสอดคล้องกันของกราฟการรอ

28 ทรัพยากรในระบบที่มีหลายประเภท
ความพอเพียง Available: เป็นเว็กเตอร์ของขนาด m แสดงจำนวนของทรัพยากรแต่ละประเภทที่มีให้ใช้งาน การจัดสรร Allocation: เป็นแมทริกซ์ n x m ที่ระบุจำนวนทรัพยากรแต่ละประเภทในปัจจุบันที่ถูกจัดสรรให้แต่ละกระบวนการ การร้องขอ Request: เป็นแมทริกซ์ n x m ที่ แสดงการร้องขอในปัจจุบันของแต่ละกระบวนการ ถ้าการร้องขอ [ij] = k, แสดงว่า กระบวนการ Pi is กำลังร้องขอทรัพยากร k มากกว่าหนึ่งอย่างของทรัพยากร Rj

29 Detection Algorithm 1. Let Work and Finish be vectors of length m and n, respectively Initialize: (a) Work = Available (b) For i = 1,2, …, n, if Allocationi  0, then Finish[i] = false;otherwise, Finish[i] = true. 2. Find an index i such that both: (a) Finish[i] == false (b) Requesti  Work If no such i exists, go to step 4.

30 Detection Algorithm (Cont.)
3. Work = Work + Allocationi Finish[i] = true go to step 2. 4. If Finish[i] == false, for some i, 1  i  n, then the system is in deadlock state. Moreover, if Finish[i] == false, then Pi is deadlocked. ขั้นตอนวิธีดังกล่าวต้องใช้เวลาปฏิบัติการในอันดับ O(m x n2) ในการตรวจหาว่าระบบเกิดสถานะภาวะติดตายหรือไม่

31 Example of Detection Algorithm
Five processes P0 through P4; three resource types A (7 instances), B (2 instances), and C (6 instances). Snapshot at time T0: Allocation Request Available A B C A B C A B C P P P P P Sequence <P0, P2, P3, P1, P4> will result in Finish[i] = true for all i.

32 Example (Cont.) P2 requests an additional instance of type C. Request
A B C P P P P P State of system? Can reclaim resources held by process P0, but insufficient resources to fulfill other processes; requests. Deadlock exists, consisting of processes P1, P2, P3, and P4.

33 เงื่อนไขการเลือกอัลกอริธึมแบบการตรวจหา Detection-Algorithm Usage
ในการเลือกใช้ขั้นตอนวิธีการตรวจหา จะต้องพิจารณาปัจจัยต่อไปนี้ ภาวะติดตายจะเกิดขึ้นบ่อยแค่ไหน มีกระบวนการที่จะได้รับผลกระทบจากการเกิดภาวะติดตายเป็นจำนวนเท่าไร ถ้าภาวะติดตายเกิดขึ้นบ่อย ขั้นตอนวิธีการตรวจหาดังกล่าวก็ควรถูกเรียกใช้บ่อย ทรัพยากรทั้งหมดที่ถูกจัดสรรให้กับกระบวนการที่อยู่ในภาวะติดตายจะสูญเปล่าจนกว่าภาวะติดตายจะถูกกำจัด ยิ่งไปกว่านั้น กระบวนการที่อาจเข้าไปเกี่ยวข้องกับภาวะติดตายก็อาจเพิ่มจำนวนขึ้นเรื่อยๆ

34 การกู้คืนจากภาวะติดตาย: การเลิกกระบวนการ Recovery from Deadlock: Process Termination
ทำการเลิกกลางคันกระบวนการทั้งหมดที่เกิดภาวะติดตาย ทำการยกเลิกกลางคันทีละกระบวนการไปจนกระทั่งยุติภาวะติดตาย ปัจจัยที่สามารถใช้เป็นแนวทางในการพิจารณาได้ดังต่อไปนี้ ลำดับความสำคัญของกระบวนการนั้น กระบวนการนั้นจะใช้เวลาเท่าไรในการคำนวน และต้องใช้เวลาคำนวณอีกนานเท่าไรก่อนที่จะเสร็จภารกิจที่ได้รับมอบหมาย จำนวนและประเภทของทรัพยากรที่กระบวนการนั้นกำลังใช้อยู่ (ตัวอย่างเช่น ทรัพยากรที่กระบวนการนั้นใช้อยู่สามารถบังคับวางได้ง่ายหรือไม่) มีทรัพยากรอีกจำนวนเท่าไรที่กระบวนการนั้นจะต้องใช้อีกจนกว่างานจะเสร็จ มีกระบวนการที่จำเป็นต้องถูกยกเลิกจำนวนเท่าไร กระบวนการนั้นเป็นเชิงโต้ตอบหรือเชิงกลุ่ม

35 การกู้คืนจากภาวะติดตาย: การบังคับทรัพยากร Resource Preemption
ปัจจัยที่พึงพิจารณา การเลือกเหยื่อ (selection of a victim) ต้องมีค่าใช้จ่ายต่ำที่สุด การย้อนกลับ (rollback) – การกลับคืนไปสู่สถานะปลอดภัย, เริ่มต้นกระบวนการนั้นใหม่ การรอคอยอย่างไม่มีที่สิ้นสุด (Starvation) บางกระบวนการอาจถูกเลือกเป็นเหยื่อทุกครั้งที่เกิดภาวะติดตาย จึงควรคำนึงว่า นโยบายการเลือกเหยื่อใดๆ ก็ตามต้องมั่นใจว่ากระบวนการที่ถูกเลือกนั้นจะตกเป็นเหยื่อเพียงในช่วงสั้นๆ เท่านั้น

36 End of Deadlock วิเชษฐ์ พลายมาศ | ระบบปฏิบัติการ (OS: Operating Systems) | ภาวะติดตาย (Deadlock) | 36

37


ดาวน์โหลด ppt นงลักษณ์ พรมทอง วิเชษฐ์ พลายมาศ

งานนำเสนอที่คล้ายกัน


Ads by Google