Page 77 - สถาปัตยกรรมคอมพิวเตอร์และระบบปฏิบัติการ
P. 77

การจ​ ัดเ​วลาซ​ ีพียูแ​ ละก​ ารต​ ิดต​ าย 11-67

       ถ้า​ระบบ​ไม่​ปฏิเสธ​การ​ร้องขอ​จะ​เกิด​วงจร​รอ​คอย​เกิด​ขึ้น​ทันที เพราะ​ไม่มี​ทรัพยากร C ที่​ว่าง​ให้​โพร​เซส​
ใด ๆ ครอบ​ครองเ​พื่อท​ ำ�งานไ​ด้ โพร​เซสท​ ี่​รอข​ อใ​ช้ท​ รัพยากร C ได้แก่ โพรเซส P1, P2, P4 สำ�หรับโพรเซส P3 ต้องการ​
ทรัพยากร C อีก 1 ตัวเ​พื่อส​ ามารถ​ทำ�งาน​ให้​เสร็จ​สมบูรณ์​ได้ ดัง​นั้น​ระบบ​ต้อง​มี​ความ​สามารถ​ในก​ ารส​ ืบค้นแ​ ละ​ปฏิเสธ​
เหตุการณ์​ที่โ​พรเ​ซส​ใด ๆ ร้องขอก​ ารใ​ช้ท​ รัพยากร​เพิ่มเ​ติมแ​ ล้ว​ส่ง​ผล​ให้ร​ ะบบเ​กิด​วงจรร​ อ​คอย เพื่อ​ไม่​ให้​ระบบเ​กิดก​ าร​
ติด​ตายเ​กิดข​ ึ้น

5. 	การ​กคู้​ นื ก​ ารต​ ิดต​ าย

       การ​กู้​คืน​การ​ติด​ตาย (recovery from deadlock) เกิด​ขึ้น​เมื่อ​ตรวจ​พบ​วงจร​รอ​คอย​เกิด​ขึ้น​ใน​ระบบ ผู้​คุม​
เครื่อง​คอมพิวเตอร์​ต้อง​จัดการ​การ​หยุด​ชะงัก​ของ​ระบบ​ด้วย​ตนเอง หรือ​อาจ​ให้​ระบบ​ปฏิบัติ​การ​ทำ�การ​คืน​สภาพ​ให้​
ระบบ​โดย​อัตโนมัติ โดย​ระบบ​สามารถ​แก้ไข​การ​ติด​ตาย​นี้​ได้ 2 วิธี​คือ การ​ยกเลิก​โพรเซส (process termination)
ระบบจ​ ะท​ ำ�การย​ กเลิกบ​ างโ​พรเ​ซส​ หร​ ือท​ ุกโ​พรเ​ซสท​ ีต่​ ิดอ​ ยูใ่​นว​ งจรร​ อค​ อย หรือก​ ารแ​ ทรกก​ ลางค​ ันท​ รัพยากร (resource
preemtion) ระบบจ​ ะท​ ำ�การต​ ัดตอนก​ ารใ​ช้ท​ รัพยากรข​ องโ​พรเซส โดยต​ ัดตอนก​ ารใ​ช้ท​ รัพยากรบ​ างส​ ่วนข​ องโ​พรเ​ซสท​ ี​่
ติดอ​ ยู่​ในว​ งจรร​ อค​ อย ดังม​ ีร​ ายล​ ะเอียดต​ ่อ​ไปน​ ี้

       5.1		การ​ยกเลิก​โพรเซส (process termination) เป็น​วิธี​การ​หนึ่ง​ใน​การ​แก้ไข​วงจร​รอ​คอย​ที่​เกิด​ขึ้น​ใน​ระบบ
สามารถก​ ระทำ�​ได้ 2 วิธี​คือ

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

       สำ�หรับว​ ธิ ท​ี ส​ี่ องน​ ัน้ ระบบจ​ ะท​ ำ�การย​ กเลิกบ​ างโ​พรเ​ซสท​ ีท่​ ำ�ใหเ​้ กดิ ว​ งจรร​ อค​ อยโ​ดยค​ ัดเ​ลอื กโ​พรเ​ซสเ​พือ่ ท​ �ำ การ​
ยกเลิก​ที​ละ​โพร​เซส​จน​กระทั่ง​ระบบ​กลับ​สู่​สภาวะ​ปกติ วิธี​การ​นี้​มี​ค่า​ใช้​จ่าย​สูง​เช่น​เดียวกัน​กับ​วิธี​แรก เพราะ​ใน​ขณะ​ที่​
ระบบ​ยก​เลิกโ​พรเ​ซส​ ห​นึ่ง ๆ ระบบ​ต้องส​ ืบค้นก​ าร​ติดต​ าย (deadlock detection) ของร​ ะบบ​อีกค​ รั้ง​เพื่อต​ รวจส​ อบว​ ่า​
เมื่อ​ยกเ​ลิก​โพรเ​ซ​ส​แล้วร​ ะบบ​เกิด​วงจร​รอ​คอยห​ รือไ​ม่ ถ้า​ยังเ​กิดว​ งจรร​ อค​ อย​อยู่ ระบบจ​ ะท​ ำ�การ​คัด​เลือก​โพรเ​ซส​ใหม่​
เพื่อย​ กเลิก และส​ ืบค้นว​ งจรร​ อค​ อยใ​นร​ ะบบห​ มุนเวียนก​ ันไ​ป โดยก​ ารย​ กเ​ลิกโ​พรเ​ซสจ​ ะก​ ระทำ�อ​ ย่างต​ ่อเ​นื่องจ​ นก​ ระทั่ง​
ไม่​เกิด​วงจร​รอ​คอย​เกิด​ขึ้น​ใน​ระบบ ซึ่ง​การ​ตัดสิน​ใจ​คัด​เลือก​โพร​เซส​ที่​ต้องการ​ยกเลิก​นี้​ระบบ​คัด​เลือก​จาก​โพร​เซส​ที่​
ทำ�ให้​ระบบเ​กิดค​ ่า​ใช้จ​ ่าย​ตํ่าท​ ี่สุด แต่อ​ าจพ​ ิจารณาค​ ัดเ​ลือกจ​ ากป​ ัจจัยอ​ ื่น ๆ ที่ม​ ีผ​ ลต​ ่อ​โพร​เซส ไ​ด้แก่

            a)		พิจารณาจ​ ากค​ วามส​ ำ�คัญข​ องโ​พรเซส (priority) โดยโ​พรเ​ซสท​ ี่ม​ ีค​ วามส​ ำ�คัญน​ ้อยก​ ว่าจ​ ะถ​ ูกย​ กเลิก​
ก่อน​โพร​เซส​ที่ม​ ี​ความส​ ำ�คัญ​มากกว่า

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

            c)		พิจารณา​จาก​ความ​ต้องการ​ใน​การ​ใช้​ทรัพยากร​ชนิด​ต่าง ๆ ทั้งหมด​ของ​โพรเซส และ​จำ�นวน​ที่​
ต้องการ

            d)		พิจารณา​จาก​ความ​ต้องการ​ทรัพยากร​เพิ่ม​เติม​เพื่อ​ให้​โพร​เซ​ส​สามารถ​ทำ�งาน​จน​เสร็จ​สมบูรณ์​ได้
ระบบ​จะ​เลือก​ยก​เลิก​โพร​เซส​ที่​ร้องขอ​ทรัพยากร​และ​อยู่​ใน​สถานะ​รอ​ทรัพยากร​จำ�นวน​มาก เนื่อง​จาก​โพร​เซส​เหล่า​นี้​มี​
   72   73   74   75   76   77   78   79   80   81   82