อัลกอริทึมของนายธนาคารใน Operaระบบ Ting [ตัวอย่าง]
⚡ สรุปอย่างชาญฉลาด
อัลกอริทึมของธนาคาร (Banker's Algorithm) เป็นวิธีการหลีกเลี่ยงภาวะติดตาย (deadlock) ที่ทดสอบว่าการจัดสรรทรัพยากรจะทำให้ระบบอยู่ในสถานะที่ปลอดภัยหรือไม่ โดยตั้งชื่อตามระบบธนาคาร ซึ่งจะอนุมัติคำขอเฉพาะเมื่อมีทรัพยากรเหลือเพียงพอที่จะตอบสนองทุกกระบวนการเท่านั้น
อัลกอริทึมของ Banker คืออะไร?
อัลกอริทึมของนายธนาคาร ใช้เป็นหลักในระบบธนาคารเพื่อหลีกเลี่ยง การหยุดชะงัก- ช่วยให้คุณระบุได้ว่าจะให้เงินกู้หรือไม่
อัลกอริทึมนี้ใช้เพื่อทดสอบการจำลองการจัดสรรอย่างปลอดภัยเพื่อกำหนดจำนวนเงินสูงสุดสำหรับทรัพยากรทั้งหมด นอกจากนี้ยังตรวจสอบกิจกรรมที่เป็นไปได้ทั้งหมดก่อนที่จะตัดสินใจว่าควรจัดสรรต่อไปหรือไม่
ตัวอย่างเช่น ธนาคารแห่งหนึ่งมีผู้ถือบัญชีจำนวน X ราย และยอดเงินรวมในบัญชีของพวกเขาทั้งหมดคือ G
เมื่อธนาคารดำเนินการอนุมัติสินเชื่อรถยนต์ ระบบซอฟต์แวร์ย่อยจะทำงานtracts คือจำนวนเงินกู้ที่อนุมัติสำหรับการซื้อรถยนต์จากเงินทั้งหมดที่ธนาคารมีอยู่ (ทองคำ + เงินฝากประจำ + โครงการรายได้รายเดือน + ทองคำ ฯลฯ)
ระบบจะอนุมัติสินเชื่อรถยนต์ก็ต่อเมื่อยอดเงินคงเหลือยังคงมากกว่า G เท่านั้น ดังนั้นผู้ถือบัญชีทุกคนสามารถถอนเงิน G ได้ตลอดเวลา
สัญลักษณ์อัลกอริทึมของนายธนาคาร
ต่อไปนี้เป็นสัญลักษณ์สำคัญบางส่วนที่ใช้ในอัลกอริทึมของแบงเกอร์:
- X: แสดงจำนวนกระบวนการทั้งหมดในระบบ
- Y: ระบุจำนวนทรัพยากรทั้งหมดที่มีอยู่ในระบบ
Available
[1:Y] ระบุจำนวนอินสแตนซ์ของทรัพยากรแต่ละประเภทที่มีอยู่
แม็กซ์
[1:X, 1:Y]: แสดงถึงจำนวนทรัพยากรสูงสุดของประเภท j ที่กระบวนการ i สามารถร้องขอได้
การจัดสรร
[1:X, 1:Y]: ระบุทรัพยากรประเภท j ที่จัดสรรให้กับกระบวนการ i ในปัจจุบัน
จำเป็นต้อง
แสดงจำนวนทรัพยากรเพิ่มเติมของแต่ละประเภทที่กระบวนการ i ยังต้องการเพื่อให้งานเสร็จสมบูรณ์
ตัวอย่างอัลกอริทึมของ Banker
สมมติว่าเรามีทรัพยากรดังต่อไปนี้:
- 5 ไดรฟ์ปากกา
- เครื่องพิมพ์ 2 เครื่อง
- เครื่องสแกน 4 เครื่อง
- ฮาร์ดดิสก์ 3 ตัว
ที่นี่ เราได้สร้างเวกเตอร์ที่แสดงถึงทรัพยากรทั้งหมด: Available = (5, 2, 4, 3)
สมมติว่ามีสี่กระบวนการ ทรัพยากรที่มีอยู่ได้รับการจัดสรรแล้วตามตารางเมทริกซ์ด้านล่าง
| ชื่อกระบวนการ | ไดรฟ์ปากกา | เครื่องพิมพ์ | เครื่องสแกนเนอร์ | ฮาร์ดดิสก์ |
|---|---|---|---|---|
| P | 2 | 0 | 1 | 1 |
| Q | 0 | 1 | 0 | 0 |
| R | 1 | 0 | 1 | 1 |
| S | 1 | 1 | 0 | 1 |
| รวม | 4 | 2 | 2 | 3 |
ในที่นี้ ทรัพยากรที่จัดสรรคือผลรวมของคอลัมน์เหล่านี้:
จัดสรรแล้ว = (4, 2, 2, 3)
นอกจากนี้เรายังสร้างเมทริกซ์เพื่อแสดงจำนวนทรัพยากรแต่ละรายการที่จำเป็นสำหรับกระบวนการทั้งหมด เมทริกซ์นี้เรียกว่า จำเป็นต้อง = (3, 0, 2, 2)
| ชื่อกระบวนการ | ไดรฟ์ปากกา | เครื่องพิมพ์ | เครื่องสแกนเนอร์ | ฮาร์ดดิสก์ |
|---|---|---|---|---|
| P | 1 | 1 | 0 | 0 |
| Q | 0 | 1 | 1 | 2 |
| R | 2 | 1 | 0 | 0 |
| S | 0 | 0 | 1 | 0 |
เวกเตอร์ที่ใช้งานได้จะเป็น:
ว่าง = ว่าง – จัดสรรแล้ว
= (5, 2, 4, 3) – (4, 2, 2, 3)
= (1, 0, 2, 0)
อัลกอริทึมการร้องขอทรัพยากร
อัลกอริทึมการร้องขอทรัพยากรช่วยให้คุณสามารถแสดงพฤติกรรมของระบบเมื่อกระบวนการเฉพาะเจาะจงทำการร้องขอทรัพยากร
เรามาทำความเข้าใจเรื่องนี้โดยทำตามขั้นตอนต่อไปนี้:
ขั้นตอน 1) เมื่อจำนวนอินสแตนซ์รวมที่ร้องขอของทรัพยากรทั้งหมดน้อยกว่ากระบวนการ ให้ดำเนินการต่อในขั้นตอนที่ 2
ขั้นตอน 2) เมื่อจำนวนอินสแตนซ์ที่ร้องขอของทรัพยากรแต่ละประเภทมีน้อยกว่าทรัพยากรที่มีอยู่ของแต่ละประเภท กระบวนการจะถูกดำเนินการไปยังขั้นตอนถัดไป แต่หากมีทรัพยากรเพียงพอ กระบวนการจะต้องรอเนื่องจากทรัพยากรไม่เพียงพอ
ขั้นตอน 3) การจัดสรรทรัพยากรเป็นไปตามที่แสดงในรหัสเทียมด้านล่างนี้
Available = Available – Request (y) Allocation(x) = Allocation(x) + Request(x) Need(x) = Need(x) - Request(x)
ขั้นตอนสุดท้ายนี้ดำเนินการเนื่องจากระบบจำเป็นต้องสมมติว่าทรัพยากรได้ถูกจัดสรรไปแล้ว ดังนั้นจึงมีทรัพยากรเหลืออยู่น้อยลงหลังจากจัดสรรแล้ว
ลักษณะของอัลกอริทึมของนายธนาคาร
ต่อไปนี้คือลักษณะสำคัญของอัลกอริทึมของธนาคาร:
- เก็บรักษาทรัพยากรจำนวนมากที่ตอบสนองความต้องการของลูกค้าอย่างน้อยหนึ่งราย
- เมื่อใดก็ตามที่กระบวนการได้รับทรัพยากรทั้งหมด กระบวนการนั้นจะต้องส่งคืนภายในระยะเวลาที่จำกัด
- เมื่อกระบวนการใดร้องขอทรัพยากร กระบวนการนั้นอาจต้องรอสักครู่
- ระบบมีทรัพยากรจำกัด
- มีคุณสมบัติขั้นสูงที่ช่วยให้จัดสรรทรัพยากรได้อย่างมีประสิทธิภาพสูงสุด
ข้อเสียของอัลกอริทึมของ Banker
ต่อไปนี้คือข้อเสีย/ข้อจำกัดของการใช้อัลกอริทึมของธนาคาร:
- กระบวนการนี้ไม่อนุญาตให้เปลี่ยนแปลงความต้องการสูงสุดในระหว่างการประมวลผล
- ระบบนี้อนุญาตให้มีการอนุมัติคำขอทั้งหมดภายในระยะเวลาที่จำกัด แต่หนึ่งปีเป็นระยะเวลาที่กำหนดไว้ตายตัว
- กระบวนการทั้งหมดจะต้องทราบและระบุความต้องการทรัพยากรสูงสุดไว้ล่วงหน้า

