อัลกอริทึมของนายธนาคารใน Operaระบบ Ting [ตัวอย่าง]
อัลกอริทึมของ Banker คืออะไร?
อัลกอริทึมของนายธนาคาร ใช้เป็นหลักในระบบธนาคารเพื่อหลีกเลี่ยงภาวะชะงักงัน ช่วยให้คุณระบุได้ว่าจะให้สินเชื่อหรือไม่
อัลกอริทึมนี้ใช้เพื่อทดสอบการจำลองการจัดสรรอย่างปลอดภัยเพื่อกำหนดจำนวนเงินสูงสุดสำหรับทรัพยากรทั้งหมด นอกจากนี้ยังตรวจสอบกิจกรรมที่เป็นไปได้ทั้งหมดก่อนที่จะตัดสินใจว่าควรจัดสรรต่อไปหรือไม่
ตัวอย่างเช่น มีผู้ถือบัญชีของธนาคารหนึ่งจำนวน X และจำนวนเงินรวมในบัญชีของพวกเขาคือ G
เมื่อธนาคารดำเนินการสินเชื่อรถยนต์ ระบบซอฟต์แวร์จะหักจำนวนสินเชื่อที่ได้รับเพื่อซื้อรถยนต์จากเงินทั้งหมด (G+ เงินฝากประจำ + โครงการรายได้รายเดือน + ทองคำ ฯลฯ) ที่ธนาคารมีอยู่
อีกทั้งยังตรวจสอบว่าส่วนต่างนั้นมากกว่า G หรือไม่ โดยจะดำเนินการกู้ยืมรถยนต์เฉพาะเมื่อธนาคารมีเงินเพียงพอเท่านั้น แม้ว่าเจ้าของบัญชีทั้งหมดจะถอนเงิน G พร้อมกันก็ตาม
สัญลักษณ์อัลกอริทึมของนายธนาคาร
นี่คือสัญลักษณ์สำคัญที่ใช้ในอัลกอริทึมของ Banker:
- X: ระบุจำนวนกระบวนการทั้งหมดของระบบ
- Y: ระบุจำนวนทรัพยากรทั้งหมดที่มีอยู่ในระบบ
Available
[I: Y] ระบุทรัพยากรที่มีอยู่
แม็กซ์
[l:X,l: Y]: การแสดงออกของจำนวนทรัพยากรสูงสุดประเภท j หรือกระบวนการ i
การจัดสรร
[ล:X,ล:ย]. ระบุว่ากระบวนการใดที่คุณได้รับทรัพยากรประเภท j
จำเป็นต้อง
แสดงว่าสามารถจัดสรรทรัพยากรได้อีกจำนวนเท่าใดในอนาคต
ตัวอย่างอัลกอริทึมของ 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) ทรัพยากรได้รับการจัดสรรตามที่แสดงใน Pseudocode ที่กำหนดด้านล่าง
Available = Available – Request (y) Allocation(x) = Allocation(x) + Request(x) Need(x) = Need(x) - Request(x)
ขั้นตอนสุดท้ายนี้ถูกดำเนินการเนื่องจากระบบจำเป็นต้องถือว่าทรัพยากรได้รับการจัดสรรแล้ว เพื่อให้มีทรัพยากรเหลือน้อยลงหลังจากการจัดสรร
ลักษณะของอัลกอริทึมของนายธนาคาร
นี่คือลักษณะสำคัญของอัลกอริทึมของนายธนาคาร:
- เก็บทรัพยากรจำนวนมากที่ตรงตามความต้องการของลูกค้าอย่างน้อยหนึ่งราย
- เมื่อใดก็ตามที่กระบวนการได้รับทรัพยากรทั้งหมด กระบวนการนั้นจะต้องส่งคืนภายในระยะเวลาที่จำกัด
- เมื่อกระบวนการร้องขอทรัพยากร กระบวนการนั้นจะต้องรอ
- ระบบมีทรัพยากรจำนวนจำกัด
- คุณสมบัติขั้นสูงสำหรับการจัดสรรทรัพยากรสูงสุด
ข้อเสียของอัลกอริทึมของ Banker
นี่คือข้อเสีย/ข้อเสียของการใช้อัลกอริทึมของนายธนาคาร
- ไม่อนุญาตให้กระบวนการเปลี่ยนความต้องการสูงสุดในขณะประมวลผล
- อนุญาตให้คำขอทั้งหมดได้รับในเวลาที่จำกัด แต่หนึ่งปีเป็นช่วงเวลาที่กำหนดไว้สำหรับสิ่งนั้น
- กระบวนการทั้งหมดจะต้องทราบและระบุความต้องการทรัพยากรสูงสุดไว้ล่วงหน้า
สรุป
- อัลกอริธึมของ Banker ถูกใช้เป็นหลักในระบบธนาคารเพื่อหลีกเลี่ยง การหยุดชะงัก- ช่วยให้คุณระบุได้ว่าจะให้เงินกู้หรือไม่
- สัญลักษณ์ที่ใช้ในอัลกอริทึมของธนาคาร ได้แก่ 1) ที่มีอยู่ 2) สูงสุด 3) การจัดสรร 4) ความต้องการ
- อัลกอริทึมการร้องขอทรัพยากรช่วยให้คุณสามารถแสดงพฤติกรรมของระบบเมื่อกระบวนการเฉพาะส่งคำขอทรัพยากร
- อัลกอริธึมของ Banker เก็บทรัพยากรจำนวนมากที่ตอบสนองความต้องการของลูกค้าอย่างน้อยหนึ่งราย
- ข้อเสียเปรียบที่ใหญ่ที่สุดของอัลกอริธึมของนายธนาคารคือไม่อนุญาตให้กระบวนการเปลี่ยนความต้องการสูงสุดในขณะประมวลผล