ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Ύλη του Μαθήµατος Μάθηµα: Λειτουργικά Συστήµατα ΙΙ UNIX Βιβλίο Μαθήµατος: α) Tanenbaum, A.:ΣύγχροναΛειτουργικάΣυστήµατα, 2ηΈκδοση, Εκδόσεις Κλειδάριθµος. β) Wrightson, K., Merlino, J. (2001): ΠλήρεςΕγχειρίδιοτου UNIX, Εκδόσεις Γκιούρδας γ) Kernighan, B. W. & Pike R. (2001): ΤοΠεριβάλλονΠρογραµµατισµού UNIX (µεταφρασµένο), ΕκδόσειςΚλειδάριθµος ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση ιδάσκων: Αναπ.Καθ. Κ. Λαµπρινουδάκης clam@unipi.gr ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 1 Ας θυµηθούµε λίγο αυτά που είχατε µάθει στο προηγούµενο έτος... Ασφάλεια Λειτουργικών Συστηµάτων: Απειλές, Επιθέσεις, Πιστοποίηση Ταυτότητας Χρήστη, Μηχανισµοί Ελέγχου Προσπέλασης. Αρχές Σχεδίασης Λειτουργικών Συστηµάτων Λειτουργικά Συστήµατα Έξυπνων Καρτών: Υποστήριξη πολλών εφαρµογών από ένα Πάροχο Υπηρεσιών, Υποστήριξη Πολλών Εφαρµογών απόπολλούςπαρόχους, JAVAκάρτες. Λειτουργικά Συστήµατα για Πολυεπεξεργαστές, Πολυ-Υπολογιστές και Κατανεµηµένα Συστήµατα Λειτουργικά Συστήµατα Πολυµέσων: Αρχεία Πολυµέσων, Συµπίεση Βίντεο, Χρονοπρογραµµατισµός Αρχείων Πολυµέσων. Ιστορία και Βασικές έννοιες του UNIX ιεργασίες - ιαχείριση Μνήµης - Είσοδος Έξοδος - Τo Σύστηµα Αρχείωντου UNIX. Ο Φλοιός και ο Προγραµµατισµός του ιαχείριση Συστήµατος, ιαχείριση Χρηστών και Οµάδων, ιαχείριση ίσκων και Συστηµάτων Αρχείων, Εγκατάσταση και ιαχείριση Λογισµικού. ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 2 Ένα Υπολογιστικό Σύστηµα αποτελείται: Υλικό Επεξεργαστές Μνήµη Μαγνητικά Μέσα Τερµατικά κ.α. Λογισµικό Λογισµικό Συστήµατος π.χ. λειτουργικό σύστηµα (το κυριότερο από το λογισµικό συστήµατος) Μεταγλωττιστές, ιερµηνευτές Εντολών κ.λ.π. Λογισµικό Εφαρµογών ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 3 ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 4 1
Λειτουργικό Σύστηµα (Οperating System) αποκρύπτει την πολυπλοκότητα του συστήµατος παρέχειεύχρηστοσύνολοεντολώνγιαεργασία. Το Λ.Σ. παρέχει µια συστηµατοποιηµένη και ελεγχόµενη κατανοµή των επεξεργαστών, της διαθέσιµης µνήµης και των άλλων συσκευών εισόδου/εξόδου, στα διάφορα ανταγωνιζόµενα προγράµµατα που επιθυµούν να τα χρησιµοποιήσουν. Αποκρύπτεται πλήθος ενεργειών που αφορούν σε διακοπές (interrupts), χρονοµετρητές (timers), διαχείριση µνήµης (memory management), αρχεία (files) κλπ. ΤοΛ.Σ. έχειωςκύριαφροντίδα: τον έλεγχο χρήσης πόρων από διάφορες οντότητες τη διαβάθµιση των απαιτήσεων για πόρους τηχρέωσηγιατηχρήσητωνπόρων την ικανοποίηση αντικρουόµενων διεκδικήσεων πόρων από προγράµµατα και χρήστες ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 5 ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 6 ιεργασίες (Processes): Είναι ένα πρόγραµµα σε εκτέλεση, το οποίο περιλαµβάνει: εκτελέσιµο πρόγραµµα δεδοµένα του προγράµµατος σωρό απαριθµητή προγράµµατος δείκτη σωρού και άλλους καταχωρητές λοιπέςαπαραίτητεςπληροφορίες. ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 7 Σεσυστήµατακαταµερισµούχρόνου (timesharing systems) απαιτείται η ύπαρξη διαδικασίας αναστολής και επανεκτέλεσης διεργασιών. Πίνακας διεργασιών (process table) είναι ένας πίνακας ή µία συνδεδεµένη λίστα από δοµές, µία για κάθε διεργασία, µε πληροφορίεςαπαραίτητεςγιατηδιαχείρισήτουςαπότολ.σ. Συγκεκριµένα περιλαµβάνει: την τρέχουσα κατάσταση της διεργασίας το όνοµα της διεργασίας την ταυτότητα του ιδιοκτήτη (uid) της διεργασίας την προτεραιότητα (priority) της διεργασίας δείκτες για προσπέλαση στο χώρο µνήµης που καταλαµβάνει η διεργασία απαιτούµενους πόρους από τη διεργασία πληροφορίεςαπαραίτητεςγιατηνεπανεκκίνησητηςδιεργασίας. ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 8 2
Η δηµιουργία και ο τερµατισµός των διεργασιών υποστηρίζονται από τη λειτουργία των θεµελιακών κλήσεων του Λ.Σ. Στη δενδροειδή δοµή διεργασιών (tree structure), κάθε διεργασία (parent process) µπορεί να δηµιουργήσει νέα -θυγατρικήδιεργασία (child process). Όταν το σύστηµα δηµιουργεί µία διεργασία: τηςδίνειέναόνοµα την παρεµβάλει στη λίστα των διεργασιών της δίνει µία προτεραιότητα της δηµιουργεί είσοδο στον Πίνακα ιεργασιών τηςπαραχωρείτµήµατωναγαθώνπουχρειάζεταιγιατη λειτουργία της ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 9 ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 10 Σήµατα (signals) Σήµατα είναι λογισµικό που λειτουργεί αντίστοιχα µε τις διακοπέςυλικού (hardware interrupts). Μηχανισµός επικοινωνίας διεργασιών (εν γένει) Τα σήµατα προκαλούνται από: προγραµµατιστικά σφάλµατα που ανιχνεύονται από το υλικό (π.χ. χρησιµοποίησηλανθασµένηςδιεύθυνσης, εκτέλεση µη επιτρεπόµενης εντολής) εκπνοή χρόνου σε χρονοµετρητή πρόβληµα στη διαδιεργασιακή επικοινωνία (interprocess communication). Αδιέξοδα (Deadlocks) ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 11 ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 12 3
Σύστηµα Αρχείων (file system) είναι το τµήµα του Λ.Σ. που ασχολείται µε τη διαχείριση των Αρχείων. Χρήσιµες έννοιες για την υλοποίηση ενός συστήµατος αρχείων είναι: κατάλογος (directory) κατάλογος εργασίας (working directory) δενδροειδής δοµή (tree structure) όνοµα διαδροµής (pathname) περιγραφέας αρχείου (file descriptor) ειδικά αρχεία µπλοκ (block special files) (δίσκοι) ειδικά αρχεία χαρακτήρα (character special files) (terminals, line printers, network ports) προστασία (protection) (RWXD) σωληνώσεις (pipes). ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 13 ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 14 Κλήσεις συστήµατος (system calls) είναι το σύνολο των εκτεταµένων εντολών (extended instructions) που παρέχει το Λ.Σ., οι οποίες βοηθούν την επικοινωνία µεταξύ Λ.Σ. και προγραµµάτων του χρήστη. Οι κλήσεις συστήµατος δηµιουργούν, καταστρέφουν και χρησιµοποιούν οντότητες λογισµικού (π.χ. διεργασίες, αρχεία) τις οποίες διαχειρίζεται το Λ.Σ. Συγκεκριµένα χρησιµοποιούνται για: Οι κλήσεις συστήµατος µπορεί να κληθούν για: να ζητηθεί περισσότερη µνήµη να απελευθερωθεί αχρησιµοποίητη µνήµη τη δηµιουργία διεργασιών τη δηµιουργία αρχείων το άνοιγµα/κλείσιµο αρχείων τη µεταφορά αρχείου την εκτύπωση αρχείου τη διαγραφή αρχείου τη δηµιουργία/διαγραφή καταλόγου τηµετακίνησηκαταλόγου. ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 15 Σε κάθε κλήση συστήµατος αντιστοιχεί µία διαδικασία βιβλιοθήκης -.Β. (library procedure), την οποία καλούν τα προγράµµατα του χρήστη. Άρα: Η διαδικασία βιβλιοθήκης καλείται από το πρόγραµµα του χρήστη. Η κλήση συστήµατος προκαλείται από την κλήση της διαδικασίας βιβλιοθήκης. Η διαδικασία, συνολικά περιλαµβάνει τα εξής βήµατα (1/2): το πρόγραµµα του χρήστη καλεί τη διαδικασία βιβλιοθήκης η διαδικασία βιβλιοθήκης τοποθετεί παραµέτρους κλήσης σε προκαθορισµένο χώρο - καταχωρητές µνήµης η διαδικασία βιβλιοθήκης εκπέµπει εντολή TRAP για να ξεκινήσει το Λ.Σ. (σκοπός της διαδικασίας βιβλιοθήκης είναι να αποκρύψει τις λεπτοµέρειες µιας εντολής TRAP και να κάνει τις κλήσεις συστήµατος να µοιάζουν µε κλήσεις κανονικών διαδικασιών) ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 16 4
Η διαδικασία, συνολικά περιλαµβάνει τα εξής βήµατα (2/2): το Λ.Σ. εξετάζει τις παραµέτρους κλήσης αν είναι αποδεκτές το Λ.Σ. εκτελεί λειτουργίες της αίτησης το Λ.Σ. τοποθετεί κωδικό κατάστασης (status code) σε καταχωρητή (επιτυχία ή αποτυχία εκτέλεσης) το Λ.Σ. εκτελεί RETURN FROM TRAP (επιστροφή ελέγχου στη.β.) η.β. επιστρέφει τον έλεγχο στο πρόγραµµα, επιστρέφοντας τον κωδικόκατάστασηςωςτιµήµιαςσυνάρτησης. ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 17 Φλοιός (shell) είναι η κύρια διασύνδεση ανάµεσα στο χρήστη ή προγραµµατιστή και στο Λ.Σ. (Ο φλοιός δεν αποτελεί τµήµα του Λ.Σ.) Εκτέλεση εντολής στο προσκήνιο (foreground) Στην εκτέλεση µιας εντολής (π.χ. date) κατά κανόνα ο φλοιός δηµιουργεί διεργασία-παιδί, η οποία και εκτελεί την εντολή. Μετά την ολοκλήρωσή της, ο φλοιός ενεργοποιείται εκ νέου καιτυπώνειτοπροκαθορισµένο prompt. Εκτέλεση εντολής στο παρασκήνιο (background) Η εντολή αρχίζει να εκτελείται, αλλά το τερµατικό είναι διαθέσιµο για αξιοποίηση πριν τη συµπλήρωση εκτέλεσης τηςεντολής, π.χ.: $ cat file1 file2 file3 sort > /dev/lp & ΛειτουργικάΣυστήµατα II - UNIX / Αν. Καθ. Κ. Λαµπρινουδάκης 18 5