Επικοινωνία με τον Υπολογιστή 
(ΠΛΑΝΟ ΜΑΘΗΜΑΤΟΣ) 

ΤΑΣΟΣ ΣΗΜΑΙΟΦΟΡΟΣ 15 ΙΟΥΛΙΟΥ 2002

Αναδημοσιεύεται μετά την ανάκτησή του από το archive.org δείτε την καταγραφή της αρχικής δημοσίευσης.

Οι διάφορες καταστάσεις των διεργασιών και τα γεγονότα που τις μεταβάλλουν.

Περιεχομενα

Έννοια και χαρακτηριστικά του Λ/Σ

Τα βασικά μέρη ενός υπολογιστή.
Τα βασικά μέρη ενός υπολογιστή.

Σχετικές Ερωτήσεις

1. Τι είναι Λειτουργικό Σύστημα;

Λειτουργικό Σύστημα (Operating System) Είναι το βασικό πρόγραμμα που ελέγχει τη λειτουργία του υπολογιστή.

2. Ποια είναι τα βασικά μέρη ενός Η/Υ;

(Βλέπε επάνω, στο σχήμα)

3. Ποιες είναι οι τάσεις στο σχεδιασμό Λ.Σ. από το 1980 και μετά;

Από το 1980 και μετά,κατασκευάστηκαν οι πρώτοι Προσωπικοί Υπολογιστές. Αυτοί είχαν πολύ χαμηλό κόστος, κι έτσι μπορούσε ο κάθε-ένας να αποκτήσει έναν υπολογιστή, έτσι δεν δόθηκε σημασία στη δυνατότητα να εκτελούνται πολλαπλές εργασίες (Multi-Tasking).

`Αρχισε να φαίνεται η ανάγκη για πιο "φιλικούς" προς το χρήστη υπολογιστές. Αυτό είχε σαν αποτέλεσμα τις σύγχρονες μεθόδους επικοινωνίας Χρήστη - Υπολογιστή. (Ποντίκι, Γραφικά κ.α.)

Ιστορική Εξέλιξη των Λειτουργικών Συστημάτων

  • Πρώτη γενιά 1950-1960, Φορτώνουν και ξεφορτώνουν τα προγράμματα για εκτέλεση
  • Δεύτερη γενιά 1960-1965, Πολυπρογραμματισμός (Multiprogramming), Καταμερισμός Χρόνου (Time Sharing), Επεξεργασία Πραγματικού Χρόνου (Real Time Processing)
  • Τρίτη γενιά 1965-1970, Πολυεπεξεργασία
  • Τέταρτη γενιά 1970-Σήμερα, Πολυεπεξεργαστές - Πολλά προγράμματα - Πολλές διεργασίες
  • Πέμπτη γενιά 199?-...

Σχετικές Ερωτήσεις

1.  Ποιες ήταν οι γενεές Λ.Σ. και ποιες καινοτομίες έφεραν;

(Βλέπε επάνω)

Τα σημερινά Υπολογιστικά Συστήματα και τα Λειτουργικά τους

  • Προσωπικός Υπολογιστής (P.C.)
  • Σύστημα Πολλαπλών Χρηστών (multi-user)
  • Τοπικό Δίκτυο Υπολογιστών (L.A.N)
  • Δίκτυο Μεγάλων Αποστάσεων (L.H.N)

Σχετικές Ερωτήσεις

1.  Τι είναι σύστημα Multi-user;

Multi-user ή Σύστημα Πολλαπλών Χρηστών λέμε το σύστημα που μπορεί να χρησιμοποιείται ταυτόχρονα από πολλούς χρήστες οι οποίοι μοιράζονται τις δυνατότητές του.

2 . Τι είναι σύστημα Multitasking;

Multitasking ή Σύστημα Πολυεπεξεργασίας λέμε το σύστημα που μπορεί να εκτελεί Ταυτόχρονα περισσότερες από μια εργασίες (προγράμματα ή μέρη προγράμματος).

3. Τι εννοούμε με τον όρο Μονοπρογραμματισμός;

Λέμε ένα σύστημα Μονοπρογραμματισμού, όταν αυτό δεν μπορεί να εκτελεί ταυτόχρονα περισσότερα από ένα προγράμματα.

4. Ποια η διαφορά ανάμεσα στον Πολυπρογραμματισμό (Multiprogramming) και την Πολυεπεξεργασία (Multiprocessing);

Η διαφορά ανάμεσα στον Πολυπρογραμματισμό και την Πολυεπεξεργασία, βρίσκεται στο ότι ο Πολυπρογραμματισμός όπως μαρτυρά και ο όρος, επιτρέπει την ταυτόχρονη εκτέλεση (ολόκληρων) προγραμμάτων, ενώ στην περίπτωση της Πολυεπεξεργασίας, έχουμε ταυτόχρονη εκτέλεση εργασιών, όχι μόνο (ολόκληρων) προγραμμάτων, αλλά και τμημάτων από προγράμματα.

5. Ποια η διαφορά μεταξύ των όρων Multitasking και Multi-user;

Multitasking ή Σύστημα Πολυεπεξεργασίας λέμε το σύστημα που μπορεί να εκτελεί ταυτόχρονα περισσότερες από μια εργασίες (προγράμματα ή μέρη προγράμματος). Ενώ Multi-user, ή Σύστημα Πολλαπλών Χρηστών λέμε το σύστημα που μπορεί να εξυπηρετεί ταυτόχρονα περισσότερους από έναν χρήστες.

Για να μπορεί ένα σύστημα να χαρακτηρισθεί Multi-user, πρέπει οπωσδήποτε να είναι Multitasking, ενώ δεν ισχύει το αντίθετο.

Χαρακτηρισμός του Λειτουργικού Συστήματος ανάλογα με τους τρόπους επεξεργασίας που υποστηρίζει

  • Κατά Δέσμες (Batch) 
  • Με Συνεχή Επικοινωνία Χρήστη - Συστήματος (On Line)
  • Διαλογική (Interactive)
  • Με Κατανομή Χρόνου (Time Sharing)
  • Πραγματικού Χρόνου (Real Time)
  • Κατανεμημένη (Distributed)
  • Με Ανοχή Σφαλμάτων ή Άνευ Διακοπής (Fault Tolerant)

Σχετικές Ερωτήσεις

1. Πώς χαρακτηρίζονται τα Λ. Σ. ανάλογα με τον τρόπο επεξεργασίας που υποστηρίζουν;

(Η απάντηση βρίσκεται επάνω).

2. Τι σημαίνει ο όρος Καταμερισμός Χρόνου (Time Sharing);

Με τον όρο Time Sharing εννοούμε την δυνατότητα ενός συστήματος να διανέμει την επεξεργαστική του ισχύ σε διάφορες διεργασίες, δίνοντας την δυνατότητα για παράδειγμα να εξυπηρετούνται πολλοί χρήστες ταυτόχρονα.

3. Τι σημαίνει ο όρος Επεξεργασία Πραγματικού Χρόνου (Real Time Processing);

Με τον όρο Real Time Processing εννοούμε την δυνατότητα ενός συστήματος να αποκρίνεται και να επεξεργάζεται τα στοιχεία σε συγκεκριμένο και (πολύ μικρό) χρονικό διάστημα.

4. Ποια η διαφορά μεταξύ Time Sharing και On Line;

Με τον όρο Time Sharing εννοούμε την δυνατότητα ενός συστήματος να διανέμει την επεξεργαστική του ισχύ σε διάφορες διεργασίες, δίνοντας την δυνατότητα για παράδειγμα να εξυπηρετούνται πολλοί χρήστες ταυτόχρονα. Ενώ το On Line σύστημα, διατηρεί συνεχή επικοινωνία μεταξύ του Χρήστη και του Συστήματος γιατί η απόκριση πρέπει να είναι άμεση.

Βασικές Αρχές και Έννοιες στα Λειτουργικά Συστήματα

Το λειτουργικό σύστημα είναι :

Ενδιάμεσος ανάμεσα σε άνθρωπο και μηχανή (Interface)

Ο ρόλος του : 

Διαχείριση δυνατοτήτων και μέσων του υπολογιστικού συστήματος για χρήσιμο σκοπό (Resource Allocation)

Το λειτουργικό σύστημα : 

  • Μεταφέρει εντολές και απαιτήσεις του χρήστη στον υπολογιστή
  • Μεταφέρει τις απαντήσεις του συστήματος
  • Διαχειρίζεται την Κεντρική Μονάδα Επεξεργασίας (CPU)
  • Διαχειρίζεται το χρόνο της Κ. Μ. Ε. (Σε multi-user συστήματα)
  • Διαχειρίζεται τις συσκευές Εισόδου - Εξόδου (I/O)
  • Οργανώνει και Διαχειρίζεται αρχεία
  • Ελέγχει τα προγράμματα και τους χρήστες

Σχετικές Ερωτήσεις

1. Ποιες είναι οι βασικές αρμοδιότητες ενός Λ.Σ.;

(Η απάντηση βρίσκεται επάνω).

Δομή του Υπολογιστικού Συστήματος

Οργάνωση της δομής ενός Υπολογιστικού Συστήματος
Οργάνωση της δομής ενός Υπολογιστικού Συστήματος

Τα σύγχρονα Υπολογιστικά Συστήματα έχουν την παραπάνω οργάνωση. 

Με αυτή την (λογική) οργάνωση, ο χρήστης δεν χρειάζεται να ξέρει πολλά για τη μηχανή (Hardware), αφού πλέον αυτό που βλέπει είναι μόνο το "Περιβάλλον", Το μέρος δηλαδή του λειτουργικού συστήματος που επιτρέπεται να βλέπει, και τις εφαρμογές που χρησιμοποιεί.

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

Σχετικές Ερωτήσεις

1. Γιατί τα σύγχρονα Υπολογιστικά Συστήματα έχουν τη λογική δομή που προαναφέραμε;

Για να δίνουν την εντύπωση στο χρήστη ότι ο υπολογιστής είναι μια μηχανή υψηλού επιπέδου, και να διευκολύνει την εργασία του (Κρύβοντας, ότι είναι δύσκολο και ακατανόητο για το χρήστη)

Ο Πυρήνας του Λ.Σ. (Kernel)

Το πιο χαμηλό επίπεδο του Λειτουργικού Συστήματος είναι το πρόγραμμα που χειρίζεται την "μηχανή". Το πρόγραμμα αυτό λέγεται Πυρήνας

Ο Πυρήνας είναι επιφορτισμένος με ορισμένες δραστηριότητες απαραίτητες για τη λειτουργία του υπολογιστή, αλλά και για την εξυπηρέτηση των χρηστών. Αυτές είναι : 

  • Η Διαχείριση Μνήμης (Storage)
  • Η Διαχείριση των Διεργασιών (Processes)
  • Η Διαχείριση των συσκευών Εισόδου - Εξόδου (I/O Devices)
  • Η Διαχείριση των Αρχείων (File System)

Η επικοινωνία με το χρήστη (User Interface)

Το Λ.Σ. επικοινωνεί με τον χρήστη μέσω ενός προγράμματος που λέγεται Διερμηνευτής Εντολών (Command Interpreter) ή Κέλυφος (Shell). Το πρόγραμμα αυτό αναλαμβάνει την παρακολούθηση του χρήστη, την ερμηνεία των εντολών του και τη μεταβίβαση στα “βαθύτερα” μέρη του Λ.Σ. για εκτέλεση. 

Σχετικές Ερωτήσεις

1. Πώς επικοινωνεί ο χρήστης με το Λ.Σ.;

(Βλέπε επάνω)

Συμβατότητα Λ.Σ. (Compatibility)

Οι μηχανές που λειτουργούν με το ίδιο Λ.Σ. αποτελούν συμβατά συστήματα. Η έννοια της συμβατότητας αναφέρεται κυρίως στη δυνατότητα μεταφοράς προγραμμάτων από το ένα σύστημα στο άλλο.

Σχετικές Ερωτήσεις

1. Πότε δύο συστήματα θεωρούνται συμβατά;

(Βλέπε επάνω)

Μονοπρογραμματισμός - Πολυπρογραμματισμός

Αν ένα σύστημα μπορεί να εκτελέσει ταυτόχρονα περισσότερα από ένα προγράμματα, λέμε ότι είναι σύστημα πολυπρογραμματισμού. Εάν το σύστημα μπορεί να εξυπηρετεί περισσότερους από έναν χρήστες, λέμε ότι έχουμε ένα σύστημα Πολλαπλών Χρηστών (multi-user)

Στην αντίθετη περίπτωση, όταν δηλαδή δεν μπορεί να εκτελέσει ταυτόχρονα παραπάνω από ένα προγράμματα ταυτόχρονα, λέγεται σύστημα μονοπρογραμματισμού και βέβαια δεν μπορεί να υποστηρίξει Πολλαπλούς Χρήστες Single User.

Σχετικές Ερωτήσεις

1. Αν δυο προγράμματα κάνουν κατά 99% υπολογισμούς θα τα ωφελήσει ο πολυπρογραμματισμός; Γιατί;

Ο πολυπρογραμματισμός θα ωφελήσει, ελάχιστα όμως δύο προγράμματα που κάνουν κατά 99% υπολογισμούς και αυτό γιατί οι υπολογισμοί απαιτούν τη χρήση της Κ.Μ.Ε. Γι' αυτό το λόγο το ένα πρόγραμμα πρέπει να περιμένει το άλλο.

2.  Να αναφέρετε τα πλεονεκτήματα και τα μειονεκτήματα του Πολυπρογραμματισμού.

Ο πολυπρογραμματισμός έχει το πλεονέκτημα ότι μειώνει τον συνολικό χρόνο εκτέλεσης των προγραμμάτων γιατί γίνεται καλύτερη αξιοποίηση των μέσων του συστήματος.

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

3. Τι εννοούμε με τον όρο μονοπρογραμματισμός;

(Βλέπε επάνω)

4. Ποια είναι η διαφορά μεταξύ των όρων Multitasking και Multi-user;

Η δυνατότητα ενός συστήματος να εκτελεί ταυτοχρόνως πολλαπλές εργασίες (Multitasking), καθιστά εφικτή την διαχείριση πολλαπλών χρηστών (Multi-user) και αυτό γιατί όλα τα προγράμματα που χρησιμοποιεί ο χρήστης, καθώς και η επικοινωνία του με τον υπολογιστή, αποτελούν από μια εργασία για τον υπολογιστή.

Δηλαδή, εφόσον ο υπολογιστής μπορεί να χειριστεί πολλαπλές διεργασίες, πιθανότατα μπορεί να εξυπηρετεί πολλαπλούς χρήστες.

5. Σε ποια κατηγορία ανήκει το MS-DOS και σε ποια το UNIX;

Το MS-DOS ανήκει στην κατηγορία των SingleUser Λ.Σ. ενώ το UNIX στην κατηγορία των Multitasking - Multi-user.

Διαχείριση Κεντρικής Μονάδας Επεξεργασίας - Εισαγωγικές Έννοιες

Πολυπρογραμματισμός και Διαχείριση Κ.Μ.Ε. (Multiprogramming and CPU Scheduling)

Εργασία ή Job είναι η δουλειά που απαιτεί ο χρήστης από το σύστημα. Μια εργασία μπορεί να αποτελείται από πολλές υπό - εργασίες ή βήματα (Steps).

Εφ' όσον το Λ.Σ. αποδεχθεί την εργασία, μπορεί να δημιουργήσει μια ή περισσότερες Διεργασίες ή Process ή Task. Έτσι η Διεργασία είναι μια υπολογιστική διαδικασία (computation) που μπορεί να εκτελείται, να σταματά στη μέση και να ξαναεκτελείται διαδοχικά.

Σχετικές Ερωτήσεις

1.  Τι είναι Διεργασία (Εξηγήστε περιληπτικά);

Διεργασία είναι μια υπολογιστική διαδικασία (computation) που μπορεί να εκτελείται, να σταματά στη μέση και να ξαναεκτελείται διαδοχικά.

Ένα παράδειγμα είναι κάποιος υπολογισμός. Υποθέτουμε ότι μια διεργασία έχει αναλάβει να εκτελέσει κάποιον υπολογισμό. Εάν κατά την εκτέλεσή του, χρειασθεί και κάποια άλλη παράμετρο, ίσως πρέπει να περιμένει μια άλλη διαδικασία να εκτελεσθεί για να την δώσει. Μετά από αυτό, μπορεί να συνεχίσει η εκτέλεση της διεργασίας που εξυπηρετεί το δικό μας υπολογισμό.

2.  Ποια είναι η διαφορά ανάμεσα στην Εργασία και την Διεργασία;

(Βλέπε επάνω)

Διεργασίες

Καταστάσεις Διεργασιών (Process States)

Κατά τη διάρκεια της εκτέλεσής της, μια διεργασία αλλάζει συνεχώς καταστάσεις. Συγκεκριμένα γεγονότα προκαλούν τη μετάβαση από μια κατάσταση στην άλλη.

  • Όταν η διεργασία εκτελείται στην Κ. Μ. Ε. λέγεται Τρέχουσα (Running)
  • Όταν δεν εκτελείται, και περιμένει τη σειρά της, λέγεται Έτοιμη (Ready)
  • Όταν η διεργασία δεν μπορεί να εκτελεστεί γιατί περιμένει μια εξυπηρέτηση ή κάποιο άλλο γεγονός λέγεται Αναμένουσσα (Blocked)

Η μετάβαση από τη μία κατάσταση στην άλλη, γίνεται όταν συμβούν συγκεκριμένα γεγονότα :

  • Dispatch κάνει την διεργασία από Ready, Running
  • TimeOut λήγει το χρόνο εκτέλεσής της και την κάνει από Running, Ready
  • Block αν η διεργασία πρέπει να περιμένει για κάποιο λόγο αρκετά. Αλλάζει την κατάσταση της διεργασίας από Running se Blocked
  • WakeUp Αλλάζει την κατάσταση της Διεργασίας από Blocked σε Ready.

Τμήματα Διαχειριστή - Κ.Μ.Ε. - Πυρήνας (Kernel)

Χρονοταξινομητής εργασιών (Job Scheduler)

Το πρόγραμμα που επιλέγει ποιες εργασίες θα εκτελεστούν από αυτές που έχουν υποβληθεί στο σύστημα. Δημιουργεί τις διεργασίες

Χρονοταξινομητής διεργασιών (Process Scheduler)

Το πρόγραμμα που επιλέγει ποια διεργασία θα χρησιμοποιήσει την Κ. Μ. Ε. για να εκτελεστεί.

Ελεγκτής Διακίνησης (Traffic Controller)

Το πρόγραμμα που συντονίζει τα μέσα του υπολογιστή. Παρακολουθεί μεταξύ άλλων και την κατάσταση της κάθε διεργασίας.

Σχετικές Ερωτήσεις

1.  Ποια προγράμματα διαχειρίζονται τη ροή των εργασιών στο σύστημα;

(Βλέπε επάνω)

Διαδοχή Εργασιών (Process Scheduling) και Προγραμματισμός της Κ.Μ.Ε. (CPU Scheduling)

Οι διεργασίες προς εκτέλεση επιλέγονται με κάποια βασικά κριτήρια.

  • Να αξιοποιεί τα μέσα του συστήματος για χρήσιμο έργο
  • Να είναι δίκαιο απέναντι στους χρήστες
  • Να μην επιβαρύνει τις μικρές δουλειές εις βάρος των μεγάλων

Για την επιλογή της διεργασίας που θα εκτελεστεί εφαρμόζεται μια πολιτική.

Αλγόριθμοι Διαδοχής Εργασιών

Οι πολιτικές που ακολουθούνται είναι :

  • ROUND ROBIN Κάθε διεργασία εκτελείται για κάποιο χρονικό διάστημα (Quantum)
  • ΑΝΤΙΣΤΡΟΦΑ ΑΠΟ ΤΟ ΥΠΟΛΟΙΠΟ QUANTUM Αν η διεργασία χρησιμοποίησε όλο το Quantum, πάει στο τέλος της λίστας, αν το μισό, στη μέση κ. ο. κ.
  • ΑΝΑΤΡΟΦΟΔΟΤΗΣΗ ΠΟΛΛΩΝ ΕΠΙΠΕΔΩΝ Όταν μπαίνει μια νέα διεργασία, εκτελείται για όσα Quantums όσος είναι ο αριθμός όλων των άλλων διεργασιών, μετά γίνεται κανονικό ROUND ROBIN.
  • ΠΡΟΤΕΡΑΙΟΤΗΤΕΣ Κάθε διεργασία παίρνει μια προτεραιότητα. Εκτελείται η διεργασία με την υψηλότερη.
  • ΠΕΡΙΟΡΙΣΜΕΝΟ ROUND ROBIN Οι διεργασίες τρέχουν μόνο για κάποιο συγκεκριμένο αριθμό Quantums. Μετά τρέχουν μόνο αν δεν υπάρχουν άλλες.
  • ΙΣΟΡΡΟΠΗΣΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ Οι διεργασίες με Ι/Ο παίρνουν προτεραιότητα για να κρατούν τις μονάδες Ι/Ο απασχολημένες.
  • ΠΡΟΝΟΜΙΑΚΗ ΑΝΤΙΜΕΤΩΠΙΣΗ ΤΩΝ INTERACTIVE ΕΡΓΑΣΙΩΝ Δίνεται προτεραιότητα σε εργασίες από τερματικά.
  • ΑΝΑΛΟΓΑ ΜΕ ΤΗΝ ΕΡΓΑΣΙΑ Το σύστημα δίνει προτεραιότητες με σκοπό την καλύτερη αξιοποίηση των μονάδων του ή τους σκοπούς που καθορίζει ο κύριός του
Οι διάφορες καταστάσεις των διεργασιών και τα γεγονότα που τις μεταβάλλουν.
Οι διάφορες καταστάσεις των διεργασιών και τα γεγονότα που τις μεταβάλλουν.

Συγχρονισμός Διεργασιών (Process Synchronization) και Αδιέξοδα (Deadlocks)

Για να εξασφαλιστεί η κανονική λειτουργία του συστήματος απαιτείται συγχρονισμός και συνεργασία των διεργασιών. Γι αυτό το σκοπό υπάρχουν ειδικοί μηχανισμοί.

Το Αδιέξοδο ή "Θανάσιμο Αγκάλιασμα" (Deadlock ή Deadly Embrace)

Συμβαίνει όταν μια διεργασία δεσμεύει το μέσο που χρειάζεται μια άλλη με αποτέλεσμα να μην μπορεί να εκτελεσθεί καμία από τις δύο.

Υπάρχουν δύο βασικές τεχνικές χειρισμού του προβλήματος :

  • Η διεργασία να δηλώνει προκαταβολικά το μέσο που θα χρησιμοποιήσει ώστε το Λ.Σ. να μπορεί να προγραμματίσει την εκτέλεση με ασφάλεια (Αποφυγή - Avoidance)
  • Το Λ.Σ. να μπορεί να διαπιστώσει ότι έχει συμβεί deadlock και να το αντιμετωπίσει δίνοντας αυθαίρετα το μέσο στη μία διεργασία (Διαπίστωση και έξοδος - Detection and Recovery)

Σχετικές Ερωτήσεις

1.  Τι είναι Deadlock; Δώστε ένα παράδειγμα.

Συμβαίνει όταν μια διεργασία δεσμεύει το μέσο που χρειάζεται μια άλλη με αποτέλεσμα να μην μπορεί να εκτελεσθεί καμία από τις δύο.

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

(Μπορείτε εδώ να χρησιμοποιήσετε ένα δικό σας παράδειγμα)

2.  Πώς αντιμετωπίζονται τα αδιέξοδα;

(Βλέπε επάνω)

Αλγόριθμοι Συγχρονισμού Διεργασιών

Σηματοφορείς (Semaphores)

  • Test, Set, ή
  • Wait, Signal

Μηνύματα (Messages)

  • Send, Receive

Αν μια διεργασία εκτελέσει την πράξη RECEIVE και δεν έχει έλθει το μήνυμα, η διεργασία σταματά και περιμένει μέχρι να έλθει. Έτσι δεν μπορεί μια διεργασία να προχωρήσει πέρα από ένα συγκεκριμένο σημείο αν δεν έχει φθάσει η άλλη διεργασία σε κάποιο αντίστοιχο σημείο.

Σχετικές Ερωτήσεις

1.  Τι εννοούμε με τον όρο Σηματοφορείς.

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

2.  Τι εννοούμε με τον όρο Μηνύματα.

Τα Μηνύματα υλοποιούν μια από τις δύο βασικές τεχνικές συγχρονισμού διεργασιών. Είναι ένας μηχανισμός ανταλλαγής πληροφοριών μεταξύ δύο διεργασιών. Οι διεργασίες συγχρονίζονται ανταλλάσσοντας μηνύματα σχετικά με το σημείο που βρίσκονται.

Διαχείριση Μνήμης

Η κεντρική μνήμη του υπολογιστή (RAM) είναι συνήθως περιορισμένη λόγω του υψηλού κόστους της. Γι' αυτό το λόγο αναπτύχθηκαν διάφορες τεχνικές για να πετύχουν την κατά το δυνατόν αποδοτικότερη χρήση της.

Αποκλειστική Διάθεση Μνήμης (Single Continuous Allocation)

Είναι η απλούστερη τεχνική.

Δεν απαιτεί ειδικό Hardware.

Η περίπτωση της Αποκλειστικής Διάθεσης Μνήμης
Η περίπτωση της Αποκλειστικής Διάθεσης Μνήμης

Σχετικές Ερωτήσεις

1.  Τι μέθοδο διαχείρισης μνήμης εφαρμόζει το MS-DOS;

Το MS-DOS εφαρμόζει Αποκλειστική Διάθεση Μνήμης (Single Contiguous Allocation).

Εισαγωγή στον Προλυπρογραμματισμό

Σε συστήματα πολυπρογραμματισμού όπου πολλά προγράμματα βρίσκονται στη αποθηκευμένα στη μνήμη ταυτόχρονα, απαιτείται προστασία της μνήμης από το λειτουργικό σύστημα.

Το πρόγραμμα που εκτελείται δεν πρέπει να έχει τη δυνατότητα να τροποποιεί άλλες θέσεις μνήμης εκτός από αυτές που καταλαμβάνει το ίδιο.

Η απόδοση μνήμης στον Πολυπρογραμματισμό.
Η απόδοση μνήμης στον Πολυπρογραμματισμό.

Η περιοχή της μνήμης που καταλαμβάνει ένα πρόγραμμα ορίζεται από τους καταχωρητές ορίων ()

Προστασία μνήμης στον Πολυπρογραμματισμό

Σχετικές Ερωτήσεις

1.  Γιατί ένα σύστημα πολυπρογραμματισμού δεν μπορεί να εφαρμόσει Αποκλειστική Διάθεση Μνήμης;

Ένα σύστημα πολυπρογραμματισμού δεν μπορεί να εφαρμόζει Αποκλειστική Διάθεση Μνήμης (Single Contiguous Allocation) γιατί με αυτή τη μέθοδο, η μνήμη του συστήματος αποδίδεται σε ένα πρόγραμμα. Αυτό καθιστά αδύνατη τη χρήση δεύτερου προγράμματος και στην ουσία καταργεί την έννοια του πολυπρογραμματισμού.

Στατική Διάθεση Μνήμης (Static Partition Specification)

Κατά τη στατική διάθεση, η μνήμη χωρίζεται σε τμήματα (Partitions) με σταθερό μέγεθος πριν από την εκτέλεση προγραμμάτων. Το κάθε πρόγραμμα πρέπει να καθορίζει πριν από την εκτέλεσή του πόση μνήμη θα χρειαστεί για να του διατεθεί ένα τμήμα αρκετά μεγάλο για να το χωρέσει.

Το μειονέκτημα αυτής της μεθόδου είναι ότι μεγάλο μέρος της μνήμης μένει αχρησιμοποίητο.

Σχετικές Ερωτήσεις

1.  Δείξτε πως δεσμεύουν μνήμη τρία προγράμματα με μεγέθη 1Μ,512Κ, 2Μ χρησιμοποιώντας τις τεχνικές τμηματικής κράτησης μνήμης.

(Βλέπε επάνω)

Δυναμική Διάθεση Μνήμης (Dynamic Partition Specification)

Με τη δυναμική διάθεση τα τμήματα δημιουργούνται κατά την εκτέλεση των προγραμμάτων έτσι ώστε να ταιριάζουν με τις απαιτήσεις τους.

Τα μειονεκτήματα αυτής της μεθόδου είναι ότι απαιτεί πολύπλοκους αλγόριθμους διάθεσης τμημάτων και ότι μετά από κάποια χρήση, μένουν κάποια μικρά κομμάτια μνήμης που δεν μπορούν να χρησιμοποιηθούν. Αυτό λέγεται κατακερματισμός της μνήμης (Memory Fragmentation).

Τμηματική Διάθεση με Αναδιάταξη (Relocatable Partitioned Memory Management)

Με τη μέθοδο αυτή, τα τμήματα μετακινούνται ώστε να μην μένουν μικρά αχρησιμοποίητα κομμάτια και να αποφεύγεται ο κατακερματισμός. Η μετακίνηση αυτή λέγεται Relocation και η υλοποίησή της απαιτεί ειδικούς καταχωρητές (Relocation Registers)

Διάθεση Μνήμης κατά Σελίδες (Paging)

Κατά τη σελιδοποίηση ο χώρος των διευθύνσεων διαιρείται σε μονάδες ίσου μεγέθους που ονομάζονταιΣελίδες. Επίσης ο χώρος των φυσικών (πραγματικών) διευθύνσεων διαιρείται σε μονάδες ίσου μεγέθους που ονομάζονται Page frames.

Το μέγεθος της σελίδας είναι ίσο με το μέγεθος του Page Frame.

Οι σελίδες του προγράμματος μπορούν να φορτωθούν σε οποιοδήποτε σημείο της μνήμης. Το Λ.Σ. όμως πρέπει να ξέρει που βρίσκονται στη μνήμη οι σελίδες του προγράμματος. Γι' αυτό το σκοπό, υπάρχει ο Πίνακας Σελίδων (Page Table).

Το μειονέκτημα της μεθόδου αυτής είναι ότι το μέγεθος του προγράμματος εξακολουθεί να περιορίζεται από το μέγεθος της πραγματικής (φυσικής) μνήμης. 

Διάθεση Μνήμης κατά Ζητούμενες Σελίδες (Demand Paging)

Με την τεχνική αυτή το πρόγραμμα δεν φορτώνεται ολόκληρο στη μνήμη. Φορτώνονται μόνο ορισμένες σελίδες στη μνήμη και οι υπόλοιπες φυλάσσονται στο δίσκο. Κατά την εκτέλεσή του αν χρειαστεί να διαβάσει μια σελίδα που δεν υπάρχει στη μνήμη, την φέρνει στη μνήμη στη θέση μιας άλλης σελίδας που θεωρείται λιγότερο χρήσιμη.

Η απόδοση σελίδων μνήμης κατά απαίτηση.
Η απόδοση σελίδων μνήμης κατά απαίτηση.

Η αναφορά του προγράμματος σε μια σελίδα του, που δεν βρίσκεται στη μνήμη ονομάζεται Σφάλμα Σελίδας (Page Fault)

Το παρακάτω σχήμα μας δείχνει ένα πρόγραμμα που αναφέρεται σε διευθύνσεις 32k, ενώ η φυσική μνήμη είναι μόνο 16k. Έστω ότι το μέγεθος της σελίδας είναι 4k, τότε το πρόγραμμα θα έχει (32k : 4k = 8) 8 σελίδες, ενώ η φυσική μνήμη περιλαμβάνει (16k : 4k = 4) 4 Page frames.

Εικονική Μνήμη (Virtual Memory)

Η κύρια ιδέα που βρίσκεται πίσω από την εικονική μνήμη είναι ότι το μέγεθος ενός προγράμματος και των δεδομένων του, είναι δυνατόν να υπερβαίνει το μέγεθος της φυσικής κύριας μνήμης που είναι διαθέσιμη. Οι διευθύνσεις που δημιουργούνται από τις εντολές του προγράμματος, καθορίζουν τον Εικονικό Χώρο Διευθύνσεων (Virtual Address Space)

Σχετικές Ερωτήσεις

1.  Τι είναι εικονική μνήμη; (εξηγήστε περιληπτικά)

Η εικονική μνήμη είναι η μέθοδος που χρησιμοποιούν τα Λ.Σ. για να υπερβούν το μέγεθος της διαθέσιμης μνήμης. Κατά την εικονική μνήμη, το Λ.Σ. δημιουργεί διευθύνσεις μνήμης, οι οποίες δεν υπάρχουν στην πραγματικότητα. Έτσι τα προγράμματα χρησιμοποιούν περισσότερη μνήμη από αυτή που πραγματικά υπάρχει στο σύστημα.

2.  Ποια είναι τα πλεονεκτήματα της εικονικής μνήμης;

Πλεονεκτήματα της χρησιμοποίησης εικονικής μνήμης είναι η οικονομία που έχουμε στη χρήση της μνήμης, και η απαλλαγή του χρήστη από την ευθύνη να χωρίζει τα προγράμματά του σε τμήματα που να χωρούν στη φυσική μνήμη.

Μέθοδοι Αλλαγής Σελίδας (Page Replacement Policy)

Μεγάλη σημασία για την επιτυχία της σελιδοποίησης έχει η μέθοδος επιλογής της σελίδας που θα φύγει από τη μνήμη όποτε απαιτείται το φόρτωμα μιας νέας σελίδας.

Υπάρχουν δύο γνωστές τεχνικές επιλογής σελίδας :

  • Η FIFO (First In First Out) όπου επιλέγεται αυτή που έχει μείνει στη μνήμη τον περισσότερο χρόνο.
  • Η LRU (Least Recently Used) όπου επιλέγεται αυτή που έχει τον περισσότερο χρόνο να χρησιμοποιηθεί. Η αρχή αυτή ενθαρρύνεται από τις σύγχρονες γλώσσες προγραμματισμού

Διάθεση Μνήμης κατά Ενότητες (Segmentation)

Ένας δεύτερος τρόπος με τον οποίο υλοποιείται η εικονική μνήμη είναι η διάθεση κατά ενότητες (Segmentation). To πρόγραμμα χωρίζεται σε διαφορετικού μεγέθους τμήματα, τα οποία ονομάζονται segments. Σε τέτοια συστήματα οι διευθύνσεις αποτελούνται από δύο στοιχεία, τη διεύθυνση του segment και τη θέση του byte μέσα στο segment. Το Λ.Σ. κρατά ένα πίνακα απεικόνισης ενοτήτων που χρησιμοποιούνται. Τα segments κατά τα άλλα χρησιμοποιούνται σαν σελίδες.

Σχετικές Ερωτήσεις

1.  Τι είναι Segmentation και γιατί χρησιμοποιείται;

Το Segmentation είναι ένας από τους δύο γνωστούς τρόπους με τους οποίους υλοποιείται η Εικονική Μνήμη. Τα χρησιμοποιούμε λόγω των πλεονεκτημάτων που συνεπάγεται η χρήση τους, δηλαδή το ότι τα segments περιλαμβάνουν λογικά συναφή στοιχεία και το ότι μπορούν να μετακινούνται για να μην αφήνουν αχρησιμοποίητη μνήμη.

Διάθεση Ενοτήτων κατά Ενότητες και Σελίδες (Segment Paging)

Σε αρκετά συστήματα χρησιμοποιείται ένας συνδυασμός segmentation και paging. Όπου τα μεταβλητού μεγέθους segments χωρίζονται σε κάποιο αριθμό σελίδων σταθερού μεγέθους. Το σχήμα αυτό συνδυάζει τα πλεονεκτήματα των δυο προηγούμενων μεθόδων. Για την υλοποίησή του χρειάζεται και ένας τρίτος πίνακας που λέγεται πίνακας Συσχετικής Μνήμης (Associative Memory ή Transaction Lookaside Buffer)

Μειονέκτημα αυτής της μεθόδου είναι το αυξημένο κόστος.

Άλλοι Τρόποι Διαχείρισης Μνήμης

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

Η διαδικασία της μετακίνησης τμημάτων κώδικα από τη μνήμη στους δίσκους και το αντίθετο, λέγεται swapping.

Σήμερα τα Overlays χρησιμοποιούνται στο MS-DOS όταν προγραμματίζουμε σε TURBO PASCAL και σε άλλες γλώσσες.

Προγραμματισμός Εισόδου / Εξόδου και Διαχείριση Συσκευών

Γενικά περί Περιφερειακών Μονάδων

Στα σύγχρονα Λ.Σ. έχουμε μεγάλη ροή πληροφοριών από και προς την ΚΜΕ. Δηλαδή γίνεται πάρα πολλή Είσοδος & Έξοδος (Input & Output, I/O).

Επειδή η ΚΜΕ είναι χιλιάδες φορές γρηγορότερη από την όποια μονάδα, συνδέουμε πολλές μονάδες Ι/Ο σε μια ΚΜΕ για να αξιοποιούμε τις δυνατότητές της.

Όλες οι μονάδες - συσκευές που εκτελούν Εισαγωγή ή Εξαγωγή δεδομένων από και προς την ΚΜΕ, ονομάζονται Μονάδες Εισόδου - Εξόδου (I/O Devices)

Χωρίζονται σε :

  • Μονάδες Βοηθητικής μνήμης
  • Μονάδες Επικοινωνίας

Η διαχείριση των μονάδων Ι/Ο γίνεται από το Λ.Σ. Συγκεκριμένα το Λ.Σ. εκτελεί συνεχώς δύο εργασίες :

  • Παρακολουθεί τις μονάδες Ι/Ο μήπως έχουν τίποτα να στείλουν στην ΚΜΕ. Αν κάποια μονάδα ή χρήστης θέλει να στείλει δεδομένα, το Λ.Σ. την εξυπηρετεί.
  • Όταν κάποιο πρόγραμμα θέλει να στείλει δεδομένα (μηνύματα ή αποτελέσματα) σε κάποια μονάδα εξόδου, το Λ.Σ. Εκτελεί την έξοδο (Output).

Σχετικές Ερωτήσεις

1.  Ποιες είναι οι βασικές κατηγορίες μονάδων Εισόδου/Εξόδου; Δώστε ένα παράδειγμα.

Οι μονάδες Εισόδου/Εξόδου χωρίζονται σε Μονάδες βοηθητικής μνήμης, όπως Σκληρός Δίσκος, Μαγνητική Ταινία, και Μονάδες Επικοινωνίας όπως Πληκτρολόγιο, Οθόνη, Εκτυπωτής.

Σύνδεση Περιφερειακών με Κ.Μ.Ε. - Δίαυλος (Channel)

Οι περιφερειακές μονάδες συνδέονται με την ΚΜΕ και την κεντρική μνήμη μέσω του BUS (Λεωφόρος).

Το Bus είναι το κοινό μέσο επικοινωνίας ΚΜΕ, Κεντρικής Μνήμης και Περιφερειακών Μονάδων.

Στους μικρούς υπολογιστές η ΚΜΕ έχει όλο το φόρτο των εντολών που είναι σχετικές με Ι/Ο. Το γεγονός αυτό την επιβαρύνει σημαντικά. Γι' αυτό το λόγο σε μεγάλα συστήματα, υπάρχουν ειδικές μονάδες που επιφορτίζονται αυτό το έργο, οι οποίες λέγονται I/O Processors (I/OP's) ή Δίαυλοι ή Channels.

Τύποι Διαύλων

  • Επιλογείς (Selectors)
  • Πολυπλέκτες (Multiplexors)
  • Πολυπλέκτες κατά Block (Block Multiplexors)

Ελεγκτές

Κάθε μονάδα ελέγχεται από τον αντίστοιχο ελεγκτή της. Ο ελεγκτής είναι μια συσκευή (Κάρτα) η οποία συνδέει την μονάδα Ι/Ο, είτε με τον Δίαυλο (αν υπάρχει), είτε με την ΚΜΕ αν δεν υπάρχει Δίαυλος.

Σχετικές Ερωτήσεις

1.  Ποια είναι η διαφορά μεταξύ Ελεγκτή και Διαύλου;

Η διαφορά μεταξύ Ελεγκτή και Διαύλου, είναι ότι ο Ελεγκτής είναι προσαρμοσμένος στις ανάγκες της συγκεκριμένης μονάδας, ενώ ο Δίαυλος στις ανάγκες της Κ. Μ. Ε Έτσι ο Δίαυλος χειρίζεται πολλές διαφορετικές μονάδες και δίνει στην Κ. Μ. Ε. μια ενιαία εικόνα χαρακτηριστικών λειτουργίας.

Οδηγοί

Το προγραμματάκι που εκτελείται για να χειρίζεται τη μονάδα Ι/Ο, λέγεται Οδηγός (Driver).

Διακοπές

Το Hardware δηλώνει τις λειτουργίες του με χρήση ηλεκτρονικών σημάτων που λέγονται Διακοπές (Interrupts). Οι περιφερειακές μονάδες στέλνουν μία διακοπή όποτε αρχίζουν ή τελειώνουν κάποια εργασία Ι/Ο. Το KERNEL του Λ.Σ. είναι ένα πρόγραμμα που εκτελείται συνέχεια, αντιλαμβάνεται και αντιδρά τις Διακοπές του συστήματος.

Τεχνικές Προκαταχώρησης (Buffering)

Το μεγαλύτερο πρόβλημα στη διαχείριση της Εισόδου/Εξόδου, είναι ότι η ΚΜΕ είναι κατά πολύ γρηγορότερη από τις μονάδες Εισόδου/Εξόδου. Γι' αυτό το λόγο έχουν αναπτυχθεί διάφορες τεχνικές ισοσκέλισης ταχύτητας των δύο μερών :

Η πιο διαδεδομένη τεχνική είναι η Προκαταχώριση ή Buffering

  • Απλή προκαταχώριση
  • Διπλή προκαταχώριση

Κατηγορίες Περιφερειακών Μονάδων

  • Αποκλειστικές Μονάδες (Dedicated Devices)
  • Διαμοιραζόμενες Μονάδες (Shared Devices)
  • Εικονικές Μονάδες (Virtual Devices)

Ετεροχρονιστής Εισόδου / Εξόδου (Spooler)

Το μεγαλύτερο πρόβλημα που καλούνται να λύσουν τα Λ.Σ. είναι ο συγχρονισμός μονάδων με σημαντικά διαφορετικές ταχύτητες. Η λύση είναι να χρησιμοποιήσουμε μια σχετικά γρήγορη μονάδα (π. χ. το δίσκο) και να αποθηκεύσουμε τα στοιχεία μέχρι να τα τυπώσει ο εκτυπωτής. Η τεχνική αυτή λέγεται SPOOLING (Simultaneous Peripheral Operations On-Line).

Χρονοδρομολόγηση Μονάδας Δίσκου (Disk Scheduling)

Φυσική Οργάνωση του Δίσκου

Οι δίσκοι διαθέτουν μαγνητικές επιφάνειες, οι οποίες μπορούν να μαγνητιστούν ή όχι ανά μικρά σημεία. Έτσι κάθε σημείο μπορεί να αποθηκεύει και ένα bit (0 ή 1) ή, αν τα δούμε κατά ομάδες των 8, λέγονται bytes 

Ο δίσκος για να μπορεί να χρησιμοποιηθεί, πρέπει να προετοιμαστεί. Η διαδικασία αυτή λέγεται Διαμόρφωση ή Format. 

Ο δίσκος με το Format χωρίζεται σε : 

Αυλάκια (Tracks)

Ομόκεντροι κύκλοι που ξεκινούν από το κέντρο του δίσκου

Τομείς (Sectors)

Χωρίζουν “κάθετα” τα Αυλάκια

Περιοχές (Blocks)

Ορίζονται από την τομή Tracks και Sectors

Σχετικές Ερωτήσεις

1.  Περιγράψτε τη διαδικασία Format του σκληρού δίσκου.

Το Format είναι μια διαδικασία κατά την οποία το Λ.Σ. οριοθετεί το δίσκο, και τον χωρίζει σε λογικές περιοχές, με σκοπό τον εύκολο εντοπισμό των στοιχείων που θα γραφούν στην επιφάνειά του.

Έτσι ο δίσκος χωρίζεται σε Αυλάκια - ομόκεντρους κύκλους που ξεκινούν από το κέντρο - και Τομείς - “φέτες” κάθετες προς τα αυλάκια. Ύστερα από αυτή τη διαδικασία, ο δίσκος είναι έτοιμος για χρήση.

Τα Blocks

Οι τομείς έχουν το ίδιο μέγεθος σε bytes, έτσι οι πληροφορίες που αποθηκεύονται σε ένα τομέα αποτελούν ένα block. Το μέγεθος του Block είναι χαρακτηριστικό για κάθε Λ.Σ. και μπορεί να είναι 128, 256, 512 ή 1024 bytes. 

Οι κεφαλές των δίσκων διαβάζουν και γράφουν ολόκληρα blocks κάθε φορά, και όχι bytes.

Οι συσκευές που διαβάζουν & γράφουν ανά block, λέγονται Block Devices σε αντίθεση με τις άλλες που λέγονται Character Devices.

Η διεύθυνση ενός block, αποτελείται από τρία μέρη, Επιφάνεια - Αυλάκι - Τομέας (Surface - Track - Sector).

Σχετικές Ερωτήσεις

2.  Τι είναι Block δίσκου και τι διεύθυνση του Block;

Τα στοιχεία που αποθηκεύονται σε ένα Αυλάκι και ένα Τομέα του δίσκου, λέγονται block. Η Διεύθυνση του block έχει τρία μέρη και είναι της μορφής : Επιφάνεια, Αυλάκι, Τομέας (Surface, Track, Sector).

Χειρισμός του Δίσκου από το Λ.Σ.

Όλες οι απαιτήσεις των προγραμμάτων για είσοδο/έξοδο (I/O Requests) καταλήγουν στο Λ.Σ. Οι απαιτήσεις αποτελούνται από τα ακόλουθα στοιχεία : 

  • Εντολή (READ,WRITE)
  • Λογική Μονάδα
  • Λογικό Αριθμό Block
  • Φυσικό Αριθμό Block (τον βρίσκει το Λ.Σ.)
  • Αριθμό Blocks που θα μεταφερθούν

Το Λ.Σ. υπολογίζει τη φυσική διεύθυνση του block που θα γίνει I/O και συγκεντρώνει τις απαιτήσεις αυτές σε ουρές (queues). Οι απαιτήσεις εξυπηρετούνται με κάποια σειρά.

Η καθυστέρηση της εξυπηρέτησης στους δίσκους προκύπτει από τέσσερις παράγοντες :

  • Τον χρόνο αναμονής στην ουρά μέχρι να αρχίσει η εξυπηρέτηση (Wait Time)
  • Τον χρόνο αναζήτησης του Αυλακιού από την Κεφαλή (Seek Time)
  • Το χρόνο περιστροφής του δίσκου μέχρι η κεφαλή να έλθει πάνω από το ζητούμενο block (Latency Time)
  • o  Το χρόνο μεταφοράς των blocks (Transfer Time)

Αυτό που μπορεί να κάνει το Λ.Σ. είναι να εξυπηρετήσει τις αιτήσεις με τέτοια σειρά ώστε να ελαχιστοποιεί τους τρεις πρώτους χρόνους. Οι αλγόριθμοι που κάνουν αυτή τη βελτιστοποίηση χρόνου είναι οι ακόλουθοι :

  • First Come First Served (FCFS)
  • Along The Way (ATW)
  • SCAN
  • Shortest Seek Time First (SSTF)

Καλύτερη μέθοδος είναι η ATW σε συνδυασμό με τη SCAN (UNIX)

Διαχείριση Πληροφοριών

Οι πληροφορίες όποιας μορφής κι αν είναι, αποθηκεύονται σε αρχεία. Έτσι τα αρχεία είναι συλλογές πληροφοριών, οργανωμένων σε ένα σύνολο. Κάθε αρχείο είναι γνωστό με ένα όνομα, το όνομα αρχείου (File Name).

Έννοια του Συστήματος Αρχειοθέτησης (File System)

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

Το Σύστημα Αρχειοθέτησης διατηρεί κάποιες πληροφορίες για τα αρχεία, σε πίνακες ανά μέσο αποθήκευσης.

Σχετικές Ερωτήσεις

1.  Τι είναι το Σύστημα Αρχειοθέτησης;

Το Σύστημα Αρχειοθέτησης είναι μια συγκεκριμένη Λογική Οργάνωση δίσκων μέσα στην οποία κατανέμονται και ομαδοποιούνται τα αρχεία.

Το Σύστημα Αρχείων είναι σημαντικότατο μέρος του Λ.Σ. 

Κατάληψη και Απελευθέρωση Χώρου στο Δίσκο

Τα περιεχόμενα ενός αρχείου δεν αποθηκεύονται σε συνεχόμενα blocks στο δίσκο, για λόγους καλύτερης εκμετάλλευσης του χώρου. Παρ’ όλα αυτά το σύστημα μας παρουσιάζει μια συνεχή εικόνα του αρχείου.

Αυτόματη Παραχώρηση Blocks (Automatic Allocation)

Το Λ.Σ. διατηρεί πίνακες με πληροφορίες για όλα τα ελεύθερα blocks του δίσκου και παραχωρούν τον κατάλληλο αριθμό blocks, όταν πρέπει να γραφεί ένα αρχείο .

Δυναμική Παραχώρηση Blocks (Dynamic Allocation)

Με την τεχνική αυτή όταν ένα αρχείο δημιουργείται, το Λ.Σ. του δίνει μόνο ένα block. Όταν στη συνέχεια γεμίζει με δεδομένα, το Λ.Σ. του δίνει blocks από το δίσκο, συνδέντάς τα με μία απλή συνδετική λίστα.

Το μειονέκτημα της μεθόδου αυτής είναι ότι ο χώρος του δίσκου τελειώνει κάποια στιγμή απροειδοποίητα.

Υπάρχουν κι άλλες τεχνικές δυναμικής παραχώρησης blocks, εκτός από τη σύνδεση μεταξύ τους με λίστα:

  • Στο DOS η κατανομή των blocks σε αρχεία βρίσκεται στον Πίνακα Κατανομής Αρχείων (File Allocation Table - FAT) - ένα κρυφό αρχείο που βρίσκεται σε κάθε μέσο αποθήκευσης.
  • Στο VM/370 κρατιέται ένας πίνακας όπου υπάρχει ένα 0 για κάθε ελεύθερο block και ένα 1 για κάθε δεσμευμένο (bit-map)

Σχετικές Ερωτήσεις

1.  Περιγράψτε τις τεχνικές Παραχώρησης Blocks που γνωρίζετε.

(Βλέπε Επάνω)

Απαιτήσεις από ένα Απλό Σύστημα Αρχειοθέτησης

Συμβολικό Σύστημα Αρχειοθέτησης (Symbolic File System)

Αναφέρεται στον τρόπο χρήσης των ονομάτων για ανεύρεση και χρήση αρχείων.

Βασικό Σύστημα Αρχειοθέτησης (Basic File System)

Αναφέρεται στην οργάνωση και κατανομή των αρχείων σε σύνολα με σκοπό την ευκολότερη ανεύρεση και χρήση τους.

Έλεγχος Πρόσβασης Αρχειοθέτησης (Access Control)

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

Λογικό Σύστημα Αρχειοθέτησης (Logical File System)

Αναφέρεται στην λογική δομή των αρχείων, με σκοπό την καλύτερη χρησιμοποίησή τους από τις εφαρμογές (Records, Indexes, Sequential/Random Access).

Φυσικό Σύστημα Αρχειοθέτησης (Physical File System)

Αναφέρεται στην πραγματική (φυσική) οργάνωση των αρχείων κατά την αποθήκευσή τους σε μαγνητικά μέσα.

Σχετικές Ερωτήσεις

1.  Σε τι χρειάζεται το κλείδωμα (locking) των αρχείων;

Με το κλείδωμα ενός αρχείου, περιορίζουμε την πρόσβαση σε αυτό, με σκοπό να αποτρέψουμε την απόλειά του λόγω λάθους ή μη εξουσιοδοτημένης πρόσβασης.

2.  Τι είναι το Συμβολικό Σύστημα Αρχειοθέτησης;

(Βλέπε Επάνω)

Πίνακας Περιεχομένων Δίσκου (Directory)

Η Οργάνωση ενός ιεραρχικά δομημένου συστήματος αρχείων
Η Οργάνωση ενός ιεραρχικά δομημένου συστήματος αρχείων

Σχετικές Ερωτήσεις

1.  Τι είναι Directory και τι Subdirectory.

Ο όρος Directory ή κατάλογος, αναφέρεται στον τρόπο με τον οποίο ομαδοποιούμε τα αρχεία στο δίσκο, ώστε να γίνεται ευκολότερα η ανεύρεσή τους. Subdirectory ή Υποκατάλογος, λέγεται ένας κατάλογος που περιέχεται μέσα σε έναν άλλο. Οι κατάλογοι μπορούν να περιέχουν είτε Αρχεία, είτε Καταλόγους.

2.  Περιγράψτε τη διαδικασία Format του σκληρού δίσκου.

Το Format είναι μια διαδικασία κατά την οποία το Λ.Σ. οριοθετεί το δίσκο, και τον χωρίζει σε λογικές περιοχές, με σκοπό τον εύκολο εντοπισμό των στοιχείων που θα γραφούν στην επιφάνειά του.

Έτσι ο δίσκος χωρίζεται σε Αυλάκια - ομόκεντρους κύκλους που ξεκινούν από το κέντρο - και Τομείς - “φέτες” κάθετες προς τα αυλάκια. Ύστερα από αυτή τη διαδικασία, ο δίσκος είναι έτοιμος για χρήση.

Τα Blocks

Οι τομείς έχουν το ίδιο μέγεθος σε bytes, έτσι οι πληροφορίες που αποθηκεύονται σε ένα τομέα αποτελούν ένα block. Το μέγεθος του Block είναι χαρακτηριστικό για κάθε Λ.Σ. και μπορεί να είναι 128, 256, 512 ή 1024 bytes.

Οι κεφαλές των δίσκων διαβάζουν και γράφουν ολόκληρα blocks κάθε φορά, και όχι bytes.

Οι συσκευές που διαβάζουν & γράφουν ανά block, λέγονται Block Devices σε αντίθεση με τις άλλες που λέγονται Character Devices.

Η διεύθυνση ενός block, αποτελλείται από τρία μέρη, Επιφάνεια - Αυλάκι - Τομέας (Surface - Track - Sector).

Σχετικές Ερωτήσεις

3.  Τι είναι Block δίσκου και τι διεύθυνση του Block;

Τα στοιχεία που αποθηκεύονται σε ένα Αυλάκι και ένα Τομέα του δίσκου, λέγονται block. Η Διεύθυνση του block έχει τρία μέρη και είναι της μορφής : Επιφάνεια, Αυλάκι, Τομέας (Surface, Track, Sector).