Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

MS-DOS Ενός χρήστη Μονοπρογραμματισμού Για έναν επεξεργαστή (Intel 80xxx)

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "MS-DOS Ενός χρήστη Μονοπρογραμματισμού Για έναν επεξεργαστή (Intel 80xxx)"— Μεταγράφημα παρουσίασης:

1 MS-DOS Ενός χρήστη Μονοπρογραμματισμού Για έναν επεξεργαστή (Intel 80xxx)

2 Υλοποίηση του MS-DOS  Το MS-DOS είναι δομημένο σε 3 επίπεδα : 1. To BIOS (βασικό σύστημα εισόδου/εξόδου) και την επέκτασή του στο ibmbio.com (io.sys). 2. Τον Πυρήνα (kernel) που αποτελείται από το ibmdos.com (msdos.sys). 3. Τον Φλοιό (shell) που αποτελείται από το command.com  Το BIOS είναι ένα σύνολο οδηγών συσκευών χαμηλού επιπέδου που απομονώνει το MS-DOS από τις λεπτομέρειες του υλικού. Βρίσκεται σε ROM και αναπτύσσεται από τους κατασκευαστές Η/Υ (όχι από τη Microsoft). Π.χ. ρουτίνες ανάγνωσης πλήκτρων, εμφάνισης χαρακτήρων στην οθόνη, ανάγνωσης απόλυτων τομέων στο δίσκο, κ.λ.π.  Το ibmbio.com (io.sys), αποτελεί το interface ανάμεσα στον πυρήνα και στο BIOS, έτσι ώστε ο πυρήνας να καλεί ρουτίνες του io.sys και όχι απευθείας το BIOS. Περιέχει επίσης ρουτίνες I/O που δεν υπάρχουν στη ROM.

3 Υλοποίηση του MS-DOS  Το ibmdos.com (msdos.sys) περιέχει τον πυρήνα του Λ.Σ. και είναι υπεύθυνο για την διαχείριση διεργασιών, την διαχείριση μνήμης, το σύστημα αρχείων και τη διερμηνεία των κλήσεων συστήματος (system calls).  Το command.com είναι ο φλοιός, δηλαδή το τμήμα που βλέπει ο χρήστης και στο οποίο μπορεί να εκτελεί προγράμματα και εντολές.  Αποτελείται από δύο τμήματα: ένα μόνιμο κομμάτι (resident) που παραμένει πάντα στη μνήμη και ένα παροδικό (transient) που φορτώνεται στην περιοχή υψηλής μνήμης και χρησιμοποιείται όταν ο φλοιός είναι ενεργός. Αν η μνήμη αυτή χρησιμοποιηθεί από άλλα προγράμματα, μόλις αυτά τερματισθούν, το παροδικό κομμάτι που είχε σβηστεί ξαναφορτώνεται στη μνήμη.

4 Εκκίνηση του MS-DOS  Οι Η/Υ με Λ.Σ. MS-DOS ξεκινούν ως εξής : 1. Με το άνοιγμα του διακόπτη η CPU ξεκινά με PC=0xFFFF0 που αντιστοιχεί στη ROM. Εκεί υπάρχει διακλάδωση στη διαδικασία εκκίνησης του BIOS. 2. Αυτή αρχικά εκτελεί διαγνωστικούς ελέγχους του hardware (μνήμη RAM, αναγνώριση δίσκων, CD-ROM κ.λ.π.) 3. Ακολούθως επιχειρεί να διαβάσει τον boot sector της δισκέτας A:, και αν αυτό δεν είναι δυνατό, τότε διαβάζει τον boot sector του δίσκου και τo partition table. Μετά επιλέγεται το active primary partition και φορτώνεται και εκτελείται ο boot sector αυτού του partition. 4. Ο τομέας εκκίνησης εξετάζει το root directory για να εντοπίσει και να φορτώσει το ibmbio.com (io.sys) και το ibmdos.com (msdos.sys) και μεταφέρει τον έλεγχο στο io.sys. 5. Το io.sys καλεί ρουτίνες του BIOS ώστε να προετοιμάσει το υλικό και μετά η sysinit διαβάζει το config.sys για να φορτώσει οδηγούς συσκευών. 6. Τελικά ο πυρήνας φορτώνει και εκτελεί τον φλοιό (command.com) ο οποίος εκτελεί (αν υπάρχει) το Autoexec.bat.

5 Κατάσταση μνήμης μετά την εκκίνηση 1ΜΒBIOSΟδηγοί συσκευών εξαρ/νοι από το h/w...Drivers ή TSRs στην upper mem. 640ΚΠροσωρινό τμήμα του φλοιούΜπορεί να επικαλυφθεί από προγ/τα Χώρος για προγράμματαΤοποθέτηση και εκτέλεση προγραμμάτων χρηστών Προγράμματα TSR (low memory)Τερματίζουν αλλά μένουν στη μνήμη Μόνιμο τμήμα του command.comΔεν επικαλύπτεται ποτέ Οδηγοί ΣυσκευώνΦορτώνονται μέσω του Config.sys Κρυφή ενδιάμεση μνήμηΧρησιμοποιείται στο σύστημα αρχείων για buffers MSDOS.SYS (IBMDOS.COM)Πυρήνας MS-DOS IO.SYS (IBMBIO.COM)Διασύνδεση με το BIOS 0ΚΔιανύσματα διακοπώνΔιευθύνσεις ρουτινών interrupts

6 Διεργασίες στο MS-DOS  Το MS-DOS υποστηρίζει δύο κατηγορίες εκτελέσιμων αρχείων (com και exe) τα οποία δημιουργούν διεργασίες με ελαφρά διαφορετικά χαρακτηριστικά :  Διεργασίες που ξεκινούν από com αρχεία (*.com) : επιτρέπεται να έχουν ένα τμήμα μεγέθους μέχρι 64ΚΒ κοινό για κώδικα, δεδομένα και στοίβα.  Η διεργασία δεσμεύει όλη τη μνήμη. Για να εκτελεστεί μια θυγατρική διεργασία πρέπει πρώτα να απελευθερωθεί η επιπλέον μνήμη (πέρα από τα 64ΚΒ).  Το εκτελέσιμο αρχείο στο δίσκο είναι ίδιο byte προς byte με τον κώδικα μηχανής που εκτελείται στη μνήμη. Δεν υπάρχει επικεφαλίδα (header). MS-DOS Code Segment Data Segment Stack 64K Code Segment com Πρόγραμμα στο δίσκο

7 Διεργασίες στο MS-DOS  Διεργασίες που ξεκινούν από exe αρχεία (*.exe) : έχουν ανεξάρτητα τμήματα. Τα exe αρχεία περιέχουν στην αρχή μία επικεφαλίδα με πληροφορίες για την τοποθέτηση του κώδικα στη μνήμη.  Η επικεφαλίδα ξεκινά πάντα με τα bytes 4D 16, 5A 16 (77 10, ή ‘M’, ‘Z’). Το MS-DOS δεν κοιτά την επέκταση του ονόματος (.com ή.exe) αλλά τα δύο πρώτα byte του αρχείου. MS-DOS Code Segment Data Segment Stack 640KB Code Segment Heap Δυναμική μνήμη Πρόγραμμα στο δίσκο Επικεφαλίδα exe

8 Πρόθεμα τμήματος κώδικα  Τα πρώτα 256 bytes κάθε διεργασίας στη μνήμη αποτελούν ένα ειδικό τμήμα που ονομάζεται PSP (Program Segment Prefix – Πρόθεμα Τμήματος Κώδικα).  Το PSP δημιουργείται κατά την φόρτωση της διεργασίας στη μνήμη και δεν περιέχει κώδικα, αλλά στοιχεία του Λ.Σ. που αφορούν τη διεργασία : 1.Το μέγεθος του κώδικα της διεργασίας 2.Δείκτη στο μπλοκ περιβάλλοντος (environment block) που περιέχει τις μεταβλητές συστήματος (π.χ. TEMP=C:\Temp). 3.Διεύθυνση της ρουτίνας διαχείρισης του πατήματος των πλήκτρων Ctrl+C. 4.Τις παραμέτρους εκτέλεσης του προγράμματος (π.χ. dir a:*.* /w). 5.Δείκτη στο PSP της γονικής διεργασίας. 6.Πίνακα περιγραφέων αρχείων (file descriptor table) που περιέχει έναν χαρακτηριστικό αριθμό για κάθε αρχείο που ανοίγει η διεργασία, καθώς και την τρέχουσα θέση στο αρχείο (0=stdin, 1=stdout, 2=stderr, 3=…).

9 Πρόθεμα τμήματος κώδικα  Στις διεργασίες που ξεκινούν από com αρχεία το PSP είναι μέρος των διευθύνσεων της διεργασίας, δηλαδή ο κώδικας ξεκινά από την διεύθυνση 256 (από είναι το PSP).  Οι διεργασίες που ξεκινούν από exe αρχεία μετατοπίζονται πάνω από το PSP το οποίο είναι εκτός των διευθύνσεων της διεργασίας, δηλαδή ο κώδικας ξεκινά από την διεύθυνση 0 της διεργασίας. MS-DOS Code Segment Data Segment Stack PSP Διεύθ. 0 Διεύθ. 256 Διεργασία από com 64KB MS-DOS Code Segment Data Segment Stack Heap Δυναμική μνήμη PSP Διεύθ. 0 Διεργασία από exe 640KB

10 Αποδοτική διαχείριση μνήμης διεργασιών  Το MS-DOS δεν υποστηρίζει καμία μέθοδο για αύξηση της διαθέσιμης μνήμης στις διεργασίες (εικονική μνήμη, σελιδοποίηση, εναλλαγή σελίδων κ.λ.π.).  Όταν μία μεγάλη διεργασία ξεκινά μία θυγατρική, ενδέχεται να μην υπάρχει η απαιτούμενη μνήμη για την εκτέλεσή της. Έτσι κάθε διεργασία που δημιουργεί θυγατρικές κατασκευάζεται σε 2 μέρη: το (μικρό) στέλεχος και τον κύριο κορμό. MS-DOS Command.com PSP MS-DOS Command.com PSP Στέλεχος PSP Κύριος κορμός editor MS-DOS Command.com PSP Στέλεχος PSP Command.com PSP MS-DOS Command.com PSP Στέλεχος PSP Command.com PSP xcopy.exe PSP

11 Διεργασίες στο MS-DOS  Το MS-DOS δεν υποστηρίζει πολυπρογραμματισμό και ταυτόχρονη εκτέλεση διεργασιών.  Η βασική διεργασία που εκτελείται αρχικά είναι το command.com  Με την πληκτρολόγηση εντολής ο φλοιός δημιουργεί την θυγατρική διεργασία και αναστέλλεται έως ότου αυτή ολοκληρωθεί.  Οι εντολές εκτελούνται πάντα στο προσκήνιο (σε αντίθεση με το Unix)  Γονική και θυγατρική διεργασία δεν μπορούν να εκτελούνται παράλληλα.  Μπορεί να υπάρχουν πολλές διεργασίες στη μνήμη αλλά μόνο μία (η τελευταία) είναι ενεργή. Οι άλλες είναι υπό αναστολή.  TSR – Terminate and Stay Resident : προγράμματα που τερματίζουν αλλά παραμένουν στη μνήμη χωρίς να απελευθερώνουν τα αγαθά που κατέχουν. Τα TSR εγκαθιστούν δικούς τους χειριστές διακοπών έτσι ώστε να παρεμβαίνουν και να εκτελούνται όταν δημιουργούνται interrupts (π.χ. βελάκι πάνω ενεργοποιεί το doskey).  Με την ύπαρξη των TSR και των διακοπών υλοποιείται ένα σύστημα ψευδοπαραλληλισμού διεργασιών.

12 Μονοπρογραμματισμός στο MS-DOS  Παράδειγμα αλυσιδωτής δημιουργίας διεργασιών:  Τ1 : η ενεργή διεργασία είναι ο φλοιός (command.com).  Τ2 : στον φλοιό εκτελείται μία εφαρμογή χρήστη και γίνεται ενεργή.  Τ3 : η εφαρμογή χρησιμοποιεί την εντολή xcopy που γίνεται ενεργή.  Τ4 : τελειώνοντας η xcopy επιστρέφουμε στην εφαρμογή.  Τ5 : τελειώνοντας η εφαρμογή ο φλοιός ξαναγίνεται ενεργός. Upper memory command.com MS-DOS Upper memory Εφαρμογή command.com MS-DOS Upper memory xcopy Εφαρμογή command.com MS-DOS Upper memory Εφαρμογή command.com MS-DOS Upper memory command.com MS-DOS Τ1Τ2 Τ3Τ4Τ5

13 Ψευδοπαραλληλισμός με χρήση TSR  Παράδειγμα ψευδοπαραλληλισμού διεργασιών με TSR-διακοπές:  Τ1 : Ο φλοιός είναι ενεργός. Έχει φορτωθεί TSR για Ελληνικά/Αγγλικά.  Τ2 : Από τον φλοιό εκτελείται μία εφαρμογή χρήστη (π.χ. Edit).  Τ3 : Ο χρήστης πατάει Alt+Shift και παράγει διακοπή που ενεργοποιεί το TSR. Η εφαρμογή τελεί υπό αναστολή.  Τ4 : Με το τέλος της ρουτίνας διακοπής επιστρέφουμε στην εφαρμογή.  Τ5 : Με το τέλος της εφαρμογής επιστρέφουμε στο φλοιό. Upper memory Εφαρμογή TSR-Ελλ/Αγγλ. command.com MS-DOS Τ1 Τ2 Τ3Τ4 Τ5 Upper memory TSR-Ελλ/Αγγλ. command.com MS-DOS Upper memory Εφαρμογή TSR-Ελλ/Αγγλ. command.com MS-DOS Upper memory Εφαρμογή TSR-Ελλ/Αγγλ. command.com MS-DOS Upper memory TSR-Ελλ/Αγγλ. command.com MS-DOS

14 Υλοποίηση διεργασιών στο DOS  Όταν μια διεργασία καλεί την κλήση συστήματος LOAD_AND_EXEC για να δημιουργήσει θυγατρική, τότε το Λ.Σ. εκτελεί τα εξής βήματα : 1.Βρίσκει ένα μπλοκ στη μνήμη που να χωράει τη θυγατρική διεργασία. Στα exe αρχεία το απαιτούμενο μέγεθος μνήμης περιγράφεται στην επικεφαλίδα (header). Στις διεργασίες από αρχεία com αποδίδεται ολόκληρη η διαθέσιμη μνήμη. 2.Δημιουργεί το PSP στα πρώτα 256 bytes της μνήμης που δεσμεύτηκε με τις απαραίτητες πληροφορίες. Ένας δείκτης δείχνει προς τη γονική διεργασία. 3.Φορτώνει τον εκτελέσιμο κώδικα από το αρχείο στην δεσμευμένη μνήμη ξεκινώντας από το πρώτο byte μετά το PSP. 4.Δίνει τον έλεγχο στο πρόγραμμα. Στα exe αρχεία η διεύθυνση εκκίνησης του κώδικα περιέχεται στην επικεφαλίδα. Στις διεργασίες από com αρχεία η διεύθυνση εκκίνησης είναι σταθερή και είναι η = δηλαδή είναι η πρώτη εντολή κώδικα μηχανής αμέσως μετά το PSP.

15 Το μοντέλο μνήμης του DOS  Ο επεξεργαστής 8088 μπορούσε να προσπελάσει 1ΜΒ μνήμης με 20 γραμμές διευθύνσεων (2 20 = ). Για συμβατότητα όμως με τον 8080 είχε καταχωρητές διευθύνσεων των 16 bits (2 16 =65536). Έτσι επινοήθηκε η μέθοδος των παραγράφων (paragraphs).  Κάθε διεύθυνση των 16 bits δεν αναφέρεται σε απόλυτη διεύθυνση αλλά στην αρχή μίας δεκαεξάδας από bytes. Η τελευταία δεκαεξάδα είναι η FFFF 16 που αναφέρεται στην διεύθυνση FFFF0 16 =  Για την προσπέλαση οποιασδήποτε διεύθυνσης μνήμης εκτός από την διεύθυνση παραγράφου (segment) χρειάζεται και μία διεύθυνση μετατόπισης (offset). Έτσι οι διευθύνσεις σχηματίζονται ως segment:offset (π.χ. το 17ο byte μνήμης έχει διεύθυνση 0001:0001 αλλά και 0000:0011).  Για να βρούμε την απόλυτη διεύθυνση μνήμης ακολουθούμε τον απλό τύπο : Απόλυτη διεύθυνση = segment X 16 + offset.

16 Τμήματα μνήμης  Ο 8088 είχε 4 16μπιτους καταχωρητές για διευθύνσεις segments: 1.CS : Code Segment, για την διεύθυνση segment του κώδικα. 2.DS : Data Segment, για την διεύθυνση segment των δεδομένων. 3.SS : Stack Segment, για την διεύθυνση segment της στοίβας. 4.ES : Extra Segment, επιπλέον διεύθυνση segment γενικής χρήσης.  Το κάθε τμήμα (κώδικα, δεδομένων, στοίβας, έξτρα) έχοντας σταθερή διεύθυνση segment, μπορεί μέσω του μεταβλητού 16μπιτου offset να έχει μέγεθος μέχρι 64Κ.  Αλλάζοντας τιμή στον segment register κάποιου τμήματος είναι δυνατή η επανατοποθέτηση (relocation) του τμήματος σε οποιαδήποτε δεκαεξάδα μνήμης. MS-DOS Code Segment Data Segment Stack segment CS= = = FFFF 16 = DS= = = FFFF 16 = SS= = = FFFF 16 =

17 Συμβατική, ανώτερη και υψηλή μνήμη  Το MS-DOS χρησιμοποιεί μόνο τα πρώτα 640ΚΒ που ονομάζονται Συμβατική Mνήμη (conventional memory).  Η περιοχή πάνω από τα 640ΚΒ και έως το 1ΜΒ (384ΚΒ) ονομάζεται Ανώτερη Μνήμη (Upper Memory Area – UMA) και σε αυτήν απεικονίζεται το ROM BIOS και διευθύνσεις που χρησιμοποιούν οι συσκευές (καταχωρητές, buffers κ.λ.π.).  Ο μπορούσε να προσπελάσει 16 MB μνήμης.  Λαμβάνοντας την τελευταία δεκαεξάδα (FFFF 16 ) και προσθέτοντας σε αυτήν το offset που μπορεί να είναι από έως FFFF 16 παίρνουμε την περιοχή διευθύνσεων FFFF:0000 ( ) έως FFFF:FFFF ( ).  Από αυτή την περιοχή μόνο τα πρώτα 16 bytes είναι μέσα στο 1 ΜΒ ( ). Τα υπόλοιπα bytes είναι πάνω από το 1ΜΒ και ονομάζονται Υψηλή Περιοχή Μνήμης (High Memory Area–HMA)  Στην HMA μπορούν να φορτώνονται τμήματα του MS-DOS ή και οδηγοί συσκευών ώστε να απελευθερώνουν έως και επιπλέον bytes από τη συμβατική μνήμη των 640Κ.

18 Η εκτεταμένη μνήμη  Η μνήμη πάνω από την HMA και έως τα 16ΜΒ ονομάζεται Εκτεταμένη μνήμη (Extended memory - XMS).  To MS-DOS δεν επέτρεπε την χρήση της από προγράμματα αλλά μπορούσε να την εκμεταλλευτεί ως RAM-Disk.  Από την έκδοση 5.0 και μετά το MS-DOS επέτρεπε την αντιστοίχιση τμημάτων της Εκτεταμένης μνήμης σε κενές περιοχές της UMA ώστε να χρησιμοποιούνται και από προγράμματα. MS-DOS Command.com PSP 640ΚΒ Conventional Memory 1 MB UMA 16 MB HMA Extended memory BIOS, Drivers I/O memory Προγράμματα RAM Disk MS-DOS Command.com PSP Προγράμματα UMA HMA Extended memory

19 Τμήματα επικάλυψης  Μία μέθοδος για αύξηση της διαθέσιμης μνήμης κάτω από τα 640ΚΒ για χρήση από προγράμματα είναι η μέθοδος των Τμημάτων Επικάλυψης (overlays).  Κάθε μεγάλο πρόγραμμα (π.χ. πρόγραμμα λογιστικής) αποτελείται από ένα βασικό τμήμα (.exe) που είναι πάντα φορτωμένο στη μνήμη και από πολλά ανεξάρτητα υποτμήματα (overlays - *.ovl) που μπορούν να εναλλάσσονται στον ίδιο χώρο φυσικής μνήμης.  Το βασικό τμήμα αναλαμβάνει να φορτώνει κάθε φορά το κατάλληλο overlay. MS-DOS Command.com PSP Αποθήκη Βασικό τμήμα 640ΚΒ Δίσκος Αποθήκη Πελάτες ΤιμολόγιαΠρομ/τές

20 Η διευρυμένη μνήμη  H μέθοδος των overlays είναι κατάλληλη για προγράμματα αλλά όχι για μεγάλα αρχεία δεδομένων.  Το 1987 οι Lotus, Intel και Microsoft ανέπτυξαν ειδικές κάρτες μνήμης και software ώστε να μπορεί ο 8088 να «βλέπει» μεγάλα ποσά μνήμης. Το πρότυπο αυτό ονομάστηκε LIM-EMS (Expanded Memory System).  Το 1ΜΒ διευθύνσεων του 8088 χωρίζεται σε 64 σελίδες των 16ΚΒ. Η διευρυμένη μνήμη (μέχρι 32 ΜΒ) χωρίζεται επίσης σε σελίδες (έως και 2048) των 16Κ. Το hardware στην κάρτα EMS μπορεί να απεικονίζει οποιαδήποτε σελίδα της διευρυμένης μνήμης σε οποιαδήποτε από τις 64 σελίδες των λογικών διευθύνσεων (0..1ΜΒ). Σελίδα 1 Σελίδα 2 Σελίδα 3 Σελίδα 4 Σελίδα 5 Σελίδα 63 Σελίδα ΜΒ Σελίδα 1 Σελίδα 2 Σελίδα 3 Σελίδα 4 Σελίδα 512 Σελίδα Σελίδα 2047 Σελίδα 2048 Σελίδα ΜΒ LIM-EMS memory

21 Μέθοδοι διαχείρισης μνήμης στο DOS  Η διαχείριση μνήμης στο MS-DOS είναι περίπλοκη λόγω του περιορισμού του 8088 στο 1ΜΒ μνήμης και του MS-DOS στα 640Κ. Έχουν χρησιμοποιηθεί 5 συνολικά τεχνικές. Α/ΑΤεχνικήΧρήση 1Ανώτερη Μνήμη (UMA) Αντιστοιχείται το ROM BIOS, φορτώνονται οι οδηγοί συσκευών και τα προγράμματα TSR. Χαρτογραφεί τμήματα της XMS. 2Υψηλή Μνήμη (HMA)Τοποθετούνται τμήματα του MS-DOS 3 Εκτεταμένη Μνήμη (XMS) Χρησιμοποιείται ως RAM-Disk αλλά και ως κανονική μνήμη όταν απεικονίζεται σε τμήματα της UMA. 4 Τμήματα Επικάλυψης (overlays) Χρησιμοποιείται τμήμα της συμβατικής μνήμης για εναλλακτική τοποθέτηση τμημάτων των προγρ/των. 5Διευρυμένη μνήμη (EMS) Οι 64 σελίδες των 16Κ (1ΜΒ) της προσπελάσιμης μνήμης απεικονίζονται σε οποιεσδήποτε από τις 2048 σελίδες της διευρυμένης μνήμης. Επιτρέπει προσπέλαση σε μεγάλες ποσότητες δεδομένων

22 Διαχείριση δεσμευμένων/ελεύθερων τμημάτων  Η διαχείριση των δεσμευμένων ή ελεύθερων τμημάτων μνήμης δεν γίνεται με πίνακες αλλά κατανεμημένα όπως και στις διεργασίες.  Η προσπελάσιμη μνήμη του 1 ΜΒ χωρίζεται σε συνεχόμενα τμήματα που ονομάζονται αρένες.  Κάθε αρένα ξεκινά στην αρχή μίας παραγράφου (δεκαεξάδας / seg- ment). Στην αρχή κάθε αρένας εγγράφεται μία επικεφαλίδα που ονομάζεται arena header (16 bytes) και περιέχει : 1.Δείκτη προς το PSP της διεργασίας που έχει δεσμεύσει την αρένα ή 0 αν η αρένα είναι ελεύθερη. 2.Το μέγεθος της αρένας. 3.Το όνομα του προγράμματος που δέσμευσε την αρένα όταν η αρένα περιέχει το ίδιο το πρόγραμμα και όχι επιπλέον δεσμευμένη μνήμη.  Οι αρένες δεν σχηματίζουν ενωμένη λίστα (όπως τα PSP) αλλά με σειριακή σάρωση των αρένων μπορούν να βρεθούν τα δεσμευμένα και τα ελεύθερα τμήματα μνήμης (αφού σε κάθε header υπάρχει το μέγεθος).

23 Αρένες  Όταν αναζητείται από το Λ.Σ. κάποιο ελεύθερο τμήμα μνήμης, σαρώνονται όλες οι αρένες από κάτω προς τα πάνω.  Όταν βρεθεί μία αρκετά μεγάλη ελεύθερη αρένα τότε δεσμεύεται μόνο η μνήμη που χρειάζεται και δημιουργείται μία επιπλέον αρένα με το εναπομείναν ελεύθερο τμήμα.  Όταν αποδεσμεύεται μία αρένα δεν ενώνεται με τα γειτονικά της ελεύθερα τμήματα παρά μόνο σε επόμενη σάρωση των αρένων. MS-DOS Command.com Lotus123.exe Ελεύθερη Αρένα RAM οθόνης Ελεύθερη Αρένα Μνήμη Ι/Ο Ελεύθερη Αρένα ROM - BIOS 640K Συμβατική μνήμη Ανώτερη μνήμη 1 ΜΒ Αρένα Επικε- φαλίδα Αρένας

24 Το σύστημα αρχείων του DOS  Ο τομέας εκκίνησης περιέχει τον bootstrap loader και κρίσιμες πληροφορίες για το σύστημα αρχείων.  Στο τέλος του υπάρχει ο πίνακας διαμερίσεων.  Περιέχει την αρχή και το τέλος της κάθε διαμέρισης (έως 4).  Μια διαμέριση είναι πάντα ενεργή για τη διαδικασία της εκκίνησης.

25 Πίνακας κατανομής αρχείων (FAT) 0X 1X 2EOF FREE FREE 12EOF 13EOF 14FREE 15BAD 16… Μέγεθος Δίσκου Μη κατανεμημένο Τέλος Αρχείου Κατεστραμμένο Cluster 6842Αρχείο Α : 5912Αρχείο Β : 10313Αρχείο Γ :  Ο αριθμός FFF 16 σημαίνει «Τέλος Αρχείου» (EOF).  Ο αριθμός σημαίνει «Ελεύθερος Cluster» (FREE).  O αριθμός FF7 16 σημαίνει «Kατεστραμμένος Cluster» (BAD).

26 Εγγραφές καταλόγων Ώρα (2 byte) Ημερομηνία (2 byte) Διεύθ. 1ου cluster (2 byte) Μέγεθος Αρχείου (4 byte) Δεσμευμένος χώρος για μελλοντική χρήση (10 byte) ΑDVSHR Επέκταση (3 byte) Όνομα Αρχείου (8 byte) 16 bits Attributes αρχείων :  A : (Archive bit) δείχνει ότι το αρχείο έχει τροποποιηθεί από το τελευταίο backup.  D : (Directory bit) δείχνει ότι το αρχείο είναι κατάλογος.  V : (Volume Label bit) δείχνει ότι το αρχείο περιέχει την ετικέτα δίσκου.  S : (System bit) δείχνει ότι πρόκειται για αρχείο συστήματος.  H : (Hidden bit) καθορίζει αν το αρχείο θα φαίνεται ή όχι.  R: (Read-only bit) καθορίζει ότι το αρχείο είναι μόνο για ανάγνωση.

27 Η κλήση συστήματος OPEN  Για το άνοιγμα ενός αρχείου από μία διεργασία καλείται η κλήση του MS_DOS ‘OPEN’ η οποία λειτουργεί ως εξής :  Το MS-DOS ψάχνει στο PSP της διεργασίας για το αν υπάρχει ελεύθερος χώρος στον πίνακα περιγραφέων αρχείων (file descriptor table) που έχει μέγεθος 20 bytes. Αν βρεθεί τότε αναζητείται ελεύθερος χώρος στον κεντρικό πίνακα αρχείων του MS-DOS (system file table).  Αν βρεθεί τότε εξετάζεται αν το αρχείο είναι ειδικό αρχείο (con, lpt, …). Αν όχι εξετάζεται αν ο πρώτος χαρακτήρας είναι ‘\’ (απόλυτη ή σχετική διεύθυνση). Στη συνέχεια αναζητείται το αρχείο στο δένδρο των καταλόγων.  Αν βρεθεί τότε η εγγραφή καταλόγου για το αρχείο αντιγράφεται στον κεντρικό πίνακα αρχείων και ο δείκτης θέσης αρχείου μηδενίζεται (δείχνει στην αρχή).  Ο Α/Α εγγραφής του αρχείου στον κεντρικό πίνακα αρχείων καθώς και ο δείκτης θέσης αντιγράφονται και στο PSP της διεργασίας που ανοίγει το αρχείο.

28 Ένα ανοιχτό αρχείο MS-DOS

29 Υλοποίηση εισόδου/εξόδου στο DOS  Όλη η Ε/Ε στο DOS γίνεται μέσω ειδικών αρχείων χαρακτήρων ή μπλοκ, ανάλογα με τη συσκευή.  Για κάθε συσκευή υπάρχει οδηγός συσκευής που περιέχει το πρόγραμμα Ε/Ε.  Μερικοί οδηγοί περιλαμβάνονται ήδη στο io.sys.  Επιπλέον οδηγοί μπορούν να φορτωθούν κατά την εκκίνηση με την εντολή DEVICE ή στο autoexec.bat.  Κάθε οδηγός είναι πρόγραμμα σε C, assembly ή άλλη γλώσσα μεταγλωττισμένο σε αρχείο.com,.exe ή.sys.  Αποτελείται από την επικεφαλίδα (header) μήκους 18 byte και τον κώδικα Ι/Ο χωρισμένο σε 2 τμήματα : 1.Το τμήμα διαχείρισης των κλήσεων συστήματος, και 2.Το τμήμα εκτέλεσης των διαδικασιών εισόδου/εξόδου.  Η επικεφαλίδα αποτελείται από τον δείκτη στον επόμενο οδηγό, τον πίνακα χαρακτηριστικών του οδηγού, δύο δείκτες για τα δύο τμήματα του κώδικα και το όνομα του οδηγού μέχρι 8 χαρακτήρες (‘com1’, ‘lpt1’, ‘con’ κ.λ.π.).

30 Οδηγοί συσκευών Κλήσεις MS-DOS Διαδικασίες I/O Όνομα : com1 Δείκτης κώδικα Ι/Ο Δείκτης κλήσεων Ιδιότητες Οδηγού Δείκτης σε επόμενο οδηγό Επικεφαλίδα Header Κλήσεις MS-DOS Διαδικασίες I/O Όνομα : lpt1 Δείκτης κώδικα Ι/Ο Δείκτης κλήσεων Ιδιότητες Οδηγού Δείκτης σε επόμενο οδηγό Διαδοχικοί οδηγοί com1 και lpt1  Οι οδηγοί συσκευών είναι διασυνδεδεμένοι σε μία ενωμένη λίστα. Το MS-DOS κρατά ένα δείκτη στην κορυφή της λίστας για να μπορεί να προσπελαύνει όλους τους οδηγούς συσκευών.  Κάθε νέος οδηγός τοποθετείται στην κορυφή της λίστας και επομένως έχει πλεονέκτημα γιατί προσπελαύνεται πρώτος.  Οι ιδιότητες ενός οδηγού συσκευής αποτελούνται από 16 bits (2 bytes). Το κάθε bit δηλώνει και ένα χαρακτηριστικό του οδηγού.

31 Πρόοδος κλήσης συστήματος για Ε/Ε 1.Ένα πρόγραμμα κάνει κλήση READ ή WRITE. Αφού το αρχείο είναι ανοιχτό, η συσκευή βρίσκεται ακολουθώντας το PSP και τον κεντρικό πίνακα αρχείων. 2.Κατασκευάζεται ένα μήνυμα αίτησης με 13 bytes τουλάχιστον που περιέχει: Κωδικό εντολής READ ή WRITE. Διεύθυνση μνήμης από όπου θα γίνει ανάγνωση ή όπου θα γίνει η εγγραφή. Διεύθυνση συσκευής για συσκευές τύπου μπλοκ. Πλήθος bytes 3.Από την επικεφαλίδα του οδηγού διαβάζεται ο δείκτης προς τον διαχειριστή κλήσεων και καλείται (εξετάζει το μήνυμα και αποθηκεύει πεδία). 4.Στη συνέχεια το Λ.Σ. διαβάζει τον δείκτη στην ρουτίνα Ι/Ο και την καλεί για να ξεκινήσει η επικοινωνία. 5.Κατά τον τερματισμό ο οδηγός επιστρέφει έναν κωδικό εξόδου σχετικά με το αν η εκτέλεση ήταν επιτυχής ή όχι.


Κατέβασμα ppt "MS-DOS Ενός χρήστη Μονοπρογραμματισμού Για έναν επεξεργαστή (Intel 80xxx)"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google