You are on page 1of 23

ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

ΛΟΓΙΣΜΙΚΟ
• κατηγορίες λογισµικού: Λογισµικό Συστήµατος, Λογισµικό Εφαρµογών, Βοηθητικό Λογισµικό

Πραγµατική µηχανή

ιδεατή µηχανή

Λογισµικό Συστήµατος
• Τα µέρη του Λογισµικό Συστήµατος είναι:
• Το Λειτουργικό Σύστηµα που προσφέρει:
– ∆ιαχείριση κεντρικής µονάδας επεξεργασίας (ΚΜΕ) µε Χρονοπρογραµµατισµό (επιλέγει την
εργασία που θα εκτελεστεί από την CPU)
– ∆ιαχείριση Μνήµης
– ∆ιαχείριση Συστήµατος αρχείων
– ∆ιαχείριση συσκευών Εισόδου/Εξόδου
– Ασφάλεια και προστασία συστήµατος
– ∆ιεπαφές χρήστη µε το υπολογιστικό σύστηµα
• Τα Βοηθητικά Προγράµµατα (Utilities), Οι Συµβολοµεταφραστές (Assemblers), Οι Μεταφραστές
και ∆ιερµηνείς Γλωσσών Υψηλού Επιπέδου (Compilers - Interpreters), Τα Προγράµµατα
Σύνδεσης (Linkers) του παραγόµενου αντικειµενικού κώδικα µε τα προγράµµατα βιβλιοθήκης
του συστήµατος, Τα Προγράµµατα Ανίχνευσης Σφαλµάτων (Debuggers), Οι Βιβλιοθήκες
υποπρογραµµάτων (Libraries)

Λογισµικό Εφαρµογών
• Το Λογισµικό Εφαρµογών αποτελείται από :
– Γλώσσες προγραµµατισµού υψηλού επιπέδου, όπως C, Basic.
– Γλώσσες προγραµµατισµού χαµηλού επιπέδου όπως η Assembly.
– Προγράµµατα Επεξεργασίας κειµένου (Word Processing)
– Προγράµµατα Επιτραπέζιας τυπογραφίας (DTP)
– Προγράµµατα Λογιστικών φύλλων (Spreadsheet)
– Προγράµµατα Βάσεων ∆εδοµένων (Data Base)
– Προγράµµατα Σχεδίασης & τρισδιάστατης απεικόνισης (CAD, 3D)
– Προγράµµατα Επεξεργασίας εικόνας, ή ήχου, ή video ή Πακέτα επιστηµονικών περιοχών κ.α.

Βοηθητικό Λογισµικό
• Το Βοηθητικό Λογισµικό αποτελείται από Βοηθητικά προγράµµατα που διευκολύνουν συχνές
εργασίες του χρήστη όπως προγράµµατα:
– συµπίεσης αρχείων, ανίχνευσης ιών, µεταφοράς αρχείων σε περιφερειακές µονάδες,
διαµόρφωσης δίσκου (formatting), συνένωσης και ταξινόµησης αρχείων, κλπ

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 1
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

• Το λειτουργικό σύστηµα ως ιδεατή µηχανή


– Αποµονώνει τον χρήστη-προγραµµατιστή από την πολυπλοκότητα του υπολογιστή
– ∆ιευκολύνει τη µεταφερσιµότητα εφαρµογών.
– Παρουσιάζει στις εφαρµογές ιδεατό υλικό

Πραγµατική µηχανή

ΥΛΙΚΟ
ΥΛΙΚΟ

ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ

Ιδεατή µηχανή

• Το λειτουργικό σύστηµα ως διαχειριστής πόρων (resource manager).


– Επιτρέπει τον πολυπρογραµµατισµό
– Επιτρέπει τη χρήση από πολλούς χρήστες
– Επιβάλλει πολιτικές διαχείρισης και ασφάλειας

Λειτουργικό Σύστηµα
• Λειτουργικό Σύστηµα (Operating System) είναι το σύνολο των προγραµµάτων που παρέχει:
• Υπηρεσίες στους χρήστες
– Πρόσβαση στο υλικό και λογισµικό µέσω υψηλού επιπέδου διεπαφών χρήστη (∆ιερµηνέας
εντολών , GUI)
• ∆ιαχείριση ασφάλειας και προστασίας συστήµατος
– Άδεια πρόσβασης στο σύστηµα
– δικαιώµατα πρόσβασης στα αρχεία
– Επίπεδα πρόσβασης συστήµατος
– Κρυπτογράφηση
• Αποτελεσµατική κατανοµή των πόρων συστήµατος (µνήµη, CPU, περιφερειακές συσκευές)
– Πολυπρογραµµατισµό µε ∆ιαχείριση ΚΜΕ (χρονοδροµολόγηση CPU)
– ∆ιαχείριση συσκευών Εισόδου/Εξόδου
– Αποθήκευση σε συσκευές δευτερεύουσας µνήµης (διαχειριστής αρχείων)
– Κατανοµή της µνήµης (διαχειριστής µνήµης)
• Ασφαλή κατανοµή των πόρων συστήµατος
– Επιβάλλει πολιτικές διαχείρισης αποφεύγοντας συγκρούσεις και σφάλµατα

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 2
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

• Γνωστά Λειτουργικά Συστήµατα (Operating Systems)


– DOS
– Windows 95, 98, ME
– Windows NT, 2000
– Windows XP
– Linux,
– Unix,
– MacOS

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


• Συστήµατα µαζικής επεξεργασίας (batch processing)
– οµαδοποίηση εργασιών (π.χ. προγραµµάτων COBOL) και σειριακή εκτέλεση
– Σειριακή έξοδος των αποτελεσµάτων
– µεταφορά κάρτες-ταινίες και ταινίες-εκτυπωτής.
• Συστήµατα Πολυπρογραµµατισµού (multiprogramming)
– Πολλαπλά προγράµµατα (εκτέλεση – αναµονή - έτοιµο προς εκτέλεση) στη µνήµη, µε
παράλληλη απασχόληση των υποµονάδων
– υλοποιείται µέσα από ένα σύστηµα διακοπών (interrupts)
• Ετεροχρονισµός εισόδου ή εξόδου (SPOOLing-Simultaneous Peripheral Operation On Line) )
– Είσοδος ή έξοδος πρώτα στο δίσκο
– Π.χ. εισαγωγή εργασιών από δίσκο και εκτύπωση αποτελεσµάτων
• Συστήµατα Καταµερισµού Χρόνου (timesharing)
– Εξυπηρέτηση πολλών χρηστών από τερµατικά
– καταµερισµός του χρόνου στις διεργασίες
– Χρονιστής (timer) δηµιουργεί σε τακτά διαστήµατα σήµατα διακοπής (interrupt)
• ∆ιαλογική επεξεργασία (interactive processing) (Unix, CP/M, MS-DOS)
– πυρήνας (kernel) και Κέλυφος (shell) ΛΣ
• Γραφική επικοινωνία µε το χρήστη (Windows 95, NT)
– Γραφικά περιβάλλοντα χρήστη (GUI)

• Στα σύγχρονα λειτουργικά συστήµατα συνδυάζονται οι παραπάνω µέθοδοι


• Συστήµατα πολυεπεξεργασίας (Multiprocessing /parallel processing)
– αναφέρεται σε συστήµατα όπου ο υπολογιστής έχει περισσότερες από µία ΚΜΕ
• Συστήµατα δικτύων
– Peer-to-peer (οµότιµα), dedicated server systems

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 3
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

∆οµή Λειτουργικού Συστήµατος


• Ένα πολύπλοκο λειτουργικό σύστηµα τεµαχίζεται σε ένα σύνολο από ανεξάρτητα τµήµατα.
• Κάθε τµήµα Α «χτίζεται» πάνω από ένα άλλο Β, χρησιµοποιώντας τις λειτουργίες που
παρέχονται από το Β.
• Τα κατώτερα τµήµατα δεν γνωρίζουν, και δεν εξαρτώνται από, την ύπαρξη των ανώτερων
τµηµάτων.
• Αλλαγές σε ένα τµήµα Α δεν επηρεάζουν ποτέ το:
– Τµήµα που βρίσκεται από κάτω.
– Τµήµα που βρίσκεται από πάνω, εφόσον δεν αλλάζουν οι λειτουργίες του τµήµατος Α

Χρήστες-
Χρήστες-εφαρµογές
∆ιερµηνέας εντολών -GUI
∆ικτύωση

Σύστηµα αρχείων-διαχειριστής αρχείων

Χρονοπρογραµµατισµός διεργασιών
∆ιαχειριστής µνήµης
Χειριστής διακοπών -
καταµερισµού χρόνου

Οργάνωση Λειτουργικού Συστήµατος


• Γενικές αρχές οργάνωσης από το υψηλότερο στο χαµηλότερο επίπεδο
– τα προγράµµατα - εφαρµογές
– To User Interface (διερµηνέας εντολών ή GUI)
– Το σύστηµα και η διαχείριση αρχείων, η διαχείριση δικτύου κλπ
– το άνω τµήµα των οδηγών Ε/Ε (διαχείριση Εισόδου/Εξόδου ανεξάρτητα από τα τεχνικά
χαρακτηριστικά της συσκευής)
– η διαχείριση µνήµης, η διαχείριση διεργασιών (τα υπό εκτέλεση προγράµµατα) και οι οδηγοί
περιφερειακών συσκευών (λειτουργίες επικοινωνίας του ΛΣ µε τους ελεγκτές Ε/Ε)
– το hardware

• Κάθε επίπεδο προσφέρει και ένα σύνολο από συναρτήσεις που µπορούν να καλούνται από
τους προγραµµατιστές (κλήσεις συστήµατος)
• Η υλοποίηση του συνόλου αυτών των συναρτήσεων συνήθως χαρακτηρίζεται ως ο πυρήνας
του λειτουργικού (kernel).

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 4
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

Η έννοια της ∆ιεργασίας


• Τα εκτελούµενα προγράµµατα αποτελούν ανεξάρτητες οντότητες για το ΛΣ και ονοµάζονται
διεργασίες (processes).
– ∆ιεργασία: ένα αυτόνοµο τµήµα προγράµµατος υπό εκτέλεση (στιγµιότυπο της εκτέλεσής του)
– Η εναλλαγή από τη µια διεργασία στην άλλη ονοµάζεται µεταγωγή περιβάλλοντος.
• Πρόγραµµα: παθητική οντότητα.
– Ένα δυαδικό αρχείο στο δίσκο
• ∆ιεργασία: ενεργητική οντότητα. Η ενεργοποίηση ενός προγράµµατος που περιλαµβάνει:
– το σύνολο των εντολών του προγράµµατος
– τα δεδοµένα του προγράµµατος
– το δείκτη εντολών (µετρητής προγράµµατος)
– τα περιεχόµενα του δείκτη στοίβας και όλων των άλλων καταχωρητών
– Τους συσχετισµένους µε αυτή πόρους συστήµατος (µνήµη, αρχεία, κλπ)
• Ένα πρόγραµµα µπορεί να ενεργοποιηθεί πολλαπλές φορές.
– Π.χ. «ανοίγουµε» πολλά Χ terminals (Unix), ή explorers (Windows).
• Κάθε ενεργοποίηση έχει την δικιά της µνήµη

∆ιεργασίες
• Στην Οµαδική επεξεργασία (Batch processing) µία διεργασία από την οµάδα εκτελείται σε σειρά
• Στα λειτουργικά πολύ-προγραµµατισµού (multi-processing), σε µία εκάστοτε χρονική στιγµή,
µπορούµε να έχουµε πολλές διεργασίες
– Μία διεργασία µπορεί να απασχολεί κάθε µονάδα του Η/Υ (ΚΜΕ, δίσκος, εκτυπωτής.)
• Ένα λειτουργικό µε καταµερισµό χρόνου µοιράζει τον χρόνο της CPU συνήθως σε ίσα χρονικά
διαστήµατα
– Στην αρχή κάθε χρονικού διαστήµατος, επιλέγεται βάσει κάποιας σειράς µία από τις διεργασίες,
και εκτελούνται τόσες εντολές έως ότου παρέλθει το χρονικό αυτό διάστηµα.
– Η διαδικασία αυτή επαναλαµβάνεται
• Η επίδοση της εκτέλεσης των διαφόρων διεργασιών από ένα ΛΣ εξαρτάται από τον τύπο του
ΛΣ, αλλά επηρεάζεται και από τις απαιτήσεις των διεργασιών

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 5
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

• Οι διεργασίες στο λειτουργικό σύστηµα Windows NT

• Οι διεργασίες στο λειτουργικό σύστηµα Dos


– µία κύρια διεργασία προγράµµατος, πολλές µόνιµες στη µνήµη. Εντολή mem

• Οι διεργασίες στο λειτουργικό σύστηµα Unix


– εντολή ps (process status).

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 6
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

Ελαφρές ∆ιεργασίες - Νήµατα


• Όταν οι ∆ιεργασίες πρέπει να µοιράζονται διάφορα στοιχεία του προγράµµατος, όπως π.χ.
µεταβλητές, µπορεί να χρησιµοποιηθεί και ένα εναλλακτικό είδος διεργασιών:
– οι ελαφρές διεργασίες (lightweight processes) ή νήµατα εκτέλεσης (threads of execution) ή
απλούστερα νήµατα (threads).
• Τα νήµατα έχουν πολλές οµοιότητες µε τις διεργασίες και µια βασική διαφορά:
– χρησιµοποιούν από κοινού ένα τµήµα µνήµης, στο οποίο έχουν όλα πρόσβαση.
∆ιεργασία ∆ιεργασία
Νήµα Νήµα Νήµα Νήµα Νήµα
1 2
1 2 3 4 5

Μνήµη Μνήµη
1 2
Μνήµη Μνήµη
1 2

• Καταµέτρηση ∆ιεργασιών (Processes) και νηµάτων (Threads) στα Windows

Οι λίστες καταστάσεων διεργασιών του ΛΣ


• Οι διεργασίες χωρίζονται σε:
– Στη διεργασία που εκτελείται (running).
– διεργασίες που περιµένουν µπλοκαρισµένες σε λίστα αναµονής για Είσοδο/Έξοδο
– διεργασίες που περιµένουν σε λίστα αναµονής έτοιµες για εκτέλεση (ready) από την CPU
• Για την επιλογή της επόµενης διεργασίας προς εκτέλεση, επιλέγεται πάντα µία διεργασία που
βρίσκεται στην κατάσταση ready . Η εναλλαγή από τη µια διεργασία στην άλλη ονοµάζεται
µεταγωγή περιβάλλοντος
– Λειτουργία P Ƶπλοκάρισµα διεργασίας
– Λειτουργία V Æαπελευθέρωση διεργασίας

Τρέχουσα
(running) Λειτουργία P
Κλήση Ε/Ε
Μεταγωγή
ή συµβάντος
περιβάλλοντος

Έτοιµη Μπλοκαρισµένη
(ready) (Σε αναµονή για Ε/Ε
ή κάποιο συµβάν)

Λειτουργία V
Ολοκλήρωση Εισόδου/Εξόδου
ή συµβάντος

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 7
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΛΕΙΤΟΥΡΓΙΕΣ


• Το Λειτουργικό Σύστηµα προσφέρει:
– ∆ιεπαφές χρήστη µε το υπολογιστικό σύστηµα
– Ασφάλεια και προστασία συστήµατος
– Αποτελεσµατική κατανοµή των πόρων συστήµατος µε Πολυπρογραµµατισµό και
χρονοδροµολόγηση CPU
– Ασφαλή κατανοµή πόρων
– ∆ιαχείριση Μνήµης
– ∆ιαχείριση Συστήµατος αρχείων
– ∆ιαχείριση συσκευών Εισόδου/Εξόδου

Χρήστες-
Χρήστες-εφαρµογές
∆ιερµηνέας εντολών -GUI
∆ικτύωση

Σύστηµα αρχείων-
αρχείων-διαχειριστής αρχείων
Χρονοπρογραµµατισµός διεργασιών
∆ιαχειριστής µνήµης
Χειριστής διακοπών -
καταµερισµού χρόνου
Υλικό

∆ΙΕΠΑΦΕΣ ΧΡΗΣΤΗ (USER INTERFACE) ΜΕ


ΤΟ ΥΠΟΛΟΓΙΣΤΙΚΟ ΣΥΣΤΗΜΑ
• Κέλυφος ΛΣ (OS "shell") µε ∆ιερµηνέα γραµµής εντολών (command interpreter)
– Π.χ. στο Unix από την προτροπή κελύφους:

> cd /usr/prof/you/geo101
• Γραφικά περιβάλλοντα χρήσης (Graphical user interface -GUI) µε
– εικονίδια, πτυσσόµενα µενού εντολών, κυλιόµενα παράθυρα, πλαίσια διαλόγου
– Π.χ. MS Windows, Mac Interface, X-Windows

Word-
Word-Processor

• Word-
Word- Basic,Pascal,C
processing
• Programming
• File
OS File System
management User
• Games Interface Games
• Networking
• Etc…. E-mail

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 8
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

ΑΣΦΑΛΕΙΑ ΚΑΙ ΠΡΟΣΤΑΣΙΑ ΣΥΣΤΗΜΑΤΟΣ


• Άδεια πρόσβασης στο σύστηµα (Log in permissions) µε user name και password

• ∆ικαιώµατα χρήσης στα αρχεία (File permissions)


read/write/execute

• Επίπεδα πρόσβασης συστήµατος


owner, group, other

• Κρυπτογράφηση
Π.χ. 01000001 01000010 01000011
A B C
– Μετά από κάποιες µαθηµατικές λειτουργίες στον κώδικα του κειµένου ABC, π.χ. αριστερή
ολίσθηση, θα είναι κάτι διαφορετικό

ΑΠΟΤΕΛΕΣΜΑΤΙΚΗ ΚΑΤΑΝΟΜΗ ΠΟΡΩΝ


• Έστω ο παρακάτω κώδικας:
While j < 10
While (PrinterStatus == ‘busy’)
Wait
Print pagej
j=j+1
• Χρόνος επεξεργασίας για το βρόγχο 1/1000 sec
• Χρόνος εκτύπωσης για κάθε σελίδα 0.5 min
• Πόσο θα αδρανήσει ο επεξεργαστής?
• ΛΥΣΗ
• Εκτέλεση άλλου προγράµµατος όσο το πρώτο περιµένει για τον εκτυπωτή:
– Πολυπρογραµµατισµός (Multiprogramming)
• Η ίδια προσέγγιση χρησιµοποιείται για όλες τις αναµονές συσκευών Εισόδου/Εξόδου :
printer, display, hard-drives, network, κλπ.

Χρονοπρογραµµατιστής διεργασιών
• ∆ιατηρεί λίστες διεργασιών (ουρές αναµονής)
– Λίστα για τις έτοιµες διεργασίες
– Λίστα για τις µπλοκαρισµένες διεργασίες που βρίσκονται σε αναµονή

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 9
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

• ∆ιεργασία: κάθε εργασία που χρειάζεται την CPU


Σε αναµονή Έτοιµη Τρέχουσα
Χρόνος t Β Α
C
D

Χρόνος t +1 A C B
D

Τρέχουσα: η διεργασία που εκτελείται (running) στον επεξεργαστή


Έτοιµη: διεργασίες φορτωµένες στη Μνήµη και έτοιµες προς εκτέλεση
Σε αναµονή: διεργασίες που δεν µπορούν να εκτελεστούν, περιµένουν για Είσοδο/Έξοδο ή
κάποιο άλλο χρονοβόρο γεγονός (π.χ. σε µια εντολή εισόδου τιµής µιας
µεταβλητής INPUT a; ο επεξεργαστής δεν περιµένει το χρήστη να εισάγει κάτι εάν
υπάρχουν και άλλες διεργασίες για εκτέλεση)

Χρονοπρογραµµατισµός διεργασιών
• Χρονοδροµολόγηση (ή χρονοπρογραµµατισµός)
– Η λειτουργία των ΛΣ πολύπρογραµµατισµού που λαµβάνει αποφάσεις σχετικά µε την ανάθεση
του χρόνου της CPU στις διάφορες διεργασίες
• Γίνεται σε δύο ανεξάρτητα επίπεδα
– Στο πρώτο, τα προγράµµατα που πρέπει να εκτελεστούν βρίσκονται αποθηκευµένα σε κάποια
µονάδα µαζικής αποθήκευσης.
– Στο δεύτερο, εµπλέκονται οι διεργασίες ως αποτέλεσµα της εκτέλεσης των προγραµµάτων από
το πρώτο επίπεδο, οι οποίες:
•Είναι «φορτωµένες» πλέον στην κύρια µνήµη και
•Είναι καταχωρηµένες στη λίστα έτοιµων διεργασιών.

• Υπάρχουν δύο βασικοί χρονοδροµολογητές:


• Ο µακροχρόνιος χρονοδροµολογητής εργασιών (task scheduler) για το πρώτο επίπεδο
– Καθορίζει από όλα τα προγράµµατα που έχουν υποβάλει οι χρήστες ποια θα εισέλθουν στο
σύστηµα για εκτέλεση.
• Ο βραχυχρόνιος χρονοδροµολογητής ΚΜΕ (CPU scheduler) για το δεύτερο επίπεδο
– Επιλέγει, σε τακτά χρονικά διαστήµατα (π.χ. 10msec), από τη λίστα έτοιµων διεργασιών την
επόµενη διεργασία προς εκτέλεση από την CPU

Χρονοδροµολογητές
• Βασικές διαφορές χρονοδροµολογητών (schedulers)
• µακροχρόνιος χρονοδροµολογητής (task scheduler)
– Ποια νέα εργασία θα εισέλθει στην ουρά των έτοιµων για εκτέλεση
– Χρησιµοποιείται κυρίως για να διατηρείται σταθερός ο µέσος αριθµός διεργασιών (ελέγχει το
βαθµό του πολυπρογραµµατισµού)
• βραχυχρόνιος χρονοδροµολογητής (CPU scheduler)
– Ποια διεργασία από την ουρά των έτοιµων για εκτέλεση θα γίνει Τρέχουσα (θα αναλάβει τη CPU)

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 10
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

Τέλος (Halt)
Νέα Τερµατισµένη

Τρέχουσα
(running) Κλήση
∆ιακοπή
Εισόδου/Εξόδου
ή συµβάντος
Αποστολή

Έτοιµη Μπλοκαρισµένη
(ready) (Σε αναµονή για Ε/Ε
ή κάποιο συµβάν)

Ολοκλήρωση
Εισόδου/Εξόδου
ή συµβάντος

Κατανοµή Πόρων & Κύκλος Εκτέλεσης ∆ιεργασιών


• Χαρακτηριστικά χρήσης πόρων συστήµατος (χρόνος επεξεργαστή, µνήµη, θύρες Ι/Ο, χώρος στο
δίσκο) κατά τον κύκλο εκτέλεσης διεργασιών:
– Η ζωή µίας διεργασίας είναι ένας συνεχής κύκλος από εκτέλεση στην ΚΜΕ και αναµονή για
ολοκλήρωση µίας λειτουργίας Εισόδου/Εξόδου.
– Κάθε συνεχόµενη περίοδος εκτέλεσης στην ΚΜΕ ονοµάζεται έκρηξη ΚΜΕ (CPU burst), ενώ µία
συνεχόµενη περίοδος αναµονής για Ε/Ε ονοµάζεται έκρηξη Ε/Ε (I/O burst).
– Οι διεργασίες που περνούν τον περισσότερο χρόνο τους σε εκρήξεις Ε/Ε λέγονται
προσανατολισµένες στην Ε/Ε, π.χ. tar / gzip / WinZip
– Οι διεργασίες που περνούν τον περισσότερο χρόνο τους σε εκρήξεις ΚΜΕ λέγονται
προσανατολισµένες στην ΚΜΕ, π.χ. Deep Blue Chess Program
– Ο κάθε χρονοδροµολογητής κάνει επιλογή των διεργασιών ώστε να µην υποαπασχολούνται
ούτε η ΚΜΕ ούτε οι συσκευές Εισόδου/Εξόδου

Από τον πολυπρογραµµατισµό στον καταµερισµό


χρόνου
• Πολλές εργασίες πρέπει να εκτελεστούν σε δεδοµένο χρόνο:
• Αλλά υπάρχει µόνο ένας επεξεργαστής
• Η λύση του Πολυπρογραµµατισµού:
– Φόρτωσε πολλές εργασίες στη RAM, εκτέλεσε την πρώτη και διατήρησε σειρές αναµονής
– Αν η τρέχουσα εργασία ζητήσει Είσοδο/Έξοδο δεδοµένων, µετατόπισε την σε κατάσταση
αναµονής, ξεκίνα την εκτέλεση της δεύτερης και εκτέλεσε την εντολή εισόδου/εξόδου
• Πρόβληµα
– διεργασίες προσανατολισµένες στην Ε/Ε
– διεργασίες προσανατολισµένες στην CPU
• ΛΥΣΗ ο καταµερισµός χρόνου
– Η διεργασία εκτελείται µέχρι να ζητήσει είσοδο/έξοδο Ή
– Μέχρι να λήξη ένα χρονικό διάστηµα Τ (10msec)

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 11
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

Χειριστής διακοπών και καταµερισµού χρόνου


• Ο αποστολέας (dispatcher) δίνει τον έλεγχο της CPU στη διεργασία που επιλέγεται από το
βραχυχρόνιο χρονοδροµολογητή
– Χειρίζεται τις διακοπές (interrupts) που δηµιουργούνται όταν λήγει κάθε ένα χρονικό διάστηµα Τ
Σε αναµονή Έτοιµη Τρέχουσα
Χρόνος t Β Α
C
D

Χρόνος t +Τ A C B
D

• ∆ιαδικασία διακοπών (interrupts)


– Αποθήκευσε αντίγραφο της κατάστασης της διεργασίας
Την τιµή του µετρητή προγράµµατος
Τα περιεχόµενα όλων των προσωρινών καταχωρητών (τα ενδιάµεσα αποτελέσµατα που έχουν
υπολογιστεί µέχρι εκείνη τη στιγµή)
– Πήγαινε στο σηµείο που είχε διακοπεί η επόµενη διεργασία

∆ιαδικασία διακοπών στον καταµερισµό χρόνου


• Η ρουτίνα διακοπής εκκινεί τον χρονιστή (timer)
• Ο “αποστολέας” ξεκινά την διαδικασία Α
– Η διεύθυνση πρώτης εντολής της διαδικασίας Α στον µετρητή προγράµµατος
– Ν κύκλοι εντολής πραγµατοποιούνται
• Ο χρονιστής δηµιουργεί σήµα διακοπής
• Η κατάσταση της διεργασίας Α αποθηκεύεται
• Η ρουτίνα διακοπής εκκινεί τον χρονιστή (timer)
• Ο “αποστολέας” ξεκινά την διαδικασία Β
– Η διεύθυνση πρώτης εντολής της διαδικασίας Β στον µετρητή προγράµµατος
– Ν κύκλοι εντολής πραγµατοποιούνται
• Ο χρονιστής δηµιουργεί σήµα διακοπής
• Η κατάσταση της διεργασίας Β αποθηκεύεται
• Ο “αποστολέας” επαναφωρτώνει την κατάσταση της διαδικασίας Α την ξεκινά κλπ

Ανάκληση-αποκωδικοποίηση-εκτέλεση
• Εικονικός και πραγµατικός κύκλος εντολών κατά την εκτέλεση προγράµµατος
• Εικονικός: η κάθε διεργασία έχει την CPU για τον εαυτό της και εκτελείται µέχρι την εντολή
(HALT) τέλους του προγράµµατος
• Πραγµατικός: Η Ανάκληση-αποκωδικοποίηση-εκτέλεση των εντολών είναι µία σειρά από
εκκινήσεις και διακοπές

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 12
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

ΑΣΦΑΛΗΣ ΚΑΤΑΝΟΜΗ ΠΟΡΩΝ ΚΑΙ Α∆ΙΕΞΟ∆Α


• Κάθε λειτουργικό σύστηµα πολύ-προγραµµατισµού που ακολουθεί µία πολιτική κατανοµής
πόρων (π.χ. καταµερισµό χρόνου και ανάθεση µε χρονοπρογραµµατισµό) προσφέρει και
ασφαλή κατανοµή των πόρων (προστασία από αδιέξοδα).
• Π.χ. Ο Γιάννης δανείζεται το βιβλίο A από τη βιβλιοθήκη.
– όσο κρατά το βιβλίο Α χρειάζεται και το βιβλίο Β για να ολοκληρώσει την εργασία του
• Η Μαίρη δανείζεται το βιβλίο Β από τη βιβλιοθήκη.
– Κρατά το βιβλίο Β αλλά χρειάζεται στοιχεία και από το Α για να τελειώσει την εργασία της
• Αυτή είναι µία κατάσταση αδιεξόδου. Σαν αποτέλεσµα κανένας δεν µπορεί να ολοκληρώσει την
εργασία του.

Α∆ΙΕΞΟ∆Ο (DEADLOCK)

Αδιέξοδο (Deadlock)
• Ένα σύνολο διεργασιών καθεµία από τις οποίες περιµένουν ένα γεγονός να συµβεί για να
προχωρήσουν, αλλά αυτό το γεγονός µπορεί µόνο να προκληθεί από µία άλλη διεργασία που
περιµένει και αυτή µέσα στο σύνολο.
• Παράδειγµα.
∆ιεργασία A ∆ιεργασία B
Κρατά σκληρό δίσκο εκτυπωτή
Ζητά εκτυπωτή σκληρό δίσκο

Word Έχει
αποκλειστική
Processor πρόσβαση του
ζητά

ζητά
Web
browser Έχει αποκλειστική
πρόσβαση του

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 13
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

Λύσεις στα Αδιέξοδα


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

message A

E-mail acknowledgement E-mail


A
Client Server
message B

acknowledgement
B

ΚΑΤΑΝΟΜΗ ΠΟΡΩΝ και ΕΞΕΛΙΞΗ


ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
• Λειτουργικά Συστήµατα πολλών χρηστών
– Μαζική επεξεργασία (batch processing)
– Πολυπρογραµµατισµός (multiprogramming / multitasking)
– Καταµερισµός χρόνου (Time Sharing) και διαλογική επεξεργασία (Interactive)

• Λειτουργικά Συστήµατα ενός χρήστη


– Μίας εργασίας
– πολλών εργασιών (multitasking)
– ∆ικτυωµένοι υπολογιστές ενός χρήστη

∆ΙΑΧΕΙΡΙΣΗ ΠΟΛΛΩΝ ΚΜΕ (CPU)


• Η Πολυεπεξεργασία (Multiprocessing /parallel processing) αναφέρεται σε συστήµατα όπου ο
υπολογιστής έχει περισσότερες από µία ΚΜΕ έτσι ώστε
– την ίδια χρονική στιγµή, µπορούν να εκτελούνται δύο ή περισσότερα προγράµµατα συγχρόνως
χρησιµοποιώντας αντίστοιχες ΚΜΕ.
– Ένα µόνο πρόγραµµα µπορεί να χρησιµοποιεί πολλές ΚΜΕ συγχρόνως. Το πρόγραµµα πρέπει
όµως να είναι γραµµένο παράλληλα ώστε να µοιράζει το υπολογιστικό φορτίο ανάµεσα στις
διάφορες ΚΜΕ.
• Όπως είναι φανερό αυτό αυξάνει πολύ την υπολογιστική ισχύ του συστήµατος

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 14
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

∆ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ
• Το ΛΣ διαχειρίζεται την κατανοµή της Μνήµης στα διάφορα προγράµµατα
• Κατανοµή µνήµης στον πολυπρογραµατισµό
– η µνήµη διαιρείται σε τµήµατα, ένα τουλάχιστον διαθέσιµο για κάθε διεργασία (κώδικας + δεδοµένα)
• Η κατανοµή της µνήµης: στατική ή δυναµική.
• Στατική κατανοµή της µνήµης:
– το ΛΣ χωρίζει τη µνήµη σε προκαθορισµένα τµήµατα (σταθερά καθ όλη τη διάρκεια λειτουργίας)
που παρέχονται στις διεργασίες
• ∆υναµική κατανοµή της µνήµης:
– το ΛΣ κάνει τη διαίρεση της µνήµης κάθε φορά, που µία διεργασία αρχίζει να εκτελείται και της
διαθέτει ακριβώς το τµήµα µνήµης που χρειάζεται.

∆ιαχείριση Μνήµης µε ανταλλαγή (swapping)


• Όταν υπάρχουν πολλές διεργασίες και η κύρια µνήµη δεν επαρκεί, τότε χρησιµοποιείται και η
δευτερεύουσα µνήµη (π.χ. σκληρός δίσκος):
– οι διεργασίες αποθηκεύονται αρχικά στη δευτερεύουσα µνήµη και για να εκτελεστούν
µεταφέρονται ολόκληρες στην κύρια µνήµη.
– Τότε για να απελευθερωθεί χώρος στην κύρια µνήµη, κάποια άλλη διεργασία µεταφέρεται στην
δευτερεύουσα µνήµη.
• Η διαδικασία αυτή λέγεται ανταλλαγή (swapping).

∆ιαχείριση Μνήµης - Εικονική Μνήµη


• Είναι φανερό ότι θα υπάρχει πρόβληµα στη διαδικασία της ανταλλαγής αν:
– περισσότερα του ενός προγράµµατα αναφέρονται στην ίδια φυσική διεύθυνση µνήµης
(πρόβληµα προστασίας µνήµης).
– τα προγράµµατα χρειάζονται διευθύνσεις περισσότερες από αυτές που υποστηρίζει η φυσική
µνήµη (πρόβληµα µεγέθους δεδοµένων).
• Η λύση είναι αυτή των εικονικών διευθύνσεων -virtual memory addresses
• Η δευτερεύουσα µνήµη συµβάλει στην αύξηση της διαθέσιµης κύριας µνήµης
• Εικονική Μνήµη (Virtual Memory).
– Παρέχει χώρο διευθύνσεων µεγαλύτερο από αυτόν της µηχανής του υπολογιστή
– οι διεργασίες χρησιµοποιούν εικονικές διευθύνσεις µνήµης τις οποίες το ΛΣ φροντίζει να
αντιστοιχίσει σε πραγµατικές διευθύνσεις

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 15
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

∆ιαχείριση Εικονικής Μνήµης


• Υλοποιείται µε διάφορους τρόπους. Ένας από αυτούς είναι η σελιδοποίηση (paging)
– όπου το πρόγραµµα χωρίζεται σε ισοµεγέθη µέρη, 2 ή 4 ΚΒ, τις σελίδες.
– Οι σελίδες τοποθετούνται σε περιοχές της µνήµης ίσου µεγέθους, τις ενότητες (blocks).
– Οι σελίδες είναι δυνατόν να τοποθετούνται σε περιοχές της µνήµης που δεν είναι συνεχείς.
– Το Λειτουργικό Σύστηµα εντοπίζει τις σελίδες ενός προγράµµατος, χρησιµοποιώντας ένα πίνακα
αντιστοίχισης σελίδων

• Page faults: προσπέλαση εικονικών διευθύνσεων οι οποίες δεν αντιστοιχούν στη κύρια, αλλά
στην δευτερεύουσα µνήµη
• Αν για µία σελίδα δεν υπάρχει αντίστοιχη ενότητα στην κύρια µνήµη (page fault), τότε
– το λειτουργικό αναγκάζεται να κάνει I/O για µεταφορά δεδοµένων, πριν η συγκεκριµένη διεργασία
µπορέσει να συνεχίσει δηλαδή:
– µεταφοράς της ενότητας αυτής από την δευτερεύουσα στην κύρια µνήµη
– και πριν από αυτό µεταφοράς µίας ενότητας από την κύρια µνήµη στην δευτερεύουσα
• Το ποια ενότητα θα «φύγει» εξαρτάται από τον αλγόριθµο που εφαρµόζεται (π.χ. least recently
used – LRU ή first in first out - FIFO )
– σχετική αλλαγή στον πίνακα αντιστοίχησης

• όσο λιγότερη κεντρική µνήµη έχουµε, τόσο περισσότερα page faults, και αντίστροφα.

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 16
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

∆ΙΑΧΕΙΡΙΣΗ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ


• Το Λειτουργικό Σύστηµα αποθηκεύει τα αρχεία των διαφόρων χρηστών µόνιµα στις
περιφερειακές µονάδες δευτερεύουσας µνήµης (σκληροί δίσκοι, δισκέτες κ.α.) όπου
– γνωρίζει τη φυσική διεύθυνση κάθε αρχείου
– εκτελεί τις εντολές που έχουν σχέση µε τη διαχείρισή του (π.χ. ανάγνωση, εκτύπωση, µεταφορά)
– προστατεύει τα αρχεία και τους ίδιους τους χρήστες από λανθασµένες ενέργειες (π.χ.
ταυτόχρονη ανάγνωση/εγγραφή αρχείου από πολλούς χρήστες).

Σύστηµα αρχείων (file system)


• Το Σύστηµα Αρχείων που υποστηρίζει κάθε ΛΣ έχει σκοπό να οργανώσει τα δεδοµένα που
αποθηκεύονται µόνιµα στις µονάδες δευτερεύουσας µνήµης (σκληροί δίσκοι, δισκέτες κλπ).
– Τα δεδοµένα είναι µοιρασµένα σε αρχεία, κάθε ένα από τα οποία έχει ένα όνοµα.
– Οι διεργασίες αναφέρονται στο αρχείο µε το όνοµά του, και µπορούν να εκτελέσουν σε αυτό
διάφορες λειτουργίες, π.χ. ανάγνωση / εγγραφή δεδοµένων
– Η οργάνωση των αρχείων γίνεται σε καταλόγους οι οποίοι περιέχουν οµοειδή αρχεία.
– Οι κατάλογοι µπορούν να είναι οργανωµένοι σε ένα ή πολλά επίπεδα (δοµή δένδρου)
– Οι αναφορές στα αρχεία γίνονται µέσω διαδροµών (path).
– Οι χρήστες µπορούν να χρησιµοποιούν τα δεδοµένα των αρχείων χωρίς να γνωρίζουν
λεπτοµέρειες αποθήκευσης στην δευτερεύουσα µνήµη.
• ∆ιάφορα συστήµατα αρχείων:
– FAT12, FAT16, FAT32, NTFS, UNIX FS

• Ονοµατολογία Αρχείων στο MS DOS και MS Windows


– Κάθε αρχείο στο DOS έχει: ένα αγγλικό όνοµα (8 χαρακτήρες), προέκταση (3 χαρακτήρες).
– Στα Windows το όνοµα αρχείου δέχεται µέχρι 256 χαρακτήρες.

• Σύµβολα Μπαλαντέρ στα ονόµατα αρχείων (χρησιµοποιούνται κατά την εύρεση)


– Ο αστερίσκος * συµβολίζει οποιοδήποτε όνοµα, οποιουδήποτε µήκους
– Το ερωτηµατικό ? συµβολίζει έναν οποιοδήποτε χαρακτήρα
– Παράδειγµα *.ΕΧΕ συµβολίζει όλα τα αρχεία µε προέκταση ΕΧΕ
• Τι συµβολίζει η προέκταση
EXE το αρχείο είναι εκτελέσιµο
BAT περιέχει οµάδες εντολών
BAS αρχείο γραµµένο σε γλώσσα Basic
DOC έγγραφο κειµένου
SYS αρχείο λειτουργικού συστήµατος
HLP αρχείο βοηθείας
TXT αρχείο απλού κειµένου (ASCII ή Unicode)
BAK αντίγραφο ασφαλείας
BMP εικόνα τύπου bitmap
XLS λογιστικό φύλλο
PAS αρχείο γραµµένο σε γλώσσα PASCAL

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 17
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

• ∆υαδικά αρχεία (Binary) και αρχεία κειµένου (ASCII ή text)


– Τα αρχεία κειµένου περιέχουν χαρακτήρες του κώδικα ASCII ή Unicode (γράµµατα, αριθµούς,
σηµεία στίξης). Παραδείγµατα αρχείων κειµένου:
HTML files - mypage.html, mypage.htm
Text Files - abstract.txt
E-Mail
– Τα δυαδικά αρχεία περιέχουν ειδικούς δυαδικούς κώδικες και χαρακτήρες µη διαθέσιµους στον
κώδικα ASCII .Παραδείγµατα δυαδικών αρχείων:
GIF files - earth.gif, back.gif
JPEG files - face.jpg
Programs - notepad.exe
MS Word files - resume.doc
WordPerfect files - resume.wp

• Χαρακτηριστικά ενός αρχείου:


– Το όνοµα και η επέκτασή του.
– Το µέγεθος του αρχείου.
– Ο χρήστης που το δηµιούργησε.
– Ο τύπος του αρχείου
– Ο τρέχων χρήστης - ιδιοκτήτης του.
– Η ηµεροµηνία - ώρα δηµιουργίας του
– Η ηµεροµηνία - ώρα τελευταίας πρόσβασης
– Η ηµεροµηνία - ώρα τελευταίας τροποποίησης
– Αν µπορεί να τροποποιηθεί ή αν προορίζεται µόνο για ανάγνωση.
– Αν πρόκειται για αρχείου του λειτουργικού.
– Οι χρηστές που δικαιούνται να το χρησιµοποιούν και µε ποιο τρόπο.
– Αν µπορεί να χρησιµοποιηθεί από πολλές διεργασίες και ποιες.

• Οι κυριότερες λειτουργίες αρχείων που παρέχονται από τα λειτουργικά συστήµατα:


– ∆ηµιουργία
– ∆ιαγραφή
– Άνοιγµα
– Κλείσιµο
– Ανάγνωση
– Εγγραφή
– Χαρακτηριστικά
– Μετονοµασία

Κατάλογοι συστήµατος αρχείων


• Η οργάνωση των αρχείων γίνεται σε καταλόγους ή φακέλους (directories / folders):
– Αποφεύγεται µία µεγάλη λίστα όλων των αρχείων.
– Κάθε χρήστης έχει προσωπικό κατάλογο.
– Πολλά αρχεία µπορούν να έχουν το ίδιο συµβολικό όνοµα, αρκεί να ανήκουν σε διαφορετικούς
καταλόγους.
– Τα αρχεία του λειτουργικού µπορούν να αποθηκεύονται χωριστά.
• Κατάλογοι πολλαπλών επιπέδων (δοµή δένδρου)

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 18
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

Βασικές λειτουργίες διαχείρισης καταλόγων


• ∆ηµιουργία ενός νέου καταλόγου
– Κατά τη δηµιουργία του συστήµατος αρχείων, ο κατάλογος-ρίζα προϋπάρχει.
• ∆ιαγραφή ενός καταλόγου
– για να µπορεί να διαγραφεί ένας κατάλογος πρέπει να είναι κενός. Ο κατάλογος-ρίζα δεν µπορεί
να διαγραφεί
• Ανάγνωση περιεχοµένων κατάλογου
– Εµφανίζει στα χρήστη τα αρχεία και τους υποκαταλόγους που περιέχονται στον κατάλογο
• Εγγραφή σε ένα κατάλογο
– η λειτουργία αυτή γίνεται µόνο έµµεσα, όταν δηµιουργείται ένα νέο αρχεία ή υποκατάλογος µέσα
στον κατάλογο, όταν διαγράφεται ένα αρχείο ή υποκατάλογος ή όταν µετονοµάζεται κάποιο από
τα περιεχόµενα του καταλόγου.
• Μετονοµασία του καταλόγου
– το νέο όνοµα δεν πρέπει να υπάρχει ήδη στον κατάλογο-πατέρα. Φυσικά το όνοµα του
καταλόγου-ρίζα δεν µπορεί να αλλάξει.

Σύστηµα αρχείων MS DOS και MS Windows


• Είναι οργανωµένα ιεραρχικά όπως ένα αντεστραµµένο δένδρο µε τον κατάλογο ρίζας (root) να
παριστάνει την πρώτη ιεραρχία (τον ριζικό κατάλογο – root directory) τα κλαδιά να
παριστάνουν τους καταλόγους και τα φύλλα να αντιστοιχούν στα αρχεία
C:\

Windows Dos Temp

File1File2File3

Σύστηµα αρχείων στο Unix


• Οι κατάλογοι και τα αρχεία είναι οργανωµένα ιεραρχικά όπως και στα MS DOS και MS Windows
• Σε ένα σύστηµα Unix ο κατάλογος root (ρίζα) είναι πάλι ο πρώτος σε ιεραρχία και παριστάνεται
µε το σύµβολο της καθέτου (/)
• Ο root περιέχει όλους τους υπόλοιπους καταλόγους, υποκαταλόγους και τα αρχεία
• Κάτω ακριβώς από τον root βρίσκονται οι τυπικοί κατάλογοι ενός συστήµατος αρχείων Unix,
που περιέχουν τα αρχεία του λειτουργικού συστήµατος

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 19
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

/ (root)

bin dev etc home lib usr tmp ….

john jim

File1 File2 File1 File2 File3

• Οι κατάλογοι του λειτουργικού συστήµατος Unix όπως οι bin, dev, lib, tmp, usr είναι
προσβάσιµοι από τον διαχειριστή συστήµατος
– Ο κατάλογος bin (binary files) περιέχει τα δυαδικά αρχεία των προγραµµάτων
– Ο κατάλογος dev (device files) περιέχει τα αρχεία των συσκευών
– Ο κατάλογος lib (library files) περιέχει αρχεία βιβλιοθηκών
– Ο κατάλογος tmp (temporary files) περιέχει τα προσωρινά αρχεία
– Ο κατάλογος usr (unix system resources files) περιέχει αρχεία βοηθείας, µοιραζόµενα αρχεία κλπ

• Ο κατάλογος home περιέχει τους καταλόγους και τα αρχεία του κάθε χρήστη
– Ο κάθε χρήστης, για παράδειγµα ο john ή ο jim έχει πρόσβαση στον δικό του χώρο όπου
βρίσκονται τα αρχεία του

• Εντολές DOS και UNIX από τον διερµηνέα γραµµής εντολών στο κέλυφος (Shell)

Εντολή DOS Εντολή Unix Περιγραφή


DIR ls Εµφανίζει στην οθόνη τα αρχεία του τρέχοντα καταλόγου
ls -l Εµφανίζει τα αρχεία του καταλόγου µε λεπτοµέρειες.
Εµφανίζει τα αρχεία του καταλόγου συµπεριλαµβάνοντας και τα
ls -la
κρυφά αρχεία
DIR /P ls -l | more Εµφανίζει τα αρχεία του καταλόγου ανά σελίδα
TYPE file cat file Εµφανίζει τα περιεχόµενα του αρχείου κειµένου µε όνοµα file.
TYPE file |
cat file | more Εµφανίζει τα περιεχόµενα του αρχείου κειµένου ανά σελίδα οθόνης.
MORE
Αντιγράφει ή και ενώνει αρχεία. Εδώ αντιγράφει το αρχείο µε όνοµα
COPY file1 file2 cp file1 file2
file1 σε ένα νέο αρχείο µε όνοµα file2
REN file1 file2 mv file1 file2 Μετονοµάζει αρχεία. Move (Rename) ένα αρχείο file1 σε file2
DEL file1 rm file1 ∆ιαγράφει ένα αρχείο µε όνοµα file1.
CD dirname cd dirname Αλλάζει ή εµφανίζει τον τρέχοντα κατάλογο στο dirname.
Στο DOS, η CD αναφέρει το όνοµα του τρέχοντα καταλόγου. Στο
CD cd UNIX, η εντολή cd επιστρέφει στο home directory (όπου βρίσκονται
τα αρχεία του χρήστη).
pwd Εµφανίζει τον τρέχοντα κατάλογο (Print working directory).

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 20
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

Ο τρέχον κατάλογος γίνεται ο κατάλογος root. Στο UNIX, οι


κατάλογοι χωρίζονται µε την κάθετο (/) . Για παράδειγµα η εντολή
CD \ cd / cd /tmp αλλάζει στον temp. Στο DOS χωρίζονται µε την ανάποδη
κάθετο (\). Για παράδειγµα η εντολή CD \cygwin αλλάζει τον
τρέχοντα κατάλογο στον cygwin
MKDIR dirname mkdir dirname ∆ηµιουργεί ένα κατάλογο ή υποκατάλογο κάτω από τον τρέχοντα
RMDIR dirname rmdir dirname ∆ιαγράφει έναν κενό κατάλογο µε όνοµα dirname.
Παραχωρεί δικαιώµατα πρόσβασης σε ένα αρχείο:
ATTRIB chmod perm file
chmod 600 file κάνει το αρχείο read/write για τον owner.

Βρίσκει το αρχείο µε όνοµα file ψάχνοντας και τους καταλόγους του


dir και έπειτα τυπώνει την πλήρη διαδροµή (path) στην οποία
βρέθηκε το αρχείο. Παράδειγµα εύρεσης όλων των αρχείων µε
κατάληξη .txt ξεκινώντας από τον κατάλογο /usr/local :
find dir -name
DIR file1 /s find /usr/local -name "*.txt" -print
"file1" -print
Εύρεση όλων των αρχείων Postscript από τον τρέχον κατάλογο:
find . -name "*.ps" -print
Στο DOS η εντολή DIR file1 /s βρίσκει το αρχείο file1 ψάχνοντας και
τους υποκαταλόγους (subdirectories)

DATE date Εµφανίζει την ηµεροµηνία και ώρα συστήµατος.


Στο DOS εµφανίζει την ώρα. Στο UNIX, η time εµφανίζει πόσος
TIME time
χρόνος CPU χρησιµοποιείται.
uname -a ∆ίνει το όνοµα του host και την έκδοση του λειτουργικού
who Εµφανίζει τα ονόµατα χρήστη (user names) που είναι συνδεδεµένοι.
which
Βρίσκει τον κατάλογο όπου εκτελείται η εντολή command
command
whereis Βρίσκει κάθε κατάλογο όπου βρέθηκε η εντολή command και όλες τις
command αναφορές σε αυτόν.
Η εντολή mem στο DOS εµφανίζει τις διεργασίες στη µνήµη
Η εντολή ps στο UNIX εµφανίζει τις διεργασίες που εκτελούνται.
ps -x
mem Η ps -u username εµφανίζει όλες τις διεργασίες που εκτελεί ο
ps -u username
χρήστης. Για τον τερµατισµό διεργασίας σηµειώνετε το PID (process
id) και δίνετε µία εντολή kill.
Στο UNIX τερµατίζει µία διεργασία µε αναγνωριστικό το pid. Η εντολή
ps -u username εµφανίζει τα αναγνωριστικά των διεργασιών. Στο
Ctrl + c kill -9 pid
DOS ο συνδυασµός των δύο πλήκτρων Ctrl + c τερµατίζει την
διεργασία που εκτελείται εκείνη τη στιγµή.
history Εµφανίζει το ιστορικό των δοθέντων εντολών
finger ∆ίνει λεπτοµέρειες για τον χρήστη µε όνοµα username. ∆εν
username χρειάζεται να είναι συνδεδεµένος.
Εκκινεί µία σύνδεση talk που επιτρέπει συζήτηση µε το χρήστη
talk username1 username1 ο οποίος πρέπει να δώσει µία όµοια εντολή µε το δικό
σας userid για να ολοκληρωθεί η σύνδεση.
vi filename Ανοίγει το αρχείο κειµένου 'filename' µε τον συντάκτη vi (στο UNIX).
EDIT filename
emacs filename Στο Dos συντάκτης είναι ο EDIT

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 21
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

∆ΙΑΧΕΙΡΙΣΗ ΕΙΣΟ∆ΟΥ - ΕΞΟ∆ΟΥ


• Οι συσκευές εισόδου/εξόδου ταξινοµούνται σε
– Συσκευές µπλόκ (π.χ. µαγνητικοί δίσκοι)
– Συσκευές χαρακτήρων (π.χ. εκτυπωτές γραµµών, τερµατικά)
• Ελεγκτής συσκευής ή προσαρµογέας είναι το ηλεκτρονικό µέρος της συσκευής
– Μετατρέπει, σε µία ενδιάµεση µνήµη (buffer) τη σειριακή ακολουθία από bit σε ένα µπλοκ από
byte, και το εξετάζει για σφάλµατα
– Το λειτουργικό σύστηµα συνεργάζεται µόνο µε τον ελεγκτή
• Επικοινωνία µε τις συσκευές
– Με σταθµοσκόπηση (polling)
– Με διακοπές (interrupts)
– Ανεξάρτητα από τη συσκευή
• Το λογισµικό εισόδου/εξόδου σε 4 στρώµατα:
– Χειριστές διακοπών
– Οδηγοί συσκευών
– Λογισµικό λειτουργικού συστήµατος ανεξάρτητο από τη συσκευή
– Λογισµικό επιπέδου χρήστη

Ετεροχρονισµός Εισόδου - Εξόδου


• Όταν πολλά προγράµµατα προσπαθούν να τυπώσουν ταυτόχρονα
– Ετεροχρονισµός Εισόδου - Εξόδου
• ∆ιαδικασία Ετεροχρονισµού Εισόδου - Εξόδου (SPOOLing - Simultaneous Peripheral Operation
On Line)
– Ενώ ο χρήστης έχει την εντύπωση ότι τυπώνει στον εκτυπωτή, στην πραγµατικότητα
δηµιουργείται ένα προσωρινό αρχείο εκτύπωσης
– Όταν τελειώσει η δηµιουργία του αρχείου εκτύπωσης, τότε αυτό το αρχείο αποστέλλεται στον
εκτυπωτή.
• Τη διαδικασία αυτή (SPOOLing), ελέγχει, για κάθε µονάδα, ειδικό πρόγραµµα του Λειτουργικού
Συστήµατος, ο ετεροχρονιστής (spooler) του εκτυπωτή
• Πλεονέκτηµα της διαδικασίας: Ταχύτητα
– η εκτύπωση πρώτα στο δίσκο γίνεται πολύ γρηγορότερα από ότι απευθείας στον εκτυπωτή.

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 22
ΛΟΓΙΣΜΙΚΟ - ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΕΞΕΛΙΞΗ, ∆ΟΜΗ, ΕΝΝΟΙΕΣ - ΛΕΙΤΟΥΡΓΙΕΣ

Ανακεφαλαίωση βασικών εννοιών


• Επικοινωνία χρήστη - Η/Υ:
– Text-Based: οι εντολές πληκτρολογούνται µε βάση αυστηρά προκαθορισµένους κανόνες. Π.χ.
(στο Unix): cp myfile ../yourfile
– Graphical User Interface: οι ενέργειες του χρήστη γίνονται µε την επιλογή κατάλληλων εικονιδίων
(icons) µε τη βοήθεια ποντικιού (π.χ. Windows’95).
• ∆ιαχείριση µνήµης:
– Το Λ.Σ. παραχωρεί την απαραίτητη µνήµη στις διεργασίες (στατικά/δυναµικά).
– Εικονική µνήµη (virtual memory): Αν απαιτείται περισσότερη µνήµη από την κεντρική µνήµη,
χρησιµοποιείται η περιφερειακή µνήµη.
• ∆ιαχείριση αρχείων:
– Παρέχει στο χρήστη τη δυνατότητα να δηµιουργεί/τροποποιεί/διαγράφει αρχεία.
– Παρέχει τη δυνατότητα αποθήκευσης και οργάνωσης στην περιφερειακή µνήµη.
– Ελέγχει τη χρήση και πρόσβαση.
• Ασφάλεια:
– Ταυτοποίηση των χρηστών του υπολογιστικού συστήµατος (κωδικός/password).
– Περιορισµένη πρόσβαση σε αρχεία.

Το µέλλον των λειτουργικών συστηµάτων


• ∆ιευρυµένη διασύνδεση χρήστη µε ήχο, γραφικά, βίντεο, τρισδιάστατη απεικόνιση, αναγνώριση
φωνής, οθόνες αφής κ.α.
• Παράλληλη επεξεργασία µε πολλούς µικροεπεξεργαστές σε έναν υπολογιστή
• Πολύ - κατανεµηµένα δικτυακά συστήµατα µε επικοινωνία µέσω οπτικών ίνων, δορυφόρων κ.α.

Ερωτήσεις επανάληψης
• Απαριθµήστε τις βασικές εργασίες που εκτελεί ένα λειτουργικό σύστηµα.
• Τι είναι ο χρονοδροµολογητής (scheduler);
• Σε τι διαφέρει η εναλλαγή (swapping) από τη σελιδοποίηση (paging);
• ∆ώστε ένα παράδειγµα αδιεξόδου
• Σε τι χρησιµεύει η διαχείριση του συστήµατος αρχείων που προσφέρει το ΛΣ;
• Πως πραγµατοποιείται η πιστοποίηση της ταυτότητας του χρήστη για την προστασία ενός
συστήµατος;
• Πως τα προγράµµατα µπορούν να χρησιµοποιούν συνολικά περισσότερη µνήµη απ’ όση
φυσική µνήµη διαθέτει ο υπολογιστής
• Εξηγήστε τη ∆ιαδικασία Ετεροχρονισµού Εισόδου - Εξόδου (SPOOLing)
• Ποιες οι κυριότερες λειτουργίες αρχείων και καταλόγων

ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Ι 23

You might also like