Δομή του λειτουργικού συστήματος Windows-NT
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr
Ιστορία
Η ανάπτυξη του λειτουργικού συστήματος Windows NT ξεκίνησε από τη Microsoft
το 1988 ως αποτέλεσμα της απογοήτευσης της Microsoft σχετικά με το
λειτουργικό σύστημα OS/2 το οποίο ανέπτυσσε σε συνεργασία με την IBM.
Συγκεκριμένα, το OS/2 βασιζόταν σε τεχνολογικές αποφάσεις που δεν επέτρεπαν
την εκμετάλλευση ανερχομένων τεχνολογιών όπως:
Στην ανάπτυξη ηγετικό ρόλο έπαιξε ο Dave Cutler ο οποίος προερχόμενος από την
εταιρία Digital ήταν βασικός αρχιτέκτονας του λειτουργικού συστήματος
VAX VMS.
Στόχοι
Ο σχεδιασμός και η υλοποίηση των Windows NT βασίστηκαν σε ορισμένους
βασικούς στόχους.
Μεταφερσιμότητα
- Υποστήριξη πολλαπλών υπολογιστικών αρχιτεκτονικών
- Intel x86/Pentium
- DEC Alpha AXP
- MIPS R4x00 (δεν υποστηρίζεται πλέον)
- Intergraph Clipper (δεν υποστηρίχθηκε ποτέ εμπορικά;)
- Απομόνωση των τμημάτων που έχουν άμεση σχέση με το υλικό.
- Στη δομή περιλαμβάνεται ένα επίπεδο αφαίρεσης ιδιοτήτων του υλικού
το Hardware Abstraction Layer (HAL).
Ασφάλεια
- Σχεδιασμένο για να μπορεί να πιστοποιηθεί σε επίπεδο C2
- Όλα τα αντικείμενα στα οποία η πρόσβαση μπορεί να γίνει από
πάνω από μια οντότητα προστατεύονται μέσω μιας λίστας ελέγχου προσπέλασης.
Συμβατότητα
- MS-DOS και Windows 3.X
- LAN Manager (η υποστήριξη δικτύου PC της IBM)
- Μη γραφικές εφαρμογές 16 bit του OS/2 1.X
- Συστήματα αρχείων FAT (MS-DOS) και HPFS (OS/2)
- POSIX (Unix)
Επεκτασιμότητα
- Επεκτάσεις χωρίς προνομιούχο κώδικα (υποσυστήματα)
- Οδηγοί συσκευών
- Συστήματα αρχείων
- Συστήματα αρχείων δικτύου (network redirectors)
Στιβαρότητα
(Προφανώς σε σχέση με άλλα λειτουργικά συστήματα της Microsoft)
Διασυνδεσιμότητα
- LAN Manager (IBM PC)
- TCP/IP (Internet)
- DECNet (Digital)
- Υπηρεσίες SNA (ΙΒΜ mini/mainframe)
- Macintosh (Apple)
- Netware (Novell)
Διεθνοποίηση
- Εύκολη τοπική προσαρμογή
- Όλες οι συμβολοσειρές είναι σε Unicode
Μικροπυρήνας
Εκτελεστής |
Υποσύστημα εισόδου εξόδου |
Παρακολουθητής ασφάλειας |
Διαδιεργασιακή επικοινωνία |
Υπηρεσίες αντικειμένων |
Ιδεατή μνήμη |
Δομή διεργασίας |
Συστήματα αρχείων |
Διαχείριση αντικειμένων |
Εκτελεστής |
Οδηγοί συσκευών |
Αφαίρεσης ιδιοτήτων του υλικού (HAL) |
Μικροπυρήνας |
Διεπαφή υλικού |
Συσκευές εισόδου εξόδου |
Απευθείας πρόσβαση στη μνήμη (DMA) |
Απεικόνιση του διαύλου |
Ρολόι και χρονόμετρα |
Έλεγχος βοηθητικής μνήμης |
Διεκπεραίωση διακοπών |
Αρχιτεκτονική προνομίων |
Τα Windows NT βασίζονται στη δομή του μικροπυρήνα.
Αυτός προσφέρει τις παρακάτω υπηρεσίες:
- υποστήριξη της αρχιτεκτονικής του επεξεργαστή,
- συγχρονισμός χαμηλού επιπέδου,
- υποστήριξη διακοπών και εξαιρέσεων,
- λειτουργίες υλικού χαμηλού επιπέδου,
- αντικείμενα διεκπεραίωσης και ελέγχου.
Το σύνολο του κώδικα είναι περίπου 60Κ.
Ο κώδικας εκτελείται χωρίς προεκχώρηση και σελιδοποίηση, αλλά με
υποστήριξη διακοπών.
Τα αντικείμενα διεκπεραίωσης είναι:
Τα αντικείμενα ελέγχου είναι:
- διεργασίες,
- διακοπές,
- ουρές συσκευών,
- ασύγχρονες κλήσεις διαδικασιών,
- κλήσεις διαδικασιών υπό αναβολή.
Εκτελεστής
Ο εκτελεστής αποτελεί το άνω τμήμα του πυρήνα και επικοινωνεί με τις
διεργασίες του χρήστη.
Περιλαμβάνει ξεχωριστά τμήματα τα οποία προσφέρουν συγκεκριμένες
υπηρεσίες.
Τμήματα του εκτελεστή μπορούν να βρίσκονται σε ιδεατή μνήμη
μέσω σελιδοποίησης.
Υπηρεσίες διαχείρισης αντικειμένων
Οι υπηρεσίες διαχείρισης αντικειμένων προσφέρουν:
- ομοιόμορφο σύστημα ονοματοδοσίας,
- έλεγχο πρόσβασης με αντίστοιχες λίστες ελέγχου πρόσβασης,
- διαδικασίες για τη δημιουργία αντικειμένων του χρήστη (διεργασίες,
νήματα, γεγονότα, αρχεία).
Διαχείριση μνήμης
Το υποσύστημα διαχείρισης μνήμης προσφέρει:
- περιβάλλον 4GB σελιδοποιημένης μνήμης,
- αρχεία που απεικονίζονται στη μνήμη,
- λειτουργίες μεταξύ διεργασιών,
- σελίδες που αντιγράφονται κατά την εγγραφή τους,
- πολλαπλά αρχεία σελιδοποίησης,
- υποστήριξη για το διαχειριστή κρυφής μνήμης.
Υποσύστημα εισόδου εξόδου
Το υποσύστημα εισόδου και εξόδου προσφέρει:
- ασύγχρονο μοντέλο εισόδου και εξόδου,
- αντικείμενα στα οποία η πρόσβαση γίνεται με τον τρόπο open, operate, close,
- υπηρεσίες για οδηγούς συσκευών και συστήματα αρχείων,
- γενικευμένη κρυφή μνήμη, ενοποιημένη με το σύστημα διαχείρισης μνήμης.
Σύστημα αρχείων NTFS
Το σύστημα αρχείων NTFS έχει τα παρακάτω χαρακτηριστικά:
- υποστηρίζει μεγάλους δίσκους και αρχεία με τη χρήση 64 bit
για το μέγεθος του αρχείου,
- επιτρέπει την αποκατάστασή του μετά από ανώμαλες καταστάσεις σε μικρό
χρόνο,
- όλα τα ονόματα των αρχείων φυλάσσονται σε UNICODE,
- η πρόσβαση σε αρχεία γίνεται με βάση λίστες ελέγχου πρόσβασης,
Διαδιεργασιακή επικοινωνία
Η διαδιεργασιακή επικοινωνία γίνεται μέσω του μηχανισμού Local Procedure
Call (τοπική κλήση διαδικασίας).
Ο μηχανισμός αυτός αποτελεί μια αποδοτική υλοποίηση της κλήσης διαδικασιών
σε απομακρυσμένους υπολογιστές (remote procedure call).
Οι διεργασίες μπορούν να καλούν διαδικασίες σε άλλες διεργασίες μέσω του
εκτελεστή και να μεταφέρουν δεδομένα μέσω διαμοιρασμένης μνήμης.
Για λόγους ασφαλείας μια διεργασία εξυπηρετητή μπορεί να υποδυθεί τα
χαρακτηριστικά ασφαλείας του πελάτη που την καλεί.
Η εξυπηρέτηση της επικοινωνίας γίνεται μέσω ενός ξεχωριστού νήματος για
κάθε σύνδεση μεταξύ δύο διεργασιών.
Το ίδιο μοντέλο επικοινωνίας χρησιμοποιείται και για τις κλήσεις
από τις διεργασίες προς το λειτουργικό σύστημα.
Πολιτική σελιδοποίησης
Η πολιτική σελιδοποίησης είναι απλή και παρακολουθεί τη χρήση μνήμης
για κάθε διεργασία ξεχωριστά.
Όταν υπάρχει διαθέσιμη μνήμη στο σύστημα οι σελίδες του συνόλου εργασίας
της διεργασίας αυξάνονται, σε αντίθετη περίπτωση οι σελίδες μειώνονται.
Υποσυστήματα
Τα
υποσυστήματα (subsystems) των Windows ΝΤ επιτρέπουν τη
μίμηση διαφορετικών συστημάτων:
- Windows (περιλαμβάνει και εφαρμογές MS-DOS και Windows 3.1)
- POSIX (για εφαρμογές Unix)
- 16 bit OS/2
- περιβάλλον αποσφαλμάτωσης (ελέγχει εφαρμογές για λάθη)
Η λειτουργία των υποσυστημάτων βασίζεται στο μοντέλο του πελάτη υπηρέτη.
Κάθε διεργασία εκτελείται ως πελάτης του συγκεκριμένου υποσυστήματος για
το οποίο είναι σχεδιασμένη.
Το υποσύστημα εκτελείται έξω από τον πυρήνα ως υπηρέτης που λαμβάνει
εντολές από τη διεργασία και τις μεταβιβάζει στον πυρήνα του λειτουργικού
συστήματος.
Ορισμένες λειτουργίες του υποσυστήματος μπορεί να εκτελούνται απευθείας
στον υπηρέτη του χωρίς τη διαμεσολάβηση του πυρήνα.
Νήματα
Τα νήματα προσδίδουν στο λειτουργικό σύστημα τα παρακάτω πλεονεκτήματα:
- ταχύτερη απόκριση,
- ευκολότερη υλοποίηση παράλληλων αλγορίθμων,
- ασύγχρονη απόκριση σε γεγονότα,
- φθηνή επικοινωνία μεταξύ νημάτων,
- εκμετάλλευση συμμετρικής πολυεπεξεργασίας.
Ακόμα, τα νήματα επιτρέπουν στις εφαρμογές:
- διαχωρισμό των λειτουργιών τους (εκτύπωση, σελιδοποίηση, επανυπολογισμός),
- να συνεχίσουν να αποκρίνονται στο χρήστη όσο το κύριο νήμα δεν είναι
αποκλεισμένο.
Εφαρμογές εξυπηρετητή μπορούν συχνά να υλοποιηθούν με τη χρήση νέου νήματος
ανά πελάτη, ή με την κατανομή τους σε αιτήσεις από ένα σταθερό σύνολο
διαθέσιμων νημάτων.
Οι διεργασίες μπορούν να δημιουργήσουν νήματα με τα παρακάτω χαρακτηριστικά:
- πολλαπλά νήματα ανά διεργασία,
- όλα τα νήματα είναι ομότιμα,
- όλα τα νήματα μπορούν να έχουν πρόσβαση στα γραφικά,
- υποστηρίζεται προεκχωρητικός χρονοπρογραμματισμός των νημάτων με έλεγχο
προτεραιότητας,
Συγχρονισμός
Για την υλοποίηση συγχρονισμού προσφέρονται οι παρακάτω μηχανισμοί:
- κρίσιμα τμήματα,
- αντικείμενα αμοιβαίου αποκλεισμού,
- συμβάντα,
- σημαφόροι.
Στα παραπάνω αντικείμενα μια διεργασία μπορεί να εκτελέσει μια κλήση αναμονής
μέχρι το αντικείμενο να ελευθερωθεί.
Διαχείριση μνήμης
Η διαχείριση της μνήμης στα Windows NT έχει τα παρακάτω ιδιαίτερα
χαρακτηριστικά:
- η σελιδοποίηση υλοποιείται μέσω φύλαξης των σελίδων σε πολλαπλά αρχεία,
- υποστηρίζονται διαμοιρασμένες περιοχές μνήμης με συγκεκριμένο
όνομα και λίστα ελέγχου πρόσβασης,
- κάθε σελίδα μπορεί να συνδέεται με ξεχωριστή προστασία,
- είναι δυνατή η κατανομή αραιών τμημάτων μνήμης.
Βιβλιογραφία
- Helen Custer.
Inside Windows NT.
Microsoft Press, Redmond, WA, USA, 1992.
- Usenix Association.
USENIX Windows NT Workshop, Seattle, Washington, USA, August
1997.