Chapter 6 Deadlocks
Chapter 5 CPU Scheduling
Chapter 4 Process
Chapter 3 Operating Syste ...
Chapter 2 Computer System ...
Chapter 1 Introduction

1 |


All (6)
default (0)
CS.217 (6)



.name :
.url :
.message :
.security code :
สมัครสมาชิก | Login


All (0)
default (0)






Chapter 6 Deadlocks
2008-08-21 20:49:10

รูปแบบของปัญหา (System Model)

                กระบวนการหนึ่งๆ จะต้องร้องขอใช้ทรัพยากรก่อนที่จะได้ใช้ทรัพยากรก่อนได้ใช้ทรัพยากรนั้น และจะต้องคืนทรัพยากรนั้นกลับสู่ระบบเมื่อใช้เสร็จ กระบวนการอาจจะร้องขอทรัพยากรได้มากเท่าที่ต้องการเพื่อที่จะทำงานของตนให้เสร็จสมบูรณ์ แต่จำนวนทรัพยากรทีร้องขอจะต้องไม่มากกว่าจำนวนที่มีอยู่จริงในระบบ

                เมื่อกระบวนการต้องการใช้ทรัพยากรของระบบ จะต้องทำตามลำดับขั้นตอนต่างๆ ดังนี้

  1. การร้องขอ(Request)
  2. การใช้งาน(Use)
  3. การคืน(Release)

 

ลักษณะของวงจรอับ (Deadlock characterization)

            วงจรอับเป็นสถานการณ์ที่ไม่เป็นที่ต้องการจะให้เกิดขึ้นในระบบ เพราะว่าเมื่อเกิดวงจรอับแล้วจะพบว่า ไม่มีกระบวนการใดได้ทำงานจนเสร็จสมบูรณ์ และทรัพยากรของระบบต่างก็ถูกครอบครองจนหมด ซึ่งจะเป็นตัวกันไม่ให้งานอื่นได้ทำงาน

 

เงื่อนไขในการติดวงจรอับ (Necessary Conditions)

                วงจรอับจะเกิดขึ้นได้ก็ต่อเมื่อ

  1. ทรัพยากรเป็นแบบใช้ร่วมกันไม่ได้
  2. การถือครองแล้วรอคอย
  3. ห้ามแทรกกลางคัน
  4. วงจรรอคอย

 

กราฟการจัดสรรพทรัพยากร(Resource Allocation Graph)

                เมื่อกระบวนการ P₁ ร้องขอทรัพยากรประเภท R เราก็จะเขียนเส้นร้องขอลงในกราฟ การจัดสรรพทรัพยากร และเมื่อการร้องขอนั้นได้รับอนุมัติจากระบบ เส้นร้องขอก็จะถูกแปลง ไปเป็นเส้นถือครองแทน และหลังจากที่กระบวนการปล่อยทรัพยากรคืนสู่ระบบแล้ว เส้นถือครองก็จะถูกลบออกไปจากกราฟเช่นกัน

แสดงกราฟการจัดสรรทรัพยากร

 

                กราฟการจัดสรรพทรัพยากรในรูปข้างต้น แสดงสถานะของระบบได้ ดังนี้

เซต P = { P₁, P₂, P₃ }

เซต R = { R₁, R₂, R₃, R₄ }

เซต E = { P₁ àR₁, P₂ àR₃, R₁ àP₂, R₂ àP₂, R₂ àP₁, R₃ àP₃ }

 

การจัดการปัญหาวงจรอับ (Methods for Handing Deadlocks)

การจัดการปัญหาวงจรอับมีอยู่ 3 วิธีหลักๆคือ

  1. กำหนดกฎเกณฑ์บางอย่างในการใช้ทรัพยากร เพื่อให้แน่ใจว่าระบบไม่มีทางเกิดวงจรอับได้
  2. ไม่ต้องป้องกันใดๆเลย ปล่อยให้ระบบเกิดวงจรอับขึ้นก่อน แล้วค่อยตามแก้ไขทีหลัง
  3. มองข้ามปัญหาทั้งหมด ทำว่าวงจรอับไม่เคยเกิดขึ้นในระบบ

 

การป้องกันการเกิดวงจรอับ (Deadlock Prevention)
  • ห้ามใช้ทรัพยากรร่วมกัน ระบบจะไม่ให้ใช้ทรัพยากรร่วมกัน
  • การถือครองและรอคอย เมื่อ Process ใดร้องขอทรัพยากรในระบบ Process นั้นจะต้องไม่ถือครองทรัพยากรนั้น ทำได้ 2 วิธี

1.       ให้ Process ร้องขอทรัพยากรทั้งหมดก่อน

2.       ยินยอมใน Process ร้องขอทรัพยากรได้ก็ต่อเมื่อ Process นั้นไม่ได้ถือครอบครองตนเอง

 

การแก้ไขวงจรอับ (Recovery from Deadlock)

ระบบอาจจัดการได้ 2 วิธี คือ

  1. รายงานให้ผู้ควบคุมเครื่องทราบว่า ขณะนี้เกิดวงจรอับขึ้นในระบบแล้ว และให้ผู้ควบคุมจัดการแก้ไขวงจรอับเอง
  2. ระบบแก้ไขวงจรอับเองโดยอัตโนมัติ มี 2 วิธี คือ

·         ยกเลิกการบวนการที่ติดอยู่ในวงจรอับบางกระบวนการเพื่อที่จะตัดวงจรอับ

·         อนุญาตให้มีการแทรกกลางคันทรัพยากรบางส่วนที่ติดอยู่ในวงจรอับได้ เพื่อให้ระบบกลับคืนสู่สภาวะปกติ

 

การจัดการปัญหาวงจรอับโดยวิธีผสมผสาน (Combined Approach to Deadlock Handing)

ระบบที่ใช้วิธีผสมผสานนี้จะไม่เกิดวงจรอับ ดังนี้คือ

  1. วงจรอับไม่อาจจะเกิดข้ามกลุ่มของทรัพยากรได้ เพระเราใช้วิธีการจัดเรียงลำดับทรัพยากร
  2. ในแต่ละกลุ่มก็จะไม่เกิดวงจรอับ เพราะเราได้เลือกวิธีจัดการ 1 ใน 3 วิธี ที่กล่าวมาแล้วดังนั้นระบบโดยรวมจะไม่เกิดวงจรอับ

ป้าย : Deadlocks
Dictionary : Deadlocks



สวัสดีจ๊ะ แวะมาทักทาย ซำบายดีบ่.......
by : raveepass [2008-08-23 18:02:08]