ข้อ 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 ไม่มีโอกาสได้รับจัดสรรให้ใช้เครื่องพิมพ์ ซึ่งเป็นการรอคอยอย่างไม่มีที่สิ้นสุด

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

Advertisements

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: