λειτουργικά+συστήματα

=**Λειτουργικά Συστήματα**=

=
Όπως γνωρίζουμε, κάθε υπολογιστικό σύστημα αποτελείται (α) από ένα σύνολο συσκευών, (όπως η Κεντρική Μονάδα Επεξεργασίας - ΚΜΕ / CPU, οι μονάδες αποθήκευσης όπως μανγητικοί και οπτικοί δίσκοι, οι εκτυπωτές, το πληκτρολόγιο κλπ), οι οποίες ονομάζονται υλικό του υπολογιστή (hardware), και (β) @λογισμικό(software) το οποίο αποτελείται από το Λειτουργικό Σύστημα και τα προγράμματα εφαρμογής//.// Τα προγράμματα εφαρμογής γράφονται από τους χρήστες-προγραμματιστές και δίνουν εντολές στον υπολογιστή για το πώς θα χρησιμοποιήσει τις συσκευές για την εκτέλεση διαφόρων διαδικασιών που συνδέονται με το υπολογιστικό σύστημα.=====

=
Το Λειτουργικό Σύστημα (ΛΣ) είναι ένα σύνολο προγραμμάτων που λειτουργεί ως σύνδεσμος ανάμεσα στα προγράμματα του χρήστη και το υλικό και καθορίζει τον τρόπο λειτουργίας του υπολογιστικού συστήματος, ελέγχοντας και συντονίζοντας τη χρήση των μονάδων του από τα διάφορα προγράμματα εφαρμογής των χρηστών. Αν φανταστούμε τον υπολογιστή ως ένα ταξί με τους χρήστες και τα προγράμματά τους να αποτελούν τους επιβάτες, τότε το ΛΣ παίζει το ρόλο του οδηγού, χωρίς τη συνεχή παρουσία του οποίου το ταξί είναι άχρηστο.=====

=
1. **Η διευκόλυνση των χρηστών**. Τα ΛΣ υπάρχουν επειδή κάνουν πιο εύκολη τη χρήση των υπολογιστικών συστημάτων και δίνουν τη δυνατότητα σε ανθρώπους με μικρές γνώσεις γύρω από τους υπολογιστές να εκτελέσουν πολύπλοκες εργασίες.=====

=
2. **Η διευκόλυνση των προγραμματιστών**. Χωρίς ΛΣ κάθε πρόγραμμα έπρεπε π.χ. να ελέγχει τακτικά το πληκτρολόγιο για είσοδο από το χρήστη, να γνωρίζει τις ακριβείς εντολές που πρέπει να στείλει στον εκτυπωτή για να τυπώσει κάτι ή να οργανώνει μόνο του το χώρο αποθήκευσης των δεδομένων του σε ένα σκληρό δίσκο. 3. **Η αποδοτική λειτουργία του υπολογιστικού συστήματος**, δηλαδή η όσο το δυνατόν καλύτερη χρησιμοποίηση του υλικού, ώστε να κατανέμεται καλύτερα το υπολογιστικό φορτίο. Το ΛΣ διαθέτει τη «γενική εικόνα» όλων των προγραμμάτων που πρέπει να εκτελεστούν, όλων των χρηστών του υπολογιστικού συστήματος και των αναγκών τους· έτσι, μπορεί να ρυθμίσει καλύτερα πότε και ποια προγράμματα θα εκτελεστούν κλπ.=====

=
Τα περισσότερα ΛΣ, και ιδιαίτερα τα σύγχρονα, είναι οργανωμένα σε επίπεδα (layers).Αυτό σημαίνει ότι κατά τη σχεδίασή τους έχουν διαιρεθεί σε τμήματα, και κάθε τμήμα τους επικοινωνεί μόνο με αυτά που βρίσκονται στο αμέσως ανώτερο ή το αμέσως κατώτερο επίπεδο. Όσα τμήματα χρησιμοποιούν απευθείας το υλικό του υπολογιστή, βρίσκονται στο κατώτερο επίπεδο του ΛΣ. Τα υπόλοιπα τμήματα, που βρίσκονται σε ανώτερα επίπεδα, δεν επικοινωνούν καθόλου με το υλικό, αλλά χρησιμοποιούν τα τμήματα που ανήκουν στο αμέσως κατώτερο επίπεδο.=====

=
Στο χαμηλότερο επίπεδο ανήκουν τα τμήματα του ΛΣ που διαχειρίζονται: 1. **τη μνήμη** 2.**τα υπό εκτέλεση** **προγράμματα** 3.**τις λειτουργίες** **επικοινωνίας με τις** **περιφερειακές** **συσκευές**. Οι λειτουργίες αυτές αποτελούν το κάτω τμήμα των οδηγών συσκευών Ε/Ε (device drivers), ειδικών τμημάτων του ΛΣ που αναλαμβάνουν την επικοινωνία του ΛΣ με τα περιφερειακά.=====

=
Ένας πρώτος τρόπος λειτουργίας του ζαχαροπλαστείου είναι οι πελάτες να αναμένουν σε μια ουρά και να δίνουν με τη σειρά στον ζαχαροπλάστη τις οδηγίες τους για την παρασκευή των γλυκών της προτίμησής τους. Μόνο όταν ολοκληρωθεί η εργασία για ένα πελάτη εξυπηρετείται ο επόμενος. Μια καλύτερη λύση είναι να ομαδοποιούνται πελάτες που θέλουν το ίδιο γλυκό και να εξυπηρετούνται διαδοχικά ώστε να γίνεται καλύτερη χρήση των σκευών. Αυτός ο τρόπος εξυπηρέτησης αντιστοιχεί στα ΛΣ πρώτης γενιάς της δεκαετίας του ’50, τα Λειτουργικά Συστήματα Ομαδικής Επεξεργασίας (batch processing). Στα συστήματα αυτά ο χειριστής του υπολογιστικού συστήματος ομαδοποιούσε τα προγράμματα που υπέβαλλαν οι χρήστες· έτσι το ΛΣ δεχόταν μια ομάδα ομοειδών προγραμμάτων (π.χ. προγραμμάτων COBOL), τα επεξεργαζόταν το ένα μετά το άλλο (με τη σειρά εμφανίσεως) και τύπωνε τα αποτελέσματά τους πάλι με την ίδια σειρά. Τα πρώτα αυτά λειτουργικά συστήματα, παρουσίαζαν τα ακόλουθα βασικά μειονεκτήματα: ♦ **Υποαπασχόληση των συσκευών**: Σε ένα ΛΣ ομαδικής επεξεργασίας δεν ήταν δυνατή η ταυτόχρονη εκτέλεση περισσοτέρων του ενός προγραμμάτων. Έπρεπε πρώτα να τελειώσει ένα πρόγραμμα, για να αρχίσει η εκτέλεση του επομένου προγράμματος της ομάδας. Ένα πρόγραμμα όμως δεν μπορεί να απασχολεί ταυτόχρονα όλες τις μονάδες του Η/Υ, οι οποίες κατά συνέπεια υποαπασχολούνταν για παράδειγμα, η ΚΜΕ απασχολούνταν συνήθως σε ποσοστό μικρότερο του 10%. Εάν ήταν δυνατό να εκτελούνται πολλά προγράμματα ταυτόχρονα, θα μπορούσε σε μια δεδομένη χρονική στιγμή κάθε ένα από αυτά να απασχολεί και διαφορετική μονάδα. Έτσι θα περιοριζόταν ο ανενεργός χρόνος κάποιων μονάδων του υπολογιστή. ♦ **Το χρονικό διάστημα** που μεσολαβεί από τη στιγμή που ο προγραμματιστής θα αφήσει στον υπολογιστή το πρόγραμμά του μέχρι τη στιγμή που θα πάρει τα αποτελέσματα, ονομάζεται χρόνος ανακύκλωσης (turnaround time) και στα ΛΣ ομαδικής επεξεργασίας το διάστημα αυτό ήταν πολύ μεγάλο. Συνήθως τα αποτελέσματα των προγραμμάτων δεν ήταν διαθέσιμα, παρά μόνο αφού είχε ολοκληρωθεί η εκτέλεση όλης της ομάδας. Έτσι ο χρόνος ανακύκλωσης εξαρτιόταν από το χρόνο εκτέλεσης ολόκληρης της ομάδας, ο οποίος μπορεί να είναι π.χ. 50 ή 100 φορές μεγαλύτερος από το χρόνο εκτέλεσης του συγκεκριμένου προγράμματος.=====

=
Η εξυπηρέτηση των πελατών του ζαχαροπλαστείου θα ήταν πιο γρήγορη αν ο υπάλληλος είχε οδηγίες από τον ιδιοκτήτη του ζαχαροπλαστείου να παρασκευάζει περισσότερα από ένα γλυκά ταυτοχρόνως. Κατά τη διάρκεια π.χ. του ψησίματος ενός γλυκού έχει τη δυνατότητα να προετοιμάζει στον αναμίκτη (μίξερ) ένα άλλο, εκμεταλλευόμενος το χρόνο του. Όταν όμως ολοκληρωθεί το ψήσιμο του πρώτου θα τον ειδοποιεί π.χ. ένα κουδουνάκι να διακόψει την προετοιμασία του δευτέρου και να συνεχίσει την παρασκευή του πρώτου γλυκού με το επόμενο στάδιό της. Αυτή την ιδέα οργάνωσης ακολουθούν τα ΛΣ δεύτερης γενιάς (δεκαετίας ’60), //τα Λειτουργικά Συστήματα Πολυπρογραμματισμού// (multiprogramming), στα οποία επιδιώκεται η μείωση του άεργου χρόνου των μονάδων του υπολογιστή και του χρόνου ανακύκλωσης. Η διακοπή μιας λειτουργίας (το κουδουνάκι του ζαχαροπλαστείου) γίνεται με τη δημιουργία ειδικών σημάτων, //των σημάτων διακοπής// (interrupts), τα οποία διακόπτουν την τρέχουσα λειτουργία της ΚΜΕ. Πολλές φορές το ΛΣ Πολυπρογραμματισμού ορίζεται ως το ΛΣ που επιτρέπει σε περισσότερα από ένα προγράμματα να είναι «φορτωμένα» στη μνήμη τού υπολογιστή και να εκτελούνται συγχρόνως. Φυσικά μόνο ένα πρόγραμμα μπορεί να απασχολεί ανά πάσα στιγμή κάθε μονάδα· π.χ. ένα πρόγραμμα εκτελείται από την ΚΜΕ, ένα άλλο διαβάζει από το δίσκο, ένα τρίτο στέλνει δεδομένα στη σειριακή θύρα εξόδου κλπ. Μια πολύ πρακτική υπηρεσία για τους πελάτες του ζαχαροπλαστείου είναι οι τηλεφωνικές παραγγελίες και η κατ’ οίκον διανομή των γλυκών, οι οποίες αντιστοιχούν στην τηλεπεξεργασία που θα δούμε αμέσως μετά. Παράλληλα με τα ΛΣ Πολυπρογραμματισμού αναπτύχθηκαν και συσκευές οι οποίες έδιναν τη δυνατότητα σε περιφερειακά όπως τηλέτυπα, οθόνες, εκτυπωτές κλπ. να επικοινωνήσουν με ένα υπολογιστή μέσω τηλεπικοινωνιακών γραμμών. Έτσι οι περιφερειακές μονάδες δεν ήταν πλέον απαραίτητο να βρίσκονται στον ίδιο φυσικό χώρο με τον υπολογιστή. Τα ΛΣ που διαχειρίζονταν τέτοια υπολογιστικά συστήματα με «απομακρυσμένα» περιφερειακά ονομάζονται Λειτουργικά Συστήματα Τηλεπεξεργασίας. Παρ’ όλα τα πλεονεκτήματα που παρέχουν τα ΛΣ Πολυπρογραμματισμού, παρουσιάζουν και μειονεκτήματα. Ένα απ’ αυτά είναι π.χ. ότι το ίδιο το ΛΣ είναι πλέον ένα πολύπλοκο πρόγραμμα (σε αντίθεση με τα ΛΣ ομαδικής επεξεργασίας που είναι πολύ απλά), το οποίο με τη σειρά του απασχολεί τον υπολογιστή σε βάρος των προγραμμάτων εφαρμογών, και μάλιστα τόσο πιο πολύ, όσο πιο πολύπλοκο είναι.=====

Εργασίες Λειτουργικών Συστημάτων

 * **Εκτέλεση προγραμμάτων.**Ο χρήστης <<διατυπώνει>> στο λειτουργικό σύστημα την επιθυμία του να εκτελεστεί ένα συγκεκριμένο πρόγραμμα.Στη συνέχεια το λειτουργικό σύστημα αναλαμβάνει όλες τις απαραίτητες εργασίες, ώστε το πρόγραμμα από την περιφερειακή μνήμη να φορτωθεί στη κεντρική μνήμη, να εκτελεστεί κάθε εντολή από την ΚΜΕ και να φθάσουν τα αποτελέσματα στο χρήστη.
 * **Λειτουργίες εισόδου/εξόδου.**Ένα πρόγραμμα που εκτελείται είναι δυνατόν να προβάλλει απαίτηση επικοινωνίας με κάποιες περιφερειακές συσκευές εισόδου ή και εξόδου.Οι αναγκαίες ενέργειες για την υλοποιήση αυτής της επικοινωνίας γίνονται από το λειτουργικό σύστημα, π.χ. επικοινωνία με ποντίκι, εύρεση της αρχής ενός αρχείου σε μια συσκευή μαγνητικής ταινίας, απεικόνιση γραφικών στην οθόνη, κλπ.
 * **Διαχείριση του συστήματος αρχείων**.Μεγάλης σημασίας εργασίες, για τις οποίες υπεύθυνο είναι το λειτουργικό σύστημα , είναι αυτές που αφορούν ζητήματα διαχείρισης αρχείων.Τέτοιες λειτουργίες είναι η δημιουργία, η διαγραφή, η τροποποίηση , η μετονομασία , η μεταφορά ενός συγκεκριμένου αρχείου, κλπ.
 * **Ανίχνευση λαθών.**Το λειτουργικό σύστημα πρέπει να εντοπίζει σε κάθε λάθος πιθανές αιτίες και να μεταφέρει στο χρήστη το σωστό μήνυμα.
 * **Κατανομή πόρων.**Το λειτουργικό σύστημα θα πρέπει να αξιολογεί κάθε χρονική στιγμή τα διατυπωμένα από τους χρήστες αιτήματα και να κατανέμει τους διαθέσιμους πόρους κατάλληλα.
 * **Απολογιστικά στοιχεία.**Το λειτουργικό σύστημα θα πρέπει κάθε φορά να διατηρεί στοιχεία από τα οποία να προκύπτει η χρήση των πόρων ανά χρήστη και η εξαγωγή χρήσιμων στατιστικών για τη βελτίωση των επιδόσεων του συστήματος.
 * **Προστασία-Ασφάλεια.**Το λειτουργικό σύστημα θα πρέπει να προσφέρει στο χρήστη προστασία, ώστε να είναι αδύνατο άλλος χρήστης ή το ίδιο το λειτουργικό (σε περίπτωση βλάβης) να αλλοιώσει τα προσωπικά του δεδομένα ή προγράμματα.