ข้อ 11 หน้า 110 การติดตาย(Deadlocks)

  1. การติดตายคืออะไร
  2. สาเหตุสำคัญที่ทำให้เกิดการติดตายมีอะไรบ้าง
  3. อธิบาย และยกตัวอย่างประกอบ

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

สาเหตุของการติดตาย

การติดตายเกิดจากสาเหตุ 4 ประการ ดังนี้

  1. การบังคับไม่ให้โปรเซสเข้าใช้ทรัพยากร ทำให้โปรเซสอื่นๆ ไม่สามารถเข้าใช้ทรัพยากรในขณะที่ทรัพยากรนั้นถูกครอบครองโดยโปรเซสใดโปรเซสหนึ่งอยู่
  2. การครองทรัพยากรค้างไว้ในขณะที่ร้องขอใช้ทรัพยากรอีกอย่างหนึ่ง
  3. การที่ไม่สามารถปลดปล่อยทรัพยากรที่ครองอยู่ได้ เนื่องจากจะก่อให้เกิดความเสียหายต่องานที่กำลังทำอยู่
  4. การคอยคอยทรัพยากรซึ่งกันและกันในลักษณะงูกินหาง

การติดตาย (Deadlocks)

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

เมื่อโปรเซสต้องการใช้ทรัพยากรของระบบ โปรเซสต้องทำตามลำดับขั้นตอนต่างๆ ต่อไปนี้

  • การร้องขอ (Request)
  • การใช้งาน (Use)
  • การคืน (Release)

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

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

ตัวอย่างการติดตาย

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

ตัวอย่างของเหตุการณ์ที่เกิดการติดตาย เช่น การติดตายในการจราจร การติดตายในการใช้ทรัพยากร

Posted on กันยายน 19, 2012, in Uncategorized. Bookmark the permalink. ใส่ความเห็น.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: