1. ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Στέφανος Γκρίτζαλης Αναπληρωτής Καθηγητής Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) 1.1 ΤΙ ΕΙΝΑΙ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Ένα Υπολογιστικό Σύστηµα αποτελείται: Υλικό» Επεξεργαστές» Μνήµη» Μαγνητικά Μέσα» Τερµατικά» κ.α. Λογισµικό» Προγράµµατα Συστήµατος» Προγράµµατα Εφαρµογών 2 1
1.1 ΤΙ ΕΙΝΑΙ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (5/7)( Φυσικές συσκευές Ολοκληρωµένα κυκλώµατα, καλωδιώσεις, τροφοδοτικά, καθοδικοί σωλήνες κλπ. Μικροπρόγραµµα Το χαµηλότερο επίπεδο λογισµικού το οποίο: συνήθως τοποθετείται σε ROM ελέγχει άµεσα τις συσκευές δέχεται εντολές σε γλώσσα µηχανής και τις αναλύει σε σειρά µικρών βηµάτων. Γλώσσα µηχανής Το σύνολο των εντολών που διερµηνεύει το µικροπρόγραµµα 3 1.1 ΤΙ ΕΙΝΑΙ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (1/7) Λογισµικό: προγράµµατα συστήµατος (system software) π.χ. λειτουργικό σύστηµα (το κυριότερο από το λογισµικό συστήµατος) µεταγλωττιστές προγράµµατα εφαρµογών (application software) π.χ. τραπεζικές εφαρµογές, προγράµµατα παιχνιδιών 4 2
1.1 ΤΙ ΕΙΝΑΙ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (2/7) Καταστάσεις στις οποίες µπορεί να εκτελείται το λογισµικό: κατάσταση πυρήνα (kernel mode) ή κατάσταση επόπτη (supervisor mode)» το Λ.Σ. προστατεύεται, µε τη βοήθεια υλικού, από αδεξιότητα του χρήστη κατάσταση χρήστη (user mode)» π.χ. Μεταγλωτιστές,, εφαρµογές 5 1.1 ΤΙ ΕΙΝΑΙ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (4/7)( 6 3
1.1 ΤΙ ΕΙΝΑΙ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (6/7)( Λειτουργικό Σύστηµα (operating system) αποκρύπτει την πολυπλοκότητα του συστήµατος παρέχει εύχρηστο σύνολο εντολών για εργασία. 7 1.1 ΤΙ ΕΙΝΑΙ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (7/7)( ιερµηνευτής εντολών (command interpreter or shell) Μεταγλωττιστές (compilers) Επιµελητές κειµένου (editors) 8 4
1.1.1 Λειτουργικό Σύστηµα: Εκτεταµένη ή Ιδεατή Μηχανή (extended or virtual machine) Το Λ.Σ. αποκρύπτει από τους προγραµµατιστές και τους χρήστες την πολυπλοκότητα του υλικού και παρουσιάζει µια απλή µηχανή. Αποκρύπτεται πλήθος ενεργειών που αφορούν σε διακοπές (interrupts), χρονοµετρητές (timers), διαχείριση µνήµης (memory management), αρχεία (files) κλπ. 9 1.1.2 Λειτουργικό Σύστηµα: ιαχειριστής Πόρων (resource manager) (1/2) Το Λ.Σ. παρέχει µια συστηµατοποιηµένη και ελεγχόµενη κατανοµή των επεξεργαστών, των µνηµών και των άλλων συσκευών εισόδου/εξόδου, στα διάφορα ανταγωνιζόµενα προγράµµατα που επιθυµούν να τα χρησιµοποιήσουν. Αποκρύπτεται πλήθος ενεργειών που αφορούν σε διακοπές (interrupts), χρονοµετρητές (timers), διαχείριση µνήµης (memory management), αρχεία (files) κλπ. 10 5
1.1.2 Λειτουργικό Σύστηµα: ιαχειριστής Πόρων (resource manager) (2/2) Το Λ.Σ. έχει ως κύρια φροντίδα: τον έλεγχο χρήσης πόρων από διάφορες οντότητες τη διαβάθµιση των απαιτήσεων για πόρους τη χρέωση για τη χρήση των πόρων την ικανοποίηση αντικρουόµενων διεκδικήσεων πόρων από προγράµµατα και χρήστες 11 ΠΡΟ-ΙΣΤΟΡΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Μηχανική ή Ηλεκτροµαγνητική κατασκευή Babbage difference engine 12 6
1.2 Η ΙΣΤΟΡΙΑ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (1/5) 1.2.1 Πρώτη γενιά Η/Υ (1945-1955) Λυχνίες κενού Κάρτες καλωδιακών συνδέσεων Προγραµµατισµός σε γλώσσα µηχανής Απουσία Λ.Σ. 13 1.2 Η ΙΣΤΟΡΙΑ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (2/5) 1.2.2 εύτερη γενιά Η/Υ (1955-1965) Κρυσταλλοτρίοδοι (transistors) Συστήµατα µαζικής επεξεργασίας (batch systems) Εργασίες (jobs) Συµβολικές γλώσσες (assembly), εξελιγµένες γλώσσες (FORTRAN) Εκτυπώσεις χωρίς άµεση παρακολούθηση (off line printing) Τυπικό Λ.Σ.: IBSYS για IBM 7094 14 7
1.2 Η ΙΣΤΟΡΙΑ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (3/5) 15 1.2 Η ΙΣΤΟΡΙΑ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (4/5) 1.2.3 Τρίτη γενιά Η/Υ (1965-1989) Αξιοποίηση ολοκληρωµένων κυκλωµάτων (IC) IBM 360 Πολυπρογραµµατισµός (multiprogramming) µε διαµερισµό µνήµης Ετεροχρονισµός (SPOOLing - Simultaneous Peripheral Operation OnLine) Καταµερισµός χρόνου (timesharing) (CTSS) Λ.Σ. MULTICS (MULTiplexed Information and Computing Service) σχεδιασµένο από M.I.T., Bell Labs, General Electric Mini υπολογιστές MULTICS σε PDP-7 για ένα χρήστη από K.Thompson - προποµπός του Λ.Σ. UNIX 16 8
1.2 Η ΙΣΤΟΡΙΑ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (5/5) 1.2.4 Τέταρτη γενιά Η/Υ (1980-1990) Προσωπικοί Υπολογιστές (personal computers) και Σταθµοί Εργασίας (workstations) Φιλικό περιβάλλον χρήστη MS-DOS / UNIX Λ.Σ. δικτύων Κατανεµηµένα Λ.Σ. 17 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Η επικοινωνία µεταξύ προγραµµάτων χρήστη και λειτουργικού συστήµατος γίνεται µέσω του εκτεταµένου συνόλου εντολών του Λ.Σ. (Κλήσεις Συστήµατος-system calls) Οι κλήσεις συστήµατος δηµιουργούν, καταστρέφουν και χρησιµοποιούν οντότητες λογισµικού Οι σηµαντικότερες είναι:» ιεργασίες (processes)» Αρχεία (files) 18 9
1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (1/25) 1.3.1 ιεργασίες (processes) ιεργασία είναι ένα πρόγραµµα σε εκτέλεση, το οποίο περιλαµβάνει: εκτελέσιµο πρόγραµµα δεδοµένα του προγράµµατος σωρό απαριθµητή προγράµµατος δείκτη σωρού και άλλους καταχωρητές λοιπές απαραίτητες πληροφορίες. 19 1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (2/25) Σε συστήµατα καταµερισµού χρόνου (timesharing systems) απαιτείται η ύπαρξη διαδικασίας διακοπής και επανεκτέλεσης διεργασιών. Πίνακας διεργασιών (process table) είναι ένας πίνακας ή µία συνδεδεµένη λίστα από δοµές, µία για κάθε διεργασία, µε πληροφορίες απαραίτητες για τη διαχείρισή τους από το Λ.Σ. 20 10
1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (3/25) Ο Πίνακας ιεργασιών, για κάθε διεργασία, περιλαµβάνει: την τρέχουσα κατάσταση της διεργασίας το όνοµα της διεργασίας την ταυτότητα του ιδιοκτήτη (uid) της διεργασίας την προτεραιότητα (priority) της διεργασίας δείκτες για προσπέλαση στο χώρο µνήµης που καταλαµβάνει η διεργασία απαιτούµενους πόρους από τη διεργασία πληροφορίες απαραίτητες για την επανεκκίνηση της διεργασίας. 21 1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (4/25) Μία υπό αναστολή (suspended) διεργασία αποτελείται από: το χώρο διευθύνσεων (address space or core image) πληροφορίες που την αφορούν στον πίνακα διεργασιών (process table entry) 22 11
1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (5/25) Ηδηµιουργία και ο τερµατισµός των διεργασιών υποστηρίζονται από τη λειτουργία των θεµελιακών κλήσεων του Λ.Σ. Στη δενδροειδή δοµή διεργασιών (tree structure), κάθε διεργασία (parent process) µπορεί να δηµιουργήσει νέα - θυγατρική διεργασία (child process). 23 1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (6/25) Όταν το σύστηµα δηµιουργεί µία διεργασία: της δίνει ένα όνοµα την παρεµβάλει στη λίστα των διεργασιών της δίνει µία προτεραιότητα της δηµιουργεί είσοδο στον Πίνακα ιεργασιών της παραχωρεί τµήµα των αγαθών που χρειάζεται για τη λειτουργία της 24 12
1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (7/25) Παράδειγµα 1. Στα συστήµατα καταµερισµού χρόνου, όταν µία διεργασία αναστέλλεται προσωρινά, πρέπει να ληφθεί πρόνοια ώστε να µπορεί να συνεχίσει αργότερα από το σηµείο στο οποίο βρισκόταν. Τα απαραίτητα στοιχεία βρίσκονται στην αντίστοιχη είσοδο του Πίνακα ιεργασιών. 25 1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (8/25) Παράδειγµα 2. Η διεργασία κέλυφος ή φλοιός (shell) στο UNIX διαβάζει εντολές από ένα τερµατικό για µεταγλώττιση προγραµµάτων. Ο φλοιός δηµιουργεί νέα διεργασία-παιδί, η οποία θα εκτελέσει το πρόγραµµα µεταγλώττισης. Όταν η διεργασία-παιδί ολοκληρώσει τη µεταγλώττιση, εκτελεί µία κλήση συστήµατος για τερµατισµό του εαυτού της. 26 13
1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (9/25) Σήµατα (signals) Σήµατα είναι λογισµικό που λειτουργεί αντίστοιχα µε τις διακοπές υλικού (hardware interrupts). Μηχανισµός επικοινωνίας διεργασιών (εν γένει) 27 1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (10/25) Τα σήµατα προκαλούνται από: προγραµµατιστικά σφάλµατα που ανιχνεύονται από το υλικό (π.χ. χρησιµοποίηση λανθασµένης διεύθυνσης, εκτέλεση µη επιτρεπόµενης εντολής) εκπνοή χρόνου σε χρονοµετρητή πρόβληµα στη διαδιεργασιακή επικοινωνία (interprocess communication). 28 14
1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (11/25) Παράδειγµαπρόκλησης αποστολής σήµατος ιεργασία 1 εκτελούµενη σε σύστηµα Α, στέλνει µήνυµα σε διεργασία 2 που εκτελείται στο Β και αναµένει επιβεβαίωση λήψης. Αν παρέλθει ο καθορισµένος χρόνος χωρίς λήψη επιβεβαίωσης από το Β, το Λ.Σ. αποστέλλει σήµα στη 1. Η 1 αναστέλλεται, εκτελεί διαδικασία διεκπεραίωσης του σήµατος και ακολούθως συνεχίζει να εκτελείται από το σηµείο που είχε διακοπεί. 29 1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (12/25) Στα συστήµατα πολυπρογραµµατισµού, κάθε διεργασία έχει έναν ιδιοκτήτη, ο οποίος χαρακτηρίζεται από ένα µοναδικό uid (user identification). Οι χρήστες κατανέµονται σε οµάδες (groups) µε αριθµό ταυτότητας gid (group identification). Οι αριθµοί uid και gid αξιοποιούνται σε θέµατα ασφάλειας πληροφοριών στο σύστηµα. 30 15
1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (13/25) 1.3.2 Αρχεία Σύστηµα αρχείων (file system) είναι το τµήµα του Λ.Σ. που ασχολείται µε τη διαχείριση των αρχείων. Το Λ.Σ. προσφέρει ένα αφηρηµένο µοντέλο από αρχεία ανεξάρτητα συσκευής. 31 1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (14/25) Χρήσιµες έννοιες για την υλοποίηση ενός συστήµατος αρχείων είναι: κατάλογος (directory) κατάλογος εργασίας (working directory) δενδροειδής δοµή (tree structure) όνοµα διαδροµής (pathname) περιγραφέας αρχείου (file descriptor) ειδικά αρχεία µπλοκ (block special files) (δίσκοι) ειδικά αρχεία χαρακτήρα (character special files) (terminals, line printers, network ports) προστασία (protection) (RWXD) σωληνώσεις (pipes). 32 16
1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (15/2 /25) 33 1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (16/2 /25) Οµοιότητες διεργασιών - αρχείων οι ιεραρχίες διεργασιών και οι ιεραρχίες αρχείων οργανώνονται σε δενδροειδή µορφή 34 17
1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (17/2 /25) ιαφορές διεργασιών - αρχείων το βάθος των δένδρων διεργασιών είναι µικρό, ενώ των αρχείων συνήθως µεγαλύτερο ο χρόνος ζωής των δένδρων διεργασιών είναι πολύ µικρότερος από αυτόν των αρχείων στις διεργασίες υπάρχει πατρότητα, δηλαδή µόνο η διεργασίαγονέας µπορεί να ελέγξει τη διεργασία-παιδί, ενώ στα αρχεία δεν υπάρχει αντίστοιχη έννοια ελέγχου στις διεργασίες υπάρχει προστασία (protection), δηλαδή µόνο η διεργασία-γονέας µπορεί να έχει προσπέλαση στη διεργασία-παιδί, ενώ στα αρχεία υπάρχουν µηχανισµοί που επιτρέπουν σε ευρύτερο πλήθος χρηστών να διαβάζουν καταλόγους και αρχεία πέραν του ιδιοκτήτη. 35 1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (18/2 /25) 1.3.3 Κλήσεις συστήµατος (system calls) Κλήσεις συστήµατος είναι το σύνολο των εκτεταµένων εντολών (extended instructions) που παρέχει το Λ.Σ., οι οποίες βοηθούν την επικοινωνία µεταξύ Λ.Σ. και προγραµµάτων του χρήστη. Οι κλήσεις συστήµατος δηµιουργούν, καταστρέφουν και χρησιµοποιούν οντότητες λογισµικού (π.χ. διεργασίες, αρχεία) τις οποίες διαχειρίζεται το Λ.Σ. 36 18
1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (19/2 /25) Οι κλήσεις συστήµατος µπορεί να κληθούν για: να ζητηθεί περισσότερη µνήµη να απελευθερωθεί αχρησιµοποίητη µνήµη τη δηµιουργία διεργασιών τη δηµιουργία αρχείων το άνοιγµα/κλείσιµο αρχείων τη µεταφορά αρχείου την εκτύπωση αρχείου τη διαγραφή αρχείου τη δηµιουργία/διαγραφή καταλόγου τη µετακίνηση καταλόγου. 37 1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (20/25) Σε κάθε κλήση συστήµατος αντιστοιχεί µία διαδικασία βιβλιοθήκης -.Β. (library procedure), την οποία καλούν τα προγράµµατα του χρήστη. Άρα: Η διαδικασία βιβλιοθήκης καλείται από το πρόγραµµα του χρήστη. Η κλήση συστήµατος προκαλείται από την κλήση της διαδικασίας βιβλιοθήκης. 38 19
1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (21/2 /25) Ηδιαδικασία, συνολικά περιλαµβάνει τα εξής βήµατα (1/2): το πρόγραµµα του χρήστη καλεί τη διαδικασία βιβλιοθήκης η διαδικασία βιβλιοθήκης τοποθετεί παραµέτρους κλήσης σε προκαθορισµένο χώρο - καταχωρητές µνήµης η διαδικασία βιβλιοθήκης εκπέµπει εντολή TRAP για να ξεκινήσει το Λ.Σ. (σκοπός της διαδικασίας βιβλιοθήκης είναι να αποκρύψει τις λεπτοµέρειες µιας εντολής TRAP και να κάνει τις κλήσεις συστήµατος να µοιάζουν µε κλήσεις κανονικών διαδικασιών) το Λ.Σ. εξετάζει τις παραµέτρους κλήσης αν είναι αποδεκτές 39 1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (22/2 /25) Ηδιαδικασία, συνολικά περιλαµβάνει τα εξής βήµατα (2/2): το Λ.Σ. εκτελεί λειτουργίες της αίτησης το Λ.Σ. τοποθετεί κωδικό κατάστασης (status code) σε καταχωρητή (επιτυχία ή αποτυχία εκτέλεσης) το Λ.Σ. εκτελεί RETURN FROM TRAP (επιστροφή ελέγχου στη.β.) η.β. επιστρέφει τον έλεγχο στο πρόγραµµα, επιστρέφοντας τον κωδικό κατάστασης ως τιµή µιας συνάρτησης. 40 20
1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (23/2 /25) 1.3.4 Φλοιός Φλοιός (shell) ή διερµηνευτής εντολών (command interpreter) είναι η κύρια διασύνδεση ανάµεσα στο χρήστη ή προγραµµατιστή και στο Λ.Σ. Ο φλοιός δεν αποτελεί τµήµα του Λ.Σ. Όταν ένας χρήστης συνδεθεί στο σύστηµα, ο φλοιός είναι η συνήθης αρχική εντολή εκτέλεσης (initial command). 41 1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (24/2 /25) Εκτέλεση εντολής στο προσκήνιο (foreground) Στην εκτέλεση µιας εντολής (π.χ. date) κατά κανόνα ο φλοιός δηµιουργεί διεργασία-παιδί, η οποία και εκτελεί την εντολή. Μετά την ολοκλήρωσή της, ο φλοιός ενεργοποιείται εκ νέου και τυπώνει το προκαθορισµένο prompt. 42 21
1.3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (25/2 /25) Εκτέλεση εντολής στο παρασκήνιο (background) Η εντολή αρχίζει να εκτελείται, αλλά το τερµατικό είναι διαθέσιµο για αξιοποίηση πριν τη συµπλήρωση εκτέλεσης της εντολής, π.χ.: $ cat file1 file2 file3 sort > /dev/lp & 43 1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (1/14) 1.4.1 Μονολιθικά συστήµατα (monolithic systems) Λειτουργικά συστήµατα µε ανυπαρξία δοµής: "η µεγάλη ακαταστασία" (the big mess). Το Λ.Σ. είναι µία συλλογή διαδικασιών, οι οποίες µεταγλωττίζονται ξεχωριστά και µε τη βοήθεια του προγράµµατος σύνδεσης (linker) ενοποιούνται σε ένα µοναδικό εκτελέσιµο αρχείο. Κάθε επιµέρους διαδικασία στο σύστηµα έχει καλά καθορισµένη ενδοσυνεννόηση, ως προς τις παραµέτρους που δέχεται και τα αποτελέσµατα που παράγει. 44 22
1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (2/14) Ηελάχιστη δοµή ενός Λ.Σ. περιλαµβάνει υπηρεσίες - κλήσεις συστήµατος, οι οποίες καλούνται ως εξής (1/2): τοποθετώνται οι παράµετροι σε καλά καθορισµένες θέσεις (καταχωρητές, στοίβα) εκτελείται η ειδική εντολή κλήσης πυρήνα (kernel call) ή κλήσης επόπτη (supervisor call) η εντολή υποχρεώνει τη µηχανή να µεταπέσει από κατάσταση χρήστη σε κατάσταση πυρήνα 45 1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (3/14) Ηελάχιστη δοµή ενός Λ.Σ. περιλαµβάνει υπηρεσίες - κλήσεις συστήµατος, οι οποίες καλούνται ως εξής (2/2): µεταφέρεται ο έλεγχος στο Λ.Σ. το Λ.Σ. εξετάζει τις παραµέτρους κλήσης για να καθορίσει ποια κλήση συστήµατος θα πρέπει να ενεργοποιηθεί για την εξυπηρέτηση το Λ.Σ. εντοπίζει και καλεί τη διαδικασία εξυπηρέτησης η κλήση συστήµατος τερµατίζεται και ο έλεγχος επιστρέφεται στο πρόγραµµα του χρήστη. 46 23
1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (4/14) Ηοργάνωση αυτή προτείνει µια βασική δοµή για το Λ.Σ. ένα κύριο πρόγραµµα, που ενεργοποιεί τη ζητηθείσα διαδικασία εξυπηρέτησης (service procedure) ένα σύνολο διαδικασιών εξυπηρέτησης που υλοποιούν τις κλήσεις συστήµατος ένα σύνολο βοηθητικών προγραµµάτων (utility procedures) που υποβοηθούν τις διαδικασίες εξυπηρέτησης» (π.χ. φροντίζουν να έλθουν τα δεδοµένα από τα προγράµµατα του χρήστη) Στο µοντέλο αυτό, για κάθε κλήση συστήµατος, υπάρχει µια διαδικασία εξυπηρέτησης που φροντίζει γι' αυτήν. 47 1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (5/14) 1.4.2 Στρωµατοποιηµένα συστήµατα Το Λ.Σ. οργανώνεται ως µία ιεραρχία επιπέδων, καθένα από τα οποία δοµείται στο υποκείµενο επίπεδό του. 48 24
1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (6/14) Παράδειγµα Ι: Σύστηµα ΤΗΕ (Technische Hogeschool Eindhoven, Dijkstra, 1968) Σύστηµα µαζικής επεξεργασίας το οποίο διέθετε 6 επίπεδα. Το επίπεδο 0 ασχολούνταν µε τη χορήγηση του επεξεργαστή, την εναλλαγή του επεξεργαστή µεταξύ διεργασιών. Το επίπεδο 1 αναλάµβανε τη διαχείριση κύριας και δευτερεύουσας µνήµης. Το επίπεδο 2 χειριζόταν την επικοινωνία µεταξύ διεργασίας και χειριστή. Το επίπεδο 3 φρόντιζε για τη διαχείριση των συσκευών εισόδου/εξόδου και τη ροή των πληροφοριών από και προς αυτές. Το επίπεδο 4 ασχολείται µε τα προγράµµατα του χρήστη. Το επίπεδο 5 ασχολείται µε τις διεργασίες του χειριστή του συστήµατος. Τα επίπεδα του συστήµατος δεν είναι πραγµατικά συνδεδεµένα µεταξύ τους σε ένα µοναδικό εκτελέσιµο πρόγραµµα. 49 1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (7/14) ΠαράδειγµαΙI: Σύστηµα MULTICS Το Λ.Σ. οργανώνεται ως µια σειρά από οµόκεντρους δακτυλίους, στους οποίους οι εσωτερικοί δακτύλιοι είναι περισσότερο προνοµιούχοι από ότι οι εξωτερικοί. Όταν µία διαδικασία βρίσκεται σε εξωτερικό δακτύλιο και αιτείται την κλήση µιας διαδικασίας σε εσωτερικό δακτύλιο, δηµιουργείται το ισοδύναµο µιας κλήσης συστήµατος (µια εντολή TRAP), αφού ελεγχθούν οι παράµετροι της εντολής, πριν επιτραπεί στην κλήση να προχωρήσει. 50 25
1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (8/14) Τα πλεονεκτήµατα του µηχανισµού δακτυλίων είναι: η δυνατότητα επέκτασης ώστε να συµπεριλάβει υποσυστήµατα του χρήστη η δυνατότητα του υλικού να καθορίζει ατοµικές διαδικασίες προστατευµένα από ενέργειες ανάγνωσης, εγγραφής, εκτέλεσης. 51 1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (9/14) 1.4.3 Ιδεατές µηχανές Παρά την αποδοχή του OS/360 στο χώρο των συστηµάτων µαζικής επεξεργασίας, οι απαιτήσεις των χρηστών ήταν στην αξιοποίηση συστηµάτων καταµερισµού χρόνου. Το κυριότερο σύστηµα καταµερισµού χρόνου ήταν το CP/CMS που τελικά ονοµάστηκε VM/370. 52 26
1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (10/14) Ηκύρια συνιστώσα του συστήµατος, ο ελεγκτής της ιδεατής µηχανής (virtual machine monitor), έτρεχε στο βασικό υλικό και υλοποιούσε: πολυπρογραµµατισµό ιδεατές µηχανές µε σηµαντική αφαιρετικότητα επικοινωνίας µε το χρήστη. 53 1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (11/14) Αντίθετα από άλλα Λ.Σ., αυτές οι ιδεατές µηχανές ήταν απόλυτες αντιγραφές του βασικού υλικού και καθεµία µπορούσε να τρέξει οποιοδήποτε Λ.Σ., είτε µαζικής επεξεργασίας, είτε διαλογικά συστήµατα για ένα µόνο χρήστη. Έτσι, όταν ένα πρόγραµµα του CMS εκτελούσε κλήση συστήµατος, η κλήση παγιδευόταν στη δική του ιδεατή µηχανή και όχι στο VM/370. 54 27
1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (12/14) 1.4.4 Μοντέλο εξυπηρετούµενου / εξυπηρέτη (client/server model) Τα σύγχρονα Λ.Σ. υιοθετούν τη βασική ιδέα του VM/370 για µετατόπιση κώδικα σε υψηλότερο επίπεδο, αφήνοντας ελάχιστο πυρήνα. Στο µοντέλο εξυπηρετούµενου / εξυπηρέτη, η διεργασία εξυπηρετούµενου (client process) αποστέλλει αίτηση εξυπηρέτησης στη διεργασία εξυπηρέτη (server process), η οποία επιτελεί την εργασία και επιστρέφει την απάντηση. 55 1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (13/14) Οπυρήνας χειρίζεται: την επικοινωνία µεταξύ εξυπηρετούµενων και εξυπηρετών τις λειτουργίες του Λ.Σ. που δεν είναι εφικτό να υλοποιηθούν σε επίπεδο χρήστη (π.χ. φόρτωση εντολών σε καταχωρητές συσκευών Ε/Ε). 56 28
1.4 ΟΜΗ ΕΝΟΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (14/14) Πλεονεκτήµατα του µοντέλου: τα επιµέρους τµήµατα του Λ.Σ. (εξυπηρέτες διεργασιών, αρχείων, µνήµης κλπ.) γίνονται µικρότερα και ευκολόχρηστα οι εξυπηρέτες τρέχουν σε κατάσταση χρήστη (user mode) και όχι σε κατάσταση πυρήνα (kernel mode), συνεπώς αποφεύγεται η προσπέλαση στο υλικό κατά συνέπεια αποφεύγεται και η διακοπή της λειτουργίας της µηχανής από κατάρρευση ενός εξυπηρέτη υπάρχει δυνατότητα προσαρµογής σε κατανεµηµένα συστήµατα, αφού ένας εξυπηρετούµενος δε γνωρίζει αν το µήνυµα εξυπηρέτησης που έστειλε διαχειρίζεται τοπικά ή αποµακρυσµένα. 57 29