หยุดชะงักหมายถึงบางสิ่งบางอย่างที่เฉพาะเจาะจง: มีสอง (หรือมากกว่า) กระบวนการที่มีอยู่ในปัจจุบันบล็อกรอให้กันและกัน
ในสถานะที่ไม่ปลอดภัยคุณสามารถอยู่ในสถานการณ์ที่อาจมีการหยุดชะงักในอนาคต แต่ก็ยังไม่ได้เกิดขึ้นเพราะกระบวนการอย่างใดอย่างหนึ่งหรือทั้งสองกระบวนการยังไม่ได้เริ่มรอ
ลองพิจารณาตัวอย่างต่อไปนี้:
Process A Process B
lock X lock Y # state is "unsafe"
unlock Y
lock Y # state is back to "safe" (no deadlock this time. We got lucky.)
มีตัวอย่างที่น่าสนใจมากขึ้นในหัวข้อ 7.5.1 ของลิงก์ที่คุณให้ :
พิจารณาระบบที่มี 12 เทปไดร์ฟด้วย:
Process Max Need Current
P0: 10 5
P2: 9 3
นี่คือสถานะที่ไม่ปลอดภัย แต่เราไม่ได้อยู่ในการหยุดชะงัก มีเพียง 4 ไดรฟ์ฟรีดังนั้นสำหรับตัวอย่างเช่นถ้า P0 ไม่คำขอเพิ่มอีก 5 และ P2 ไม่ขอเพิ่มอีก 1 เราจะหยุดชะงัก แต่มันยังไม่เกิดขึ้น และ P0 อาจไม่ขอไดรฟ์อีกต่อไป แต่อาจเพิ่มไดรฟ์ที่มีอยู่แล้ว นี่Max need
เป็นเรื่องของการประหารชีวิตที่เป็นไปได้ทั้งหมดของโปรแกรมและนี่อาจไม่ใช่การประหารชีวิตครั้งหนึ่งที่เราต้องการไดรฟ์ทั้ง 10 ตัวใน P0