Ο αλγόριθμος του τραπεζίτη στο OperaΣύστημα ting [Παράδειγμα]

⚡ Έξυπνη Σύνοψη

Ο Αλγόριθμος του Τραπεζίτη είναι μια μέθοδος αποφυγής αδιεξόδων που ελέγχει εάν η κατανομή πόρων διατηρεί το σύστημα σε ασφαλή κατάσταση. Πήρε το όνομά του από την τραπεζική διαχείριση και εγκρίνει ένα αίτημα μόνο εάν απομένουν αρκετοί πόροι για την ικανοποίηση κάθε διεργασίας.

  • 🏦 Σκοπός: Αποφεύγει το αδιέξοδο ελέγχοντας ότι η κατανομή πόρων αφήνει το σύστημα ασφαλές.
  • 🔢 Τέσσερις Πίνακες: Διαθέσιμο, Μέγιστο, Κατανομή και Ανάγκη track χρήση πόρων.
  • 🧮 Ασφαλής κατάσταση: Ένα αίτημα εγκρίνεται μόνο εάν όλες οι διεργασίες μπορούν ακόμα να ολοκληρωθούν.
  • 📋 Απαιτείται: Κάθε διεργασία πρέπει να δηλώνει εκ των προτέρων τις μέγιστες ανάγκες της σε πόρους.
  • Όφελος: Διασφαλίζει ότι οι πόροι ικανοποιούν τουλάχιστον έναν πελάτη ανά πάσα στιγμή.
  • ⚠️ Μειονέκτημα: Οι διεργασίες δεν μπορούν να αλλάξουν τη μέγιστη ανάγκη τους κατά την εκτέλεση.

Αλγόριθμος του Τραπεζίτη στο Operating System

Τι είναι ο Αλγόριθμος του Banker;

Τραπεζίτης Αλγόριθμος χρησιμοποιείται κυρίως στο τραπεζικό σύστημα για την αποφυγή αδιέξοδο. Σας βοηθά να προσδιορίσετε αν θα δοθεί δάνειο ή όχι.

Αυτός ο αλγόριθμος χρησιμοποιείται για τον έλεγχο της ασφαλούς προσομοίωσης της κατανομής για τον προσδιορισμό του μέγιστου διαθέσιμου ποσού για όλους τους πόρους. Ελέγχει επίσης για όλες τις πιθανές δραστηριότητες πριν αποφασίσει εάν η κατανομή πρέπει να συνεχιστεί ή όχι.

Για παράδειγμα, υπάρχει Χ αριθμός κατόχων λογαριασμών σε μια συγκεκριμένη τράπεζα και το συνολικό χρηματικό ποσό στους λογαριασμούς τους είναι G.

Όταν η τράπεζα επεξεργάζεται ένα δάνειο αυτοκινήτου, το σύστημα λογισμικού υποδιαιρείταιtracείναι το ποσό του δανείου που χορηγείται για την αγορά αυτοκινήτου από το σύνολο των χρημάτων (G + Προθεσμιακή κατάθεση + Μηνιαίο Εισόδημα + Χρυσός, κ.λπ.) που έχει η τράπεζα.

Χορηγεί το δάνειο αυτοκινήτου μόνο εάν τα υπόλοιπα χρήματα εξακολουθούν να υπερβαίνουν το G, επομένως όλοι οι κάτοχοι λογαριασμού μπορούν να κάνουν ανάληψη του G ανά πάσα στιγμή.

Σημειώσεις αλγορίθμου τραπεζίτη

Ακολουθεί μια σημαντική σημειογραφία που χρησιμοποιείται στον αλγόριθμο του Banker:

  • X: Υποδεικνύει τον συνολικό αριθμό διεργασιών στο σύστημα.
  • Y: Υποδεικνύει τον συνολικό αριθμό των πόρων που υπάρχουν στο σύστημα.

Διαθέσιμος

Το [1:Y] υποδεικνύει πόσες παρουσίες κάθε τύπου πόρου είναι διαθέσιμες.

Μέγ.

[1:X, 1:Y]: Εκφράζει τον μέγιστο αριθμό πόρων τύπου j που μπορεί να ζητήσει η διεργασία i.

Κατανομή

[1:X, 1:Y]: Υποδεικνύει τους πόρους τύπου j που έχουν εκχωρηθεί αυτήν τη στιγμή στη διεργασία i.

Ανάγκη

Εκφράζει πόσους ακόμη πόρους από κάθε τύπο διεργασίας χρειάζεται ακόμα για να ολοκληρώσει την εργασία της.

Παράδειγμα αλγόριθμου Banker

Ας υποθέσουμε ότι έχουμε τους ακόλουθους πόρους:

  • 5 μονάδες στυλό
  • 2 Εκτυπωτές
  • 4 Σαρωτές
  • 3 Σκληροί δίσκοι

Εδώ, δημιουργήσαμε ένα διάνυσμα που αντιπροσωπεύει τους συνολικούς πόρους: Διαθέσιμο = (5, 2, 4, 3).

Ας υποθέσουμε ότι υπάρχουν τέσσερις διαδικασίες. Οι διαθέσιμοι πόροι έχουν ήδη κατανεμηθεί σύμφωνα με τον παρακάτω πίνακα μήτρας.

Όνομα διαδικασία Δίσκοι στυλό Εκτυπωτής Scanner σκληρός δίσκος
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).

Δημιουργούμε επίσης ένα Matrix για να εμφανίσουμε τον αριθμό κάθε πόρου που απαιτείται για όλες τις διεργασίες. Αυτός ο πίνακας ονομάζεται Ανάγκη = (3, 0, 2, 2).

Όνομα διαδικασία Δίσκοι στυλό Εκτυπωτής Scanner σκληρός δίσκος
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

Ακολουθούν τα σημαντικά χαρακτηριστικά του αλγορίθμου του τραπεζίτη:

  • Διατηρεί πολλούς πόρους που ικανοποιούν τις απαιτήσεις τουλάχιστον ενός πελάτη.
  • Κάθε φορά που μια διεργασία αποκτά όλους τους πόρους της, πρέπει να τους επιστρέψει σε περιορισμένη περίοδο.
  • Όταν μια διεργασία ζητά έναν πόρο, μπορεί να χρειαστεί να περιμένει.
  • Το σύστημα έχει περιορισμένο αριθμό πόρων.
  • Προσφέρει μια προηγμένη λειτουργία για μέγιστη κατανομή πόρων.

Μειονέκτημα του αλγορίθμου του Banker

Ακολουθούν τα μειονεκτήματα/μειονεκτήματα της χρήσης του αλγορίθμου του τραπεζίτη:

  • Δεν επιτρέπει στη διεργασία να αλλάξει τη Μέγιστη Ανάγκη της κατά την επεξεργασία.
  • Επιτρέπει την έγκριση όλων των αιτημάτων σε περιορισμένο χρονικό διάστημα, αλλά ένα έτος είναι μια καθορισμένη περίοδος για αυτό.
  • Όλες οι διαδικασίες πρέπει να γνωρίζουν και να δηλώνουν εκ των προτέρων τις μέγιστες ανάγκες τους σε πόρους.

Συχνές Ερωτήσεις

Μια ασφαλής κατάσταση είναι αυτή όπου τουλάχιστον μία εντολή εκτέλεσης επιτρέπει σε κάθε διεργασία να αξιοποιήσει τους μέγιστους πόρους της και να ολοκληρώσει την εκτέλεση. Εάν δεν υπάρχει τέτοια εντολή, η κατάσταση δεν είναι ασφαλής και μπορεί να οδηγήσει σε αδιέξοδο.

Η πρόληψη αδιεξόδου εξαλείφει εκ των προτέρων μια συνθήκη που απαιτείται για το αδιέξοδο. Η αποφυγή αδιεξόδου, όπως και ο Αλγόριθμος του Τραπεζίτη, επιτρέπει αυτές τις συνθήκες αλλά ελέγχει κάθε αίτημα για να διατηρεί το σύστημα ασφαλές.

Ονομάστηκε έτσι από τον τρόπο με τον οποίο μια τράπεζα διαχειρίζεται τα δάνεια. Μια τράπεζα δανείζει χρήματα μόνο εάν μπορεί να ικανοποιήσει κάθε πελάτη. Ομοίως, ο αλγόριθμος χορηγεί πόρους μόνο εάν όλες οι διαδικασίες μπορούν να ολοκληρωθούν με ασφάλεια.

Η Τεχνητή Νοημοσύνη μπορεί να προβλέψει τη ζήτηση πόρων και να εντοπίσει επικίνδυνα μοτίβα κατανομής πριν αυτά προκαλέσουν αδιέξοδο. Μπορεί να προτείνει ποια αιτήματα πρέπει να καθυστερήσουν, συμπληρώνοντας τον Αλγόριθμο του Τραπεζίτη σε πολύπλοκα συστήματα όπου οι μέγιστες ανάγκες είναι δύσκολο να προβλεφθούν.

Όχι εντελώς. Ο Αλγόριθμος του Τραπεζίτη εγγυάται ένα ασφαλές αποτέλεσμα όταν είναι γνωστές οι μέγιστες ανάγκες. Η Τεχνητή Νοημοσύνη μπορεί να βελτιώσει την πρόβλεψη και την αποτελεσματικότητα, αλλά λειτουργεί καλύτερα παράλληλα με αυτήν, όχι ως πλήρης αντικατάσταση.

Συνοψίστε αυτήν την ανάρτηση με: