Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016
Κεφάλαιο 1: Βασικές Έννοιες Λειτουργικών Συστημάτων
Ηλεκτρονικός Υπολογιστής Ειδικής Χρήσης Φτιαγμένος για μια συγκεκριμένη εργασία Γενικής Χρήσης Ο ίδιος υπολογιστής εκτελεί πολλές εργασίες ανάλογα με τις εντολές του λογισμικού
Ηλεκτρονικός Υπολογιστής Λογισμικό (Software) Υλικό (Hardware) Συστήματος (System SW) Εφαρμογών (Application SW) Το Λειτουργικό Σύστημα ανήκει στο Λογισμικό Συστήματος και είναι το πρόγραμμα ή η συλλογή προγραμμάτων που ελέγχει τη λειτουργία του υπολογιστή και υποστηρίζει την εκτέλεση κάθε άλλου προγράμματος
Αρμοδιότητες του Λειτουργικού Συστήματος Παρέχει τη διεπαφή (Interface) υπολογιστή - χρήστη Διαχειρίζεται τους πόρους του συστήματος (Resources) Μεταφέρει εντολές ή απαιτήσεις του χρήστη στον ΗΥ Δίνει πληροφορίες για την κατάσταση του συστήματος, λάθη και προβλήματα Ελέγχει την ΚΜΕ (CPU) κατανέμοντας το χρόνο της σε εργασίες και χρήστες
Αρμοδιότητες του Λειτουργικού Συστήματος Διαχειρίζεται την κεντρική μνήμη RAM Ελέγχει τις συσκευές και τις διαδικασίες Εισόδου Εξόδου και τη ροή πληροφοριών Οργανώνει και Διαχειρίζεται τα αρχεία του συστήματος Ελέγχει την εκτέλεση των προγραμμάτων των χρηστών Παρέχει και εφαρμόζει μηχανισμούς ασφάλειας του υπολογιστή και των χρηστών.
Τα Λειτουργικά Συστήματα σχεδιάζονται ώστε να αποτελούνται από διάφορα αφηρημένα επίπεδα, καθένα από τα οποία εκτελεί τις λειτουργίες του «κρύβοντας» την πολυπλοκότητά του. Έτσι ο χρήστης έχει την εικόνα μιας «υψηλού επιπέδου» μηχανής.
Πυρήνας (Kernel) Ελέγχει το υλικό Διεπαφές (Interfaces) Επιτρέπουν την επικοινωνία με το χρήστη Utilities Βοηθητικά προγράμματα για την επιτέλεση λειτουργιών Τα κυριότερα τμήματα του Λειτουργικού Συστήματος
Ο Πυρήνας (Kernel) - Το «χαμηλότερου επιπέδου» τμήμα του Λειτουργικού συστήματος. - Χειρίζεται το υλικό του υπολογιστή επομένων φορτώνεται πρώτος στη μνήμη και παραμένει διαρκών ενεργός - Αναγνωρίζει τις διακοπές που δημιουργούνται από το υλικό του υπολογιστή και ανταποκρίνεται σε αυτές.
Πολυ-προγραμματισμός Αν ένα Λειτουργικό Σύστημα έχει την ικανότητα να εκτελεί περισσότερα από ένα προγράμματα (του ίδιου ή διαφορετικών χρηστών) ταυτόχρονα τότε λέμε ότι είναι ένα σύστημα Πολυπρογραμματισμού (Multiprogramming) Το πλεονέκτημα είναι ότι μειώνεται ο συνολικός χρόνος εκτέλεσης όλων των εργασιών και αξιοποιούνται καλύτερα οι πόροι του συστήματος. Π.χ. όταν μια εργασία δεν χρειάζεται τον επεξεργαστή μπορεί αυτός να εξυπηρετήσει μια άλλη που «τρέχει παράλληλα». Το μειονέκτημα είναι ότι αυξάνει η πολυπλοκότητα και χρειάζονται μηχανισμοί προστασίας της μιας εργασίας από ενέργειες ή αστοχίες άλλης που εκτελείται παράλληλα.
Πολυ-διεργασία Αν ένα Λειτουργικό Σύστημα έχει την ικανότητα να εκτελεί πολλές εργασίες ταυτόχρονα, κάθε μια από τις οποίες μπορεί να είναι αυτόνομο πρόγραμμα ή τμήμα ενός προγράμματος τότε λέγεται σύστημα πολύ-διεργασίας (Multi-tasking) Αυξάνεται η παραγωγικότητα του συστήματος και του χρήστη καθώς διεργασίες που χρησιμοποιούν κάποιες συσκευές μπορούν να εκτελούνται όταν αυτές είναι ελεύθερες ενώ παράλληλα μπορούν να «τρέχουν» και άλλες διεργασίες που κάνουν χρήση διαφορετικών συσκευών. Κάποιες από τις διεργασίες μπορούν να τρέχουν στο παρασκήνιο επιτελώντας λειτουργίες όπως π.χ. η επικοινωνία σε ένα δίκτυο, η προστασία του υπολογιστή από ιούς.
Η Διεπαφή χρήστη (User Interface) Το λειτουργικό σύστημα ως ενδιάμεσος μεταφέρει τις εντολές του χρήστη στο Λ.Σ. αλλά και τα μηνύματα του Λ.Σ. προς το χρήστη. Το λειτουργικό σύστημα ερμηνεύει τις εντολές του χρήστη μέσω του διερμηνευτή εντολών (command interpreter) ή αλλιώς του φλοιού (shell).
Ιστορική Εξέλιξη των Λειτουργικών Συστημάτων Τα λειτουργικά συστήματα ακολουθούσαν την εξέλιξη των υπολογιστών κάθε εποχής προσαρμοζόμενα: Στις εκάστοτε δυνατότητες του υλικού Στις αντιλήψεις της εποχής για την επικοινωνία ανθρώπου μηχανής.
Ιστορική Εξέλιξη των Λειτουργικών Συστημάτων Τα πρώτα συστήματα (Mainframes) ήταν τεράστια σε όγκο και κόστος. Μόνο μεγάλοι οργανισμοί και εταιρίες μπορούσαν να τους αποκτήσουν. Πρωταρχικός στόχος ήταν η πλήρης εκμετάλλευσή τους για απόσβεση του κόστους. Η «Φιλικότητα στο χρήστη» ήταν άγνωστος όρος εκείνη την εποχή.
Ιστορική Εξέλιξη των Λειτουργικών Συστημάτων Στη συνέχεια τα Λ.Σ. απέκτησαν τη δυνατότητα να εκτελούν πολλά προγράμματα στη σειρά (batch). Κάθε πρόγραμμα υποβάλλονταν με ένα σύνολο διάτρητων καρτών. Στην αρχή τα προγράμματα εκτελούταν με την σειρά εισόδου (FCFS) αλλά στη συνέχεια δόθηκε η δυνατότητα ελέγχου της ροής εκτέλεσης των προγραμμάτων. Έτσι επινοήθηκε ο πολύ-προγραμματισμός και η πολυδιεργασία.
Ιστορική Εξέλιξη των Λειτουργικών Συστημάτων Με την εμφάνιση των τερματικών οι χρήστες μπορούσαν να υποβάλουν και να εκτελούν τα προγράμματά τους από απόσταση. Δημιουργήθηκαν τα συστήματα μερισμού χρόνου και πολλαπλών χρηστών όπου η ισχύς του υπολογιστή μοιράζονταν σε πολλούς ταυτόχρονους χρήστες. Οι χρήστες επικοινωνούν με τον υπολογιστή με γλώσσες εντολών (command languages) που ερμηνεύονται από τον φλοιό (shell) του Λ.Σ.
Ιστορική Εξέλιξη των Λειτουργικών Συστημάτων Από το 1970 αρχίζει η εισαγωγή των MINI υπολογιστών που είναι σημαντικά φθηνότεροι από τα MAINFRAMES δίνοντας έτσι τη δυνατότητα σε περισσότερες εταιρίες και οργανισμούς να τα προμηθευτούν.
Ιστορική Εξέλιξη των Λειτουργικών Συστημάτων Τη δεκαετία του 80 άρχισε η επανάσταση των προσωπικών υπολογιστών. Με κόστος χαμηλό μπορούσαν να γίνουν κτήμα καθενός. Στην αρχή δε δόθηκε βάρος στην υποστήριξη πολλαπλών χρηστών ούτε σε δυνατότητες Multitasking και Multiprogramming. Με ολοένα και περισσότερους μη επαγγελματίες της πληροφορικής να χρησιμοποιούν τους υπολογιστές για ολοένα και περισσότερες χρήσεις, έγινε γρήγορα σαφής η ανάγκη για πιο φιλικά προς το χρήστη λειτουργικά με γραφικά περιβάλλοντα εργασίας και δυνατότητες Multitasking. Δυνατότητες όπως η υποστήριξη πολλαπλών χρηστών, η πολύ-διεργασία, η ικανότητες δικτύωσης που πριν ήταν προνόμιο ακριβών συστημάτων πλέον «κατέβηκαν» στους προσωπικούς υπολογιστές.
Κατηγορίες Λειτουργικών Συστημάτων Ως προς τον αριθμό χρηστών που υποστηρίζουν ταυτόχρονα Ενός Χρήστη (Single User) Πχ MS-DOS, Windows 95,98 Πολλαπλών Χρηστών (Multi-User) Πχ Windows 2000, UNIX. LINUX
Κατηγορίες Συστημάτων Δέσμης (Batch) Δεν υπάρχουν ιδιαίτερες χρονικές απαιτήσεις. Οι εργασίες υποβάλλονται και παραλαμβάνονται τα αποτελέσματα. Συναλλαγών (Transaction) Συνεχής επικοινωνία χρήστη-συστήματος Άμεση απάντηση. Π.χ. συναλλαγές με τράπεζα Διαλογικά ή Αλληλεπιδραστικά Ο χρήστης δίνει εντολές και το σύστημα απαντά Π.χ. Βάση Δεδομένων Χρονομερισμού (Time Sharing) Το σύστημα μοιράζει και χρεώνει τις υπηρεσίες του σε πολλούς χρήστες. Πχ. Κεντρικό σύστημα πανεπ/μιου που χρησιμοποιείται από πολλούς ερευνητές.
Κατηγορίες Συστημάτων Πραγματικού Χρόνου (Real Time) Απαιτείται άμεση απόκριση σε συνήθως ελάχιστο διάστημα Π.χ. Έλεγχος βιομηχανικών διεργασιών, διαστημικές αποστολές Κατανεμημένα Το σύστημα είναι γεωγραφικά διασκορπισμένο αλλά δίνει την εντύπωση ενιαίου συστήματος Με ανοχή σφαλμάτων (fault tolerant) ή Άνευ Παύσης (Non-Stop) Δε σταματάει να λειτουργεί όταν παρουσιαστεί βλάβη Πχ. Τραπεζικές εργασίες, Όργανα Ελέγχου αεροσκαφών
Συστήματα Client - Server 2 - Tier Client Server 3 - Tier Client Application Server DataBase Server
Ερωτήσεις 1. Ποιες είναι οι βασικές αρμοδιότητες ενός Λειτουργικού Συστήματος; 2. Τι σημαίνουν οι όροι Multi-User, Multiprogramming Και «Multitasking ; 3. Ποιες κατηγορίες συστημάτων έχουμε ανάλογα με τις απαιτήσεις των χρηστών; 4. Ποια είναι τα βασικά τμήματα ενός λειτουργικού συστήματος;