Λειτουργικά Συστήματα (Λ/Σ) Δομή Λειτουργικών Συστημάτων Βασίλης Σακκάς 20/11/2013 1
Δομή ενός Λ/Σ -1 Μονολιθικά συστήματα (monolithic systems) Λειτουργικά συστήματα με ανυπαρξία δομής: "η μεγάλη ακαταστασία" (the big mess). Το Λ/Σ είναι μία συλλογή διαδικασιών, οι οποίες μεταγλωττίζονται ξεχωριστά και με τη βοήθεια του προγράμματος σύνδεσης (linker) ενοποιούνται σε ένα μοναδικό εκτελέσιμο αρχείο. Κάθε επιμέρους διαδικασία στο σύστημα έχει καλά καθορισμένη ενδοσυνεννόηση, ως προς τις παραμέτρους που δέχεται και τα αποτελέσματα που παράγει. 2
Δομή ενός Λ/Σ -2 Η ελάχιστη δομή ενός Λ/Σ Περιλαμβάνειυπηρεσίεςκλήσεις συστήματος, οι οποίες καλούνται ως εξής (1/2): τοποθετώνται οι παράμετροι σε καλά καθορισμένες θέσεις (καταχωρητές, στοίβα) εκτελείται η ειδική εντολή κλήσης πυρήνα (kernel call) ή κλήσης επόπτη (supervisor call) ηεντολήυποχρεώνειτημηχανήναμεταπέσειαπό κατάσταση χρήστη σε κατάσταση πυρήνα 3
Δομή ενός Λ/Σ -3 Η ελάχιστη δομή ενός Λ/Σ Περιλαμβάνειυπηρεσίεςκλήσεις συστήματος, οι οποίες καλούνται ως εξής (2/2): μεταφέρεται ο έλεγχος στο Λ/Σ το Λ/Σ εξετάζει τις παραμέτρους κλήσης για να καθορίσει ποια κλήση συστήματος θα πρέπει να ενεργοποιηθεί για την εξυπηρέτηση το Λ/Σ εντοπίζει και καλεί τη διαδικασία εξυπηρέτησης η κλήση συστήματος τερματίζεται και ο έλεγχος επιστρέφεται στο πρόγραμμα του χρήστη. 4
Δομή ενός Λ/Σ -4 Κύρια Διαδικασία Διαδικασία Εξυπηρέτησης Βοηθητικές διαδικασίες Η οργάνωση αυτή προτείνει μια βασική δομή για το Λ/Σ ένα κύριο πρόγραμμα, που ενεργοποιεί τη ζητηθείσα διαδικασία εξυπηρέτησης (service procedure) ένα σύνολο διαδικασιών εξυπηρέτησης που υλοποιούν τις κλήσεις συστήματος ένα σύνολο βοηθητικών προγραμμάτων (utility procedures) που υποβοηθούν τις διαδικασίες εξυπηρέτησης»(π.χ. φροντίζουν να έλθουν τα δεδομένα από τα προγράμματα του χρήστη) Στο μοντέλο αυτό, για κάθε κλήση συστήματος, υπάρχει μια διαδικασία εξυπηρέτησης που φροντίζει γι' αυτήν. 5
Δομή ενός Λ/Σ -5 Στρωματοποιημένα συστήματα Το Λ/Σ οργανώνεται ως μία ιεραρχία επιπέδων, καθένα από τα οποία δομείται στο υποκείμενο επίπεδό του. 5 4 3 2 1 0 Χειριστής Συστήματος Προγράμματα Χρηστών ιαχείριση Εισόδου/Εξόδου Επικοινωνία χειριστή - διεργασίας ιαχείριση μνήμης και δίσκου Κατανομή επεξεργαστή και πολυπρογραμματισμός 6
Δομή ενός Λ/Σ -6 Παράδειγμα Ι: Σύστημα ΤΗΕ (Technische Hogeschool Eindhoven, Dijkstra, 1968) Σύστημα μαζικής επεξεργασίας το οποίο διέθετε 6 επίπεδα. Το επίπεδο 0 ασχολούνταν με τη χορήγηση του επεξεργαστή, την εναλλαγή του επεξεργαστή μεταξύ διεργασιών. Το επίπεδο 1 αναλάμβανε τη διαχείριση κύριας και δευτερεύουσας μνήμης. Το επίπεδο 2 χειριζόταν την επικοινωνία μεταξύ διεργασίας και χειριστή. Το επίπεδο 3 φρόντιζε για τη διαχείριση των συσκευών εισόδου/εξόδου και τη ροή των πληροφοριών από και προς αυτές. Το επίπεδο 4 ασχολείται με τα προγράμματα του χρήστη. Το επίπεδο 5 ασχολείται με τις διεργασίες του χειριστή του συστήματος. Τα επίπεδα του συστήματος δεν είναι πραγματικά συνδεδεμένα μεταξύ τους σε ένα μοναδικό εκτελέσιμο πρόγραμμα. 7
Δομή ενός Λ/Σ -7 Λ/Σ: Σύστημα MULTICS Το Λ/Σ οργανώνεται ως μια σειρά από ομόκεντρους δακτυλίους, στους οποίους οι εσωτερικοί δακτύλιοι είναι περισσότερο προνομιούχοι από ότι οι εξωτερικοί. Όταν μία διαδικασία βρίσκεται σε εξωτερικό δακτύλιο και αιτείται την κλήση μιας διαδικασίας σε εσωτερικό δακτύλιο, δημιουργείται το ισοδύναμο μιας κλήσης συστήματος (μια εντολή TRAP), αφού ελεγχθούν οι παράμετροι της εντολής, πριν επιτραπεί στην κλήση να προχωρήσει. 8
Δομή ενός Λ/Σ -8 Ιδεατές μηχανές Παρά την αποδοχή του OS/360 στο χώρο των συστημάτων μαζικής επεξεργασίας, οι απαιτήσεις των χρηστών ήταν στην αξιοποίηση συστημάτων καταμερισμού χρόνου. Το κυριότερο σύστημα καταμερισμού χρόνου ήταν το CP/CMS που τελικά ονομάστηκε VM/370. 9
Δομή ενός Λ/Σ -9 Η κύρια συνιστώσα του συστήματος, ο ελεγκτήςτης ιδεατής μηχανής (virtual machine monitor), έτρεχε στο βασικό υλικό και υλοποιούσε: πολυπρογραμματισμό ιδεατές μηχανές με σημαντική αφαιρετικότητα επικοινωνίας με το χρήστη. Ιδεατές μηχανές 370 Είσοδος/έξοδος εντολών Κλήσεις συστήματος Δημιουργία παγίδας Δημιουργία παγίδας Το πραγματικό υλικό του 370 10
Δομή ενός Λ/Σ -10 Αντίθετα από άλλα Λ/Σ, αυτές οι ιδεατές μηχανές ήταν απόλυτες αντιγραφές του βασικού υλικού και καθεμία μπορούσε να τρέξει οποιοδήποτε Λ/Σ, είτε μαζικής επεξεργασίας, είτε διαλογικά συστήματα για ένα μόνο χρήστη. Έτσι, όταν ένα πρόγραμμα του CMS εκτελούσε κλήση συστήματος, η κλήση παγιδευόταν στη δική του ιδεατή μηχανή και όχι στο VM/370. 11
Δομή ενός Λ/Σ -11 Μοντέλο εξυπηρετούμενου / εξυπηρέτη (client/server model) Τα σύγχρονα Λ/Σ υιοθετούν τη βασική ιδέα του VM/370 για μετατόπιση κώδικα σε υψηλότερο επίπεδο, αφήνοντας ελάχιστο πυρήνα. Στο μοντέλο εξυπηρετούμενου / εξυπηρέτη, η διεργασία εξυπηρετούμενου (client process) αποστέλλει αίτηση εξυπηρέτησης στη διεργασία εξυπηρέτη (server process), η οποία επιτελεί την εργασία και επιστρέφει την απάντηση. 12
Δομή ενός Λ/Σ -12 Οπυρήναςχειρίζεται: την επικοινωνία μεταξύ εξυπηρετούμενων και εξυπηρετών τις λειτουργίες του Λ/Σ που δεν είναι εφικτό να υλοποιηθούν σε επίπεδο χρήστη (π.χ. Φόρτωση εντολών σε καταχωρητές συσκευών Ε/Ε). Διεργασία εξυπηρετούμενου Διεργασία εξυπηρετούμενου Εξυπηρέτης διεργασιών Εξυπηρέτης τερματικών Εξυπηρέτης αρχείων Εξυπηρέτης μνήμης Κατάσταση χρήστη Πυρήνας Κατάσταση πυρήνα Οεξυπηρετούμενος εξυπηρετείται στέλνοντας μηνύματα στις διεργασίες εξυπηρέτησης 13
Δομή ενός Λ/Σ -13 Πλεονεκτήματα του μοντέλου: τα επιμέρους τμήματα του Λ/Σ (εξυπηρέτες διεργασιών, αρχείων, μνήμης κλπ.) γίνονται μικρότερα και ευκολόχρηστα οι εξυπηρέτες τρέχουν σε κατάσταση χρήστη (user mode) και όχι σε κατάσταση πυρήνα (kernel mode), συνεπώς αποφεύγεται η προσπέλαση στο υλικό κατά συνέπεια αποφεύγεται και η διακοπή της λειτουργίας της μηχανής από κατάρρευση ενός εξυπηρέτη υπάρχει δυνατότητα προσαρμογής σε κατανεμημένα συστήματα, αφού ένας εξυπηρετούμενος δε γνωρίζει αν το μήνυμα εξυπηρέτησης που έστειλε διαχειρίζεται τοπικά ή απομακρυσμένα. 14