SlideShare a Scribd company logo
1 of 12
บทที่ 5
การติดตาย
รูปแบบโครงสร้างการทางาน
1. Request ถ้าในกรณีที่การร้องขอไม่สามารถได้รับการ
ตอบสนองทันที อาจเนื่องจากทรัพยากรขณะนั้นกาลังถูกโปรเซส
อื่นใช้งาน แล้วโปรเซสที่ทาการร้องขอเข้ามาต้องรอจนกว่าจะเข้า
ใช้ทรัพยากรนั้นได้
2. Use: โปรเซสสามารถทางานบนทรัพยากร ( เช่น การพิมพ์
งานผ่านทางเครื่องพิมพ์)
3. Release: โปรเซสออกจากการใช้ทรัพยากร
ลักษณะของการติดตาย
การติดตายสามารถเกิดขึ้นได้หากเกิดสถานการณ์ ดังต่อไปนี้
1. Mutual Exclusion ต้องมีทรัพยากรอย่างน้อย 1 ตัวที่ไม่ได้
อนุญาตให้ร่วมใช้งาน ดังนั้นมีเพียงโปรเซสเดียวที่สามารถเข้าใช้
งาน ถ้ามีโปรเซสอื่นมีการร้องขอเข้าใช้งาน การร้องขอต้องถูกรอ
จนกว่าทรัพยากรนั้นจะว่างให้ใช้งาน
2. Hold & Wait ต้องมีโปรเซสมีการใช้งานทรัพยากรอย่างน้อย
1 ตัว และกาลังรอเพื่อเข้าทางานทรัพยากรอีกตัวที่กาลังถูกโปรเซส
อื่นใช้งาน
3. No Preemption ทรัพยากรสามารถถูกปล่อยได้ตามความพึง
พอใจของโปรเซสที่กาลังใช้งานซึ่งก็คือหลังจากที่งานของโปรเซส
นั้นเสร็จสิ้น เนื่องจากขึ้นอยู่กับความพอใจของโปรเซสว่าจะยอม
ปล่อยทรัพยากรออกให้ใช้งานได้เมื่อไหร่
4. Circular Wait มีเซตของ { PO, P1, …, Pn } ของโปรเซสที่
กาลังรอ เช่น P0 กาลังรอทรัพยากรที่ถูกใช้โดย P1 ขณะเดียวกัน P1
ก็รอเข้าใช้ทรัพยากรที่กาลังถูกโปรเซส P2 ใช้งานท้ายสุดโปรเซส
ตัวสุดท้ายกาลังรอเข้าใช้ทรัพยากรที่โปรเซสแรกกาลังใช้งาน
วิธีการจัดการกับปัญหาการติดตาย
เพื่อป้องกันหรือควบคุมการเกิดการติดตายสามารถทาได้3 วิธี คือ
1. แน่ใจว่าระบบจะไม่เกิดการติดตายโดยการใช้Protocol
2. ยอมให้ระบบเข้าสู่การติดตายได้ชั่วคราวแล้วสามารถออกมา
ได้
3.เมินเฉยทุกอย่าง แล้วอ้างว่าไม่เคยเกิดการติดตายในระบบ วิธี
นี้อยู่ในระบบ Unix
การป้ องกันการติดตาย ( Deadlock Prevention )
สาเหตุที่ทาให้เกิดการติดตายมาจากข้อ 4
- Mutual Exclusion เงื่อนไขของการเกิด Mutual คือการใช้
ทรัพยากรหนึ่ง ๆ จะอนุญาตให้ใช้ได้ทีละงาน เช่น เครื่องพิมพ์
- Hold / Wait รับรองได้ว่าเมื่อมีการร้องขอใช้ทรัพยากรทางาน
โปรเซสนั้นต้องไม่ได้กาลังใช้งานทรัพยากรอื่นอยู่ ซึ่งสามารถทา
ได้หลายวิธีการ เช่น
- No preemption ถ้าโปรเซสมีการใช้งานทรัพยากรอื่นอยู่
ดังนั้นก็จะไม่สามารถเข้าทางานในทรัพยากรที่ขอใช้ไปได้ทันที
ขณะนั้น แล้วทุก ๆ โปรเซสที่กาลังถูกใช้ในขณะนั้นจะถูก
ปลดปล่อยให้ว่าง โปรเซสที่ถูกบังคับให้ออกจากการใช้บริการจะ
ถูกเพิ่มเข้าไปในรายการของทรัพยากรที่มีโปรเซสรอใช้งาน
- Circular Wait ก่อนที่จะเริ่มใช้วิธีการนี้ทาการกาหนดลาดับ
ของชนิดทรัพยากรทั้งหมดและเมื่อร้องขอว่าในแต่ละโปรเซสที่ขอ
ใช้ทรัพยากรเป็นการเพิ่มจานวนลาดับของชนิดทรัพยากรที่ได้ระบุ
ไว้กาหนดให้ R เป็นเซตของชนิดทรัพยากร R1, R2 .. , Rn เรา
กาหนดในแต่ละชนิดทรัพยากรเป็นเลขจานวนเต็มเพื่อให้สามารถ
ทาการเปรียบเทียบได้เช่น ถ้าเซต ทรัพยากรกลุ่ม R คือมีเทป ดิสก์
การหลีกเลี่ยงการติดตาย ( Deadlock Avoidance )
จากข้อที่ผ่านมาเป็นการป้องกันการเกิดการติดตายโดยการจัดการ
กับสัญญาณที่ร้องขอใช้ทรัพยากร
แต่อาจส่งผลให้การใช้งานระบบ หรือประสิทธิภาพในการทางานลดลง
ดังนั้นจึงมีวิธีที่หลีกเลี่ยงการติดตายโดยพิจารณาจากข้อมูลทรัพยากรที่
ถูกร้องขอ เช่น ในระบบมีเทป และเครื่องพิมพ์อย่างละเครื่อง
การตรวจจับการติดตาย
ระบบต้องมีการจัดการ ดังนี้
- อัลกอริทึมที่ตรวจสอบภาวะของระบบว่าจะเกิดการติดตายหรือไม่
(การตรวจจับ)
- อัลกอริทึมที่จะกู้ระบบจากการติดตาย
การกู้คืนจากการเกิดการติดตาย
การกู้คืนด้วยการออกจากระบบ
กาจัดการติดตายด้วยการให้โปรเซสออกจากระบบ ซึ่งมี 2 วิธี
- ให้โปรเซสติดตายออกจากระบบทั้งหมด : วิธีนี้ชัดเจนในการ
กาจัดการติดตายแต่ผลเสียมีมากเนื่องจากโปรเซสอาจทางานมาเป็น
เวลานานดังนั้นผลลัพธ์ที่ได้ในแต่ละงานของโปรเซสจะหาย
ทั้งหมด ต้องเสียเวลาในการทางานใหม่ทั้งหมด
- ออกทีละโปรเซสจนกว่าการติดตายจะหายไป : เนื่องจากต้อง
มีการคิดถึงสิ่งที่สูญเสียไปเมื่อออกจากระบบทั้งหมด
การใช้วิธีการกู้คืนการติดตายต้องคานึง
1.ความสาคัญของโปรเซส
2.โปรเซสนั้นใช้เวลาในการประมวลผลมานานเท่าใด อีกนาน
เท่าไหร่จึงจะเสร็จ
3.ทรัพยากรที่โปรเซสนั้นใช้งาน
4.จานวนโปรเซสที่ต้องถูกออกจากระบบ
5.โปรเซสนั้นเป็นแบบ Interactive หรือ Batch
วิธีการครอบครองทรัพยากร
การแก้ปัญหาการติดตายด้วยการยึดคืนทรัพยากร จากโปรเซสอื่น
เพื่อให้อีกโปรเซสทางานได้แล้วส่งผลให้ระบบไม่เกิดการติดตาย
ดังนั้นจึงต้องพิจารณาเน้นที่จุดต่างๆดังนี้
1. การเลือกทรัพยากรที่ยึดคืน จะต้องเลือกให้เกิดความเสียหาย
น้อยที่สุด หมายถึง เลือกทรัพยากรที่จะยึดคืนให้น้อยที่สุด หรือ
คานึงถึงเวลาที่จะสามารถแก้ปัญหาได้
2. การย้อนกลับ ต้องพิจารณาด้วยว่ากลับเริ่มทางานใหม่ของ
โปรเซส ดั้งนั้นต้องมีการเก็บสถานะของโปรเซสที่กาลังทางานไว้
ก่อนเริ่มงานใหม่
3. การอดตาย ต้องให้มั่นใจว่าเมื่อยึดไปแล้วจะไม่เกิดการอด
ตายเนื่องจากโปรเซสจะไม่มีโอกาสใช้ทรัพยากรได้อีก

More Related Content

More from maysasithon (6)

บทที่ 6
บทที่ 6บทที่ 6
บทที่ 6
 
บทที่ 6
บทที่ 6บทที่ 6
บทที่ 6
 
บทที่ 4
บทที่ 4บทที่ 4
บทที่ 4
 
บทที่ 3
บทที่ 3บทที่ 3
บทที่ 3
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 

บทที่ 5