FCFS Scheduling Algorithm: What is, Παράδειγμα προγράμματος
⚡ Έξυπνη Σύνοψη
Ο προγραμματισμός "Όποιος έρχεται πρώτος εξυπηρετείται" εκτελεί τις διεργασίες με την ακριβή σειρά που φτάνουν στην ουρά ετοιμότητας, χρησιμοποιώντας μια απλή μη προληπτική προσέγγιση FIFO που τον καθιστά τον ευκολότερο αλγόριθμο προγραμματισμού CPU για την εφαρμογή ενός λειτουργικού συστήματος.
Τι είναι η μέθοδος First Come First Serve;
First Come First Serve (FCFS) είναι ένας αλγόριθμος προγραμματισμού λειτουργικού συστήματος που εκτελεί αυτόματα αιτήματα και διεργασίες σε ουρά με τη σειρά άφιξής τους. Είναι ο ευκολότερος και απλούστερος αλγόριθμος προγραμματισμού CPU. Σε αυτόν τον τύπο αλγορίθμου, η διεργασία που ζητά πρώτη την CPU λαμβάνει πρώτη την κατανομή CPU. Αυτό διαχειρίζεται με μια ουρά FIFO. Η πλήρης μορφή του FCFS είναι "Όποιος έρθει πρώτος εξυπηρετείται".
Καθώς μια διεργασία εισέρχεται στην ουρά ετοιμότητας, το PCB (Process Control Block) της συνδέεται με την ουρά της ουράς. Έτσι, όταν η CPU ελευθερωθεί, αντιστοιχίζεται στη διεργασία στην αρχή της ουράς.
Χαρακτηριστικά της μεθόδου FCFS
Τα κύρια χαρακτηριστικά της μεθόδου «Όποιος έρχεται πρώτος εξυπηρετείται πρώτος» παρατίθενται παρακάτω:
- Πρόκειται για μια μη προληπτικός αλγόριθμος χρονοπρογραμματισμού, έτσι ώστε μια διεργασία να διατηρεί την CPU μέχρι να ολοκληρώσει τον χρόνο έκρηξης.
- Οι εργασίες εκτελούνται πάντα με σειρά προτεραιότητας.
- Είναι εύκολο να εφαρμοστεί και να χρησιμοποιηθεί.
- Αυτή η μέθοδος είναι χαμηλής απόδοσης και ο γενικός χρόνος αναμονής είναι αρκετά υψηλός.
Παράδειγμα Προγραμματισμού FCFS
Ένα πραγματικό παράδειγμα της μεθόδου FCFS είναι η αγορά ενός εισιτηρίου κινηματογράφου στο ταμείο εισιτηρίων. Σε αυτόν τον αλγόριθμο προγραμματισμού, ένα άτομο εξυπηρετείται σύμφωνα με τη σειρά στην ουρά. Το άτομο που φτάνει πρώτο στην ουρά αγοράζει πρώτο το εισιτήριο και μετά το επόμενο. Αυτό συνεχίζεται μέχρι να αγοράσει το εισιτήριο και το τελευταίο άτομο στην ουρά. Χρησιμοποιώντας αυτόν τον αλγόριθμο, η διαδικασία της CPU λειτουργεί με παρόμοιο τρόπο.
Πώς λειτουργεί το FCFS; Υπολογισμός μέσου χρόνου αναμονής
Για να κατανοήσετε πώς ο αλγόριθμος προγραμματίζει τις διεργασίες, ακολουθεί ένα παράδειγμα πέντε διεργασιών που φτάνουν σε διαφορετικές χρονικές στιγμές. Κάθε διεργασία έχει διαφορετικό χρόνο burst.
| Διαδικασία | Ώρα έκρηξης | Ωρα άφιξης |
| P1 | 6 | 2 |
| P2 | 2 | 5 |
| P3 | 8 | 1 |
| P4 | 3 | 0 |
| P5 | 4 | 4 |
Χρησιμοποιώντας τον αλγόριθμο προγραμματισμού FCFS, αυτές οι διεργασίες αντιμετωπίζονται ως εξής.
Βήμα 1) Η διαδικασία ξεκινά με το P4, το οποίο έχει χρόνο άφιξης 0.
Βήμα 2) Την ώρα=1, φτάνει το P3. Το P4 εκτελείται ακόμα. Ως εκ τούτου, το P3 διατηρείται σε μια ουρά.
Βήμα 3) Τη χρονική στιγμή = 2, το P1 φτάνει και διατηρείται στην ουρά.
Βήμα 4) Τη χρονική στιγμή = 3, η διεργασία P4 ολοκληρώνει την εκτέλεσή της.
Βήμα 5) Στο time=4, το P3, το οποίο είναι πρώτο στην ουρά, ξεκινά την εκτέλεση.
Βήμα 6) Τη χρονική στιγμή = 5, το P2 φτάνει και διατηρείται σε μια ουρά.
Βήμα 7) Τη χρονική στιγμή = 11, το P3 ολοκληρώνει την εκτέλεσή του.
Βήμα 8) Τη χρονική στιγμή = 11, το P1 ξεκινά την εκτέλεση. Έχει χρόνο burst 6, επομένως ολοκληρώνει την εκτέλεση στο χρονικό διάστημα 17.
Βήμα 9) Τη χρονική στιγμή = 17, το P5 ξεκινά την εκτέλεση. Έχει χρόνο burst 4, επομένως ολοκληρώνει την εκτέλεση τη χρονική στιγμή = 21.
Βήμα 10) Τη χρονική στιγμή = 21, το P2 ξεκινά την εκτέλεση. Έχει χρόνο burst 2, επομένως ολοκληρώνει την εκτέλεση στο χρονικό διάστημα 23.
Βήμα 11) Τώρα, ας υπολογίσουμε τον μέσο χρόνο αναμονής για το παραπάνω παράδειγμα.
Waiting time = Start time - Arrival time
P4 = 0 – 0 = 0
P3 = 3 – 1 = 2
P1 = 11 – 2 = 9
P5 = 17 – 4 = 13
P2 = 21 – 5 = 16
Μέσος Χρόνος Αναμονής = (0 + 2 + 9 + 13 + 16) / 5 = 40 / 5 = 8
Πλεονεκτήματα του FCFS
Ακολουθούν τα πλεονεκτήματα και τα οφέλη της χρήσης του αλγορίθμου χρονοπρογραμματισμού FCFS:
- Είναι η απλούστερη μορφή ενός Αλγόριθμος προγραμματισμού CPU.
- Είναι εύκολο στον προγραμματισμό.
- Ακολουθεί μια απλή σειρά προτεραιότητας.
Μειονεκτήματα του FCFS
Ακολουθούν τα μειονεκτήματα και τα μειονεκτήματα της χρήσης του αλγορίθμου χρονοπρογραμματισμού FCFS:
- Είναι ένας μη προληπτικός αλγόριθμος χρονοπρογραμματισμού CPU, επομένως μόλις μια διεργασία έχει εκχωρηθεί στην CPU, δεν θα την απελευθερώσει ποτέ μέχρι να ολοκληρωθεί η εκτέλεση.
- Ο μέσος χρόνος αναμονής είναι υψηλός.
- Οι σύντομες διεργασίες στο τέλος της ουράς πρέπει να περιμένουν να ολοκληρωθεί η μεγάλη διεργασία στο μπροστινό μέρος.
- Δεν είναι η ιδανική τεχνική για συστήματα χρονομερισμού.
- Λόγω της απλότητάς του, το FCFS δεν είναι πολύ αποτελεσματικό.













