Page 66 - สถาปัตยกรรมคอมพิวเตอร์และระบบปฏิบัติการ
P. 66
11-56 สถาปัตยกรรมคอมพิวเตอร์และระบบป ฏิบัติการ
3) เงอื่ นไขไมม่ กี ารแ ทรกก ลางค นั ถา้ โพรเซส ก�ำ ล งั ใชง้ านท รพั ยากรอ ยู่ และร ะบบไมส่ ามารถบ งั คบั
ใหโ้ พรเซสนนั้ ป ลดป ลอ่ ยทรพั ยากรนนั้ ใหเ้ ปน็ อ สิ ระได้ โดยทรพั ยากรจะเปน็ อสิ ระไดก้ ต็ อ่ เมอื่ โพรเซสย กเลกิ การ
ถอื ค รองเท่านัน้
4) เงอื่ นไขว งจรร อค อย เกดิ เหตกุ ารณเ์ ปน็ ว งจรล กู โซข่ องโพรเซส 2 ตวั หรอื มากกวา่ ทตี่ า่ งร อค อย
ทรัพยากรทถี่ ือครองโดยโพรเซสท ่ีอยใู่ นวงจรลูกโซ่นน้ั
เรอื่ งท่ี 11.2.2
การป อ้ งกนั และก คู้ ืนก ารติดตาย
1. วิธกี ารจดั การการต ิดตาย
เมื่อเกิดเหตุการณก์ ารต ิดต ายเกิดข ึ้นในร ะบบ ระบบป ฏิบัตกิ ารส ่วนม าก เช่น UNIX และ Windows จะพ ัฒนา
โปรแกรมเพื่อจ ัดการก ารติดต ายที่เกิดข ึ้น โดยหนทางในการแ ก้ป ัญหาการต ิดตายม ี 3 วิธีการได้แก่
1.1 ก�ำ หนดก ฎเกณฑ์ (protocol) ในก ารใชท้ รัพยากร เพื่อป ้องกัน (prevent) หรือหลีกเลี่ยง (avoid) ไม่ให้
เกิดก ารต ิดต าย
1.2 อนุญาตให้ร ะบบเกิดการตดิ ตายได้ ต่อจากน ั้นทำ�การต รวจจับ (detect) และกู้คืน (recover)
1.3 เพกิ เฉย (ignore) ปญั หาทเ่ี กดิ ขึน้ ทัง้ หมด เหมือนก ับว่าการติดตายไม่เคยเกิดขึ้นในร ะบบ เช่น ทำ�การปิด
เครื่องค อมพิวเตอร์แ ละเปิดใหม่ (restart) เป็นต้น
2. การปอ้ งกนั ก ารต ิดตาย
การป้องกันการติดตาย (deadlock Prevention) เป็นวิธีการหนึ่งในการจัดการการติดตายของระบบ
ปฏิบัติการ จากสาเหตุสำ�คัญที่ทำ�ให้เกิดการติดตายประกอบด้วย 4 เงื่อนไข ได้แก่ เงื่อนไขที่ทรัพยากรไม่สามารถ
ถูกใช้ร่วมกับหลาย ๆ โพรเซสพร้อมกันได้ เงื่อนไขการครอบครองและรอของโพรเซส เงื่อนไขระบบไม่มีการแทรก-
กลางค ัน และเงื่อนไขก ารเกิดว งจรรอคอย
การป ้องกันไม่ให้เกิดการต ิดตายเป็นการป้องกันไม่ให้ระบบเกิดเงื่อนไขใดเงื่อนไขหนึ่งอ ย่างน ้อย 1 ข้อโดย
2.1 ปฏิเสธการไ ม่เกดิ ร ว่ ม (denying the mutual exclusion condition) ระบบป ฏิบัติก ารจ ะทำ�การพ ิจารณา
ทรัพยากรที่สามารถใช้ร่วมกันได้ และใช้ร่วมกันไม่ได้ของระบบ เช่น การอ่านแฟ้มข้อมูลเดียวกันของหลายโพรเซส
ระบบสามารถอนุญาตให้สามารถใช้แฟ้มข้อมูลร่วมกันได้ แต่ถ้าเป็นเครื่องพิมพ์ ระบบต้องปฏิเสธการไม่เกิดร่วม
เนื่องจากเป็นท รัพยากรที่ไม่ส ามารถใช้ร่วมก ันได้พร้อม ๆ กัน
สำ�หรับทรัพยากรที่ไม่สามารถใช้ร่วมกันได้นั้น ระบบปฏิบัติการแก้ไขโดยนำ�การร้องขอใช้ทรัพยากรที่ไม่
สามารถใช้ร ่วมก ันได้ข องโพรเซสต่าง ๆ เก็บในท ี่พัก (spool) เช่น ดิสก์ ดังต ัวอย่างท ี่ 1
ตวั อยา่ งที่ 1 ระบบคอมพิวเตอร์เครื่องหนึ่งม ี 3 โพรเซสที่ม ีก ารร ้องขอใช้เครื่องพิมพ์พร้อมก ัน ดังน ั้นค ำ�ร้อง
ขอใช้เครื่องพิมพ์ของทั้งสามโพรเซสจะถูกส่งไปยังระบบ เมื่อระบบอนุญาตให้โพรเซส A ได้รับจัดสรรเครื่องพิมพ์
ดงั น ัน้ ค�ำ รอ้ งข อใชเ้ ครือ่ งพมิ พข์ องโพรเซส B และโพรเซส C จะถ กู ส ง่ เขา้ ท เี่ กบ็ พ กั บ นด สิ ก์ เมือ่ โพรเซส A ใชเ้ ครือ่ งพมิ พ์