Ms dos
This presentation is the property of its rightful owner.
Sponsored Links
1 / 31

MS-DOS PowerPoint PPT Presentation


  • 35 Views
  • Uploaded on
  • Presentation posted in: General

MS-DOS. Ενός χρήστη Μονοπρογραμματισμού Για έναν επεξεργαστή ( Intel 80xxx). Υλοποίηση του MS-DOS. Το MS-DOS είναι δομημένο σε 3 επίπεδα : To BIOS ( βασικό σύστημα εισόδου/εξόδου) και την επέκτασή του στο ibmbio.com (io.sys) .

Download Presentation

MS-DOS

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Ms dos

MS-DOS

  • Ενός χρήστη

  • Μονοπρογραμματισμού

  • Για έναν επεξεργαστή (Intel 80xxx)


Ms dos1

Υλοποίηση του MS-DOS

  • Το MS-DOS είναι δομημένο σε 3 επίπεδα :

  • To BIOS (βασικό σύστημα εισόδου/εξόδου) και την επέκτασή του στο ibmbio.com (io.sys).

  • Τον Πυρήνα (kernel) που αποτελείται από το ibmdos.com (msdos.sys).

  • Τον Φλοιό (shell) που αποτελείται από το command.com

  • Το BIOSείναι ένα σύνολο οδηγών συσκευών χαμηλού επιπέδου που απομονώνει το MS-DOS από τις λεπτομέρειες του υλικού. Βρίσκεται σε ROM και αναπτύσσεται από τους κατασκευαστές Η/Υ (όχι από τη Microsoft). Π.χ. ρουτίνες ανάγνωσης πλήκτρων, εμφάνισης χαρακτήρων στην οθόνη, ανάγνωσης απόλυτων τομέων στο δίσκο, κ.λ.π.

  • Το ibmbio.com (io.sys), αποτελεί το interface ανάμεσα στον πυρήνα και στο BIOS, έτσι ώστε ο πυρήνας να καλεί ρουτίνες του io.sys και όχι απευθείας το BIOS. Περιέχει επίσης ρουτίνες I/O που δεν υπάρχουν στη ROM.


Ms dos2

Υλοποίηση του MS-DOS

  • Το ibmdos.com (msdos.sys)περιέχει τον πυρήνα του Λ.Σ. και είναι υπεύθυνο για την διαχείριση διεργασιών, την διαχείριση μνήμης, το σύστημα αρχείων και τη διερμηνεία των κλήσεων συστήματος (system calls).

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

  • Αποτελείται από δύο τμήματα: ένα μόνιμο κομμάτι (resident) που παραμένει πάντα στη μνήμη και ένα παροδικό (transient) που φορτώνεται στην περιοχή υψηλής μνήμης και χρησιμοποιείται όταν ο φλοιός είναι ενεργός. Αν η μνήμη αυτή χρησιμοποιηθεί από άλλα προγράμματα, μόλις αυτά τερματισθούν, το παροδικό κομμάτι που είχε σβηστεί ξαναφορτώνεται στη μνήμη.


Ms dos3

Εκκίνηση του MS-DOS

  • Οι Η/Υ με Λ.Σ. MS-DOS ξεκινούν ως εξής :

  • Με το άνοιγμα του διακόπτη η CPU ξεκινά με PC=0xFFFF0 που αντιστοιχεί στη ROM. Εκεί υπάρχει διακλάδωση στη διαδικασία εκκίνησης του BIOS.

  • Αυτή αρχικά εκτελεί διαγνωστικούς ελέγχους του hardware (μνήμη RAM, αναγνώριση δίσκων, CD-ROM κ.λ.π.)

  • Ακολούθως επιχειρεί να διαβάσει τον boot sector της δισκέτας A:, και αν αυτό δεν είναι δυνατό, τότε διαβάζει τον boot sector του δίσκουκαι τo partition table. Μετά επιλέγεται το active primary partition και φορτώνεται και εκτελείται ο boot sector αυτού του partition.

  • Ο τομέας εκκίνησης εξετάζει το root directory για να εντοπίσει και να φορτώσει το ibmbio.com (io.sys) και το ibmdos.com (msdos.sys) και μεταφέρει τον έλεγχο στο io.sys.

  • Το io.sys καλεί ρουτίνες του BIOS ώστε να προετοιμάσει το υλικό και μετά η sysinit διαβάζει το config.sys για να φορτώσει οδηγούς συσκευών.

  • Τελικά ο πυρήνας φορτώνει και εκτελεί τον φλοιό (command.com) ο οποίος εκτελεί (αν υπάρχει) το Autoexec.bat.


Ms dos

Κατάσταση μνήμης μετά την εκκίνηση


Ms dos4

Διεργασίες στο MS-DOS

  • Το MS-DOS υποστηρίζει δύο κατηγορίες εκτελέσιμων αρχείων (com και exe) τα οποία δημιουργούν διεργασίες με ελαφρά διαφορετικά χαρακτηριστικά :

  • Διεργασίες που ξεκινούν από comαρχεία (*.com) : επιτρέπεται να έχουν ένα τμήμα μεγέθους μέχρι 64ΚΒ κοινό για κώδικα, δεδομένα και στοίβα.

  • Η διεργασία δεσμεύει όλη τη μνήμη. Για να εκτελεστεί μια θυγατρική διεργασία πρέπει πρώτα να απελευθερωθεί η επιπλέον μνήμη (πέρα από τα 64ΚΒ).

  • Το εκτελέσιμο αρχείο στο δίσκο είναι ίδιο byte προς byte με τον κώδικα μηχανής που εκτελείται στη μνήμη. Δεν υπάρχει επικεφαλίδα (header).

com

Code Segment

Stack

64K

Πρόγραμμα

στο δίσκο

Data Segment

Code Segment

MS-DOS


Ms dos5

Διεργασίες στο MS-DOS

  • Διεργασίες που ξεκινούν από exeαρχεία (*.exe) :έχουν ανεξάρτητα τμήματα. Τα exe αρχεία περιέχουν στην αρχή μία επικεφαλίδα με πληροφορίες για την τοποθέτηση του κώδικα στη μνήμη.

  • Η επικεφαλίδα ξεκινά πάντα με τα bytes 4D16, 5A16 (7710, 9010 ή ‘M’, ‘Z’). Το MS-DOS δεν κοιτά την επέκταση του ονόματος (.com ή .exe) αλλά τα δύο πρώτα byte του αρχείου.

640KB

Stack

Πρόγραμμα στο δίσκο

Heap

Δυναμική μνήμη

exe

Data Segment

Code Segment

Επικεφαλίδα

Code Segment

MS-DOS


Ms dos

Πρόθεμα τμήματος κώδικα

  • Τα πρώτα 256 bytes κάθε διεργασίας στη μνήμη αποτελούν ένα ειδικό τμήμα που ονομάζεται PSP(Program Segment Prefix – Πρόθεμα Τμήματος Κώδικα).

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

  • Το μέγεθος του κώδικα της διεργασίας

  • Δείκτη στο μπλοκ περιβάλλοντος (environment block) που περιέχει τις μεταβλητές συστήματος (π.χ. TEMP=C:\Temp).

  • Διεύθυνση της ρουτίνας διαχείρισης του πατήματος των πλήκτρων Ctrl+C.

  • Τις παραμέτρους εκτέλεσης του προγράμματος (π.χ. dira:*.* /w).

  • Δείκτη στο PSP της γονικής διεργασίας.

  • Πίνακα περιγραφέων αρχείων (file descriptor table) που περιέχει έναν χαρακτηριστικό αριθμό για κάθε αρχείο που ανοίγει η διεργασία, καθώς και την τρέχουσα θέση στο αρχείο (0=stdin, 1=stdout, 2=stderr, 3=…).


Ms dos

Πρόθεμα τμήματος κώδικα

  • Στις διεργασίες που ξεκινούν από com αρχεία το PSP είναι μέρος των διευθύνσεων της διεργασίας, δηλαδή ο κώδικας ξεκινά από την διεύθυνση 256 (από 0-255 είναι το PSP).

  • Οι διεργασίες που ξεκινούν από exe αρχεία μετατοπίζονται πάνω από το PSP το οποίο είναι εκτός των διευθύνσεων της διεργασίας, δηλαδή ο κώδικας ξεκινά από την διεύθυνση 0 της διεργασίας.

640KB

Stack

Heap

Δυναμική μνήμη

Stack

64KB

Data Segment

Data Segment

Code Segment

Code Segment

Διεύθ. 256

Διεύθ. 0

PSP

PSP

Διεύθ. 0

MS-DOS

MS-DOS

Διεργασία από com

Διεργασία από exe


Ms dos

Αποδοτική διαχείριση μνήμης διεργασιών

  • Το MS-DOS δεν υποστηρίζει καμία μέθοδο για αύξηση της διαθέσιμης μνήμης στις διεργασίες (εικονική μνήμη, σελιδοποίηση, εναλλαγή σελίδων κ.λ.π.).

  • Όταν μία μεγάλη διεργασία ξεκινά μία θυγατρική, ενδέχεται να μην υπάρχει η απαιτούμενη μνήμη για την εκτέλεσή της. Έτσι κάθε διεργασία που δημιουργεί θυγατρικές κατασκευάζεται σε 2 μέρη: το (μικρό) στέλεχος και τον κύριο κορμό.

xcopy.exe

PSP

Κύριος κορμός

editor

Command.com

Command.com

PSP

PSP

Στέλεχος

Στέλεχος

Στέλεχος

PSP

PSP

PSP

Command.com

Command.com

Command.com

Command.com

PSP

PSP

PSP

PSP

MS-DOS

MS-DOS

MS-DOS

MS-DOS


Ms dos6

Διεργασίες στο MS-DOS

  • Το MS-DOS δεν υποστηρίζει πολυπρογραμματισμό και ταυτόχρονη εκτέλεση διεργασιών.

  • Η βασική διεργασία που εκτελείται αρχικά είναι το command.com

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

  • Οι εντολές εκτελούνται πάντα στο προσκήνιο (σε αντίθεση με το Unix)

  • Γονική και θυγατρική διεργασία δεν μπορούν να εκτελούνται παράλληλα.

  • Μπορεί να υπάρχουν πολλές διεργασίες στη μνήμη αλλά μόνο μία (η τελευταία) είναι ενεργή. Οι άλλες είναι υπό αναστολή.

  • TSR – Terminate and Stay Resident : προγράμματα που τερματίζουν αλλά παραμένουν στη μνήμη χωρίς να απελευθερώνουν τα αγαθά που κατέχουν. Τα TSR εγκαθιστούν δικούς τους χειριστές διακοπών έτσι ώστε να παρεμβαίνουν και να εκτελούνται όταν δημιουργούνται interrupts (π.χ. βελάκι πάνω ενεργοποιεί το doskey).

  • Με την ύπαρξη των TSR και των διακοπών υλοποιείται ένα σύστημα ψευδοπαραλληλισμού διεργασιών.


Ms dos7

Μονοπρογραμματισμός στο MS-DOS

  • Παράδειγμα αλυσιδωτής δημιουργίας διεργασιών:

  • Τ1 : η ενεργή διεργασία είναι ο φλοιός (command.com).

  • Τ2 : στον φλοιό εκτελείται μία εφαρμογή χρήστη και γίνεται ενεργή.

  • Τ3 : η εφαρμογή χρησιμοποιεί την εντολή xcopy που γίνεται ενεργή.

  • Τ4 : τελειώνοντας η xcopy επιστρέφουμε στην εφαρμογή.

  • Τ5 : τελειώνοντας η εφαρμογή ο φλοιός ξαναγίνεται ενεργός.

Τ3

Τ4

Τ5

Τ1

Τ2


Ms dos

Ψευδοπαραλληλισμός με χρήση TSR

  • Παράδειγμα ψευδοπαραλληλισμού διεργασιών με TSR-διακοπές:

  • Τ1 : Ο φλοιός είναι ενεργός. Έχει φορτωθεί TSR για Ελληνικά/Αγγλικά.

  • Τ2 : Από τον φλοιό εκτελείται μία εφαρμογή χρήστη (π.χ. Edit).

  • Τ3 : Ο χρήστης πατάει Alt+Shift και παράγει διακοπή που ενεργοποιεί το TSR. Η εφαρμογή τελεί υπό αναστολή.

  • Τ4 : Με το τέλος της ρουτίνας διακοπής επιστρέφουμε στην εφαρμογή.

  • Τ5 : Με το τέλος της εφαρμογής επιστρέφουμε στο φλοιό.

Τ5

Τ3

Τ4

Τ2

Τ1


Ms dos

Υλοποίηση διεργασιών στο DOS

  • Όταν μια διεργασία καλεί την κλήση συστήματος LOAD_AND_EXEC για να δημιουργήσει θυγατρική, τότε το Λ.Σ. εκτελεί τα εξής βήματα :

  • Βρίσκει ένα μπλοκ στη μνήμη που να χωράει τη θυγατρική διεργασία. Στα exe αρχεία το απαιτούμενο μέγεθος μνήμης περιγράφεται στην επικεφαλίδα (header). Στις διεργασίες από αρχεία com αποδίδεται ολόκληρη η διαθέσιμη μνήμη.

  • Δημιουργεί το PSP στα πρώτα 256 bytes της μνήμης που δεσμεύτηκε με τις απαραίτητες πληροφορίες. Ένας δείκτης δείχνει προς τη γονική διεργασία.

  • Φορτώνει τον εκτελέσιμο κώδικα από το αρχείο στην δεσμευμένη μνήμη ξεκινώντας από το πρώτο byte μετά το PSP.

  • Δίνει τον έλεγχο στο πρόγραμμα. Στα exe αρχεία η διεύθυνση εκκίνησης του κώδικα περιέχεται στην επικεφαλίδα. Στις διεργασίες από com αρχεία η διεύθυνση εκκίνησης είναι σταθερή και είναι η 010016 = 25610δηλαδή είναι η πρώτη εντολή κώδικα μηχανής αμέσως μετά το PSP.


Ms dos

Το μοντέλο μνήμης του DOS

  • Ο επεξεργαστής 8088 μπορούσε να προσπελάσει 1ΜΒ μνήμης με 20 γραμμές διευθύνσεων (220=1048576). Για συμβατότητα όμως με τον 8080 είχε καταχωρητές διευθύνσεων των 16 bits (216=65536). Έτσι επινοήθηκε η μέθοδος των παραγράφων (paragraphs).

  • Κάθε διεύθυνση των 16 bits δεν αναφέρεται σε απόλυτη διεύθυνση αλλά στην αρχή μίας δεκαεξάδας από bytes. Η τελευταία δεκαεξάδα είναι η FFFF16 που αναφέρεται στην διεύθυνση FFFF016= 1048560.

  • Για την προσπέλαση οποιασδήποτε διεύθυνσης μνήμης εκτός από την διεύθυνση παραγράφου (segment) χρειάζεται και μία διεύθυνση μετατόπισης (offset). Έτσι οι διευθύνσεις σχηματίζονται ως segment:offset (π.χ. το 17ο byte μνήμης έχει διεύθυνση 0001:0001 αλλά και 0000:0011).

  • Για να βρούμε την απόλυτη διεύθυνση μνήμης ακολουθούμε τον απλό τύπο : Απόλυτη διεύθυνση = segment X 16 + offset.


Ms dos

Τμήματα μνήμης

  • Ο 8088 είχε 4 16μπιτους καταχωρητές για διευθύνσεις segments:

  • CS : Code Segment, για την διεύθυνση segment του κώδικα.

  • DS : Data Segment, για την διεύθυνση segment των δεδομένων.

  • SS : Stack Segment, για την διεύθυνση segment της στοίβας.

  • ES : Extra Segment, επιπλέον διεύθυνση segment γενικής χρήσης.

  • Το κάθε τμήμα (κώδικα, δεδομένων, στοίβας, έξτρα) έχοντας σταθερή διεύθυνση segment, μπορεί μέσω του μεταβλητού 16μπιτου offset να έχει μέγεθος μέχρι 64Κ.

  • Αλλάζοντας τιμή στον segment register κάποιου τμήματος είναι δυνατή η επανατοποθέτηση (relocation) του τμήματος σε οποιαδήποτε δεκαεξάδα μνήμης.

8FFFF16 = 589823

Stacksegment

SS=800016 = 32768

8000016 = 524288

6FFFF16 = 458751

Data Segment

DS=600016 = 24576

6000016 = 393216

4FFFF16 = 327679

Code Segment

4000016 = 262144

CS=400016 = 16384

MS-DOS


Ms dos

Συμβατική, ανώτερη και υψηλή μνήμη

  • Το MS-DOS χρησιμοποιεί μόνο τα πρώτα 640ΚΒ που ονομάζονται Συμβατική Mνήμη (conventional memory).

  • Η περιοχή πάνω από τα 640ΚΒ και έως το 1ΜΒ (384ΚΒ) ονομάζεται Ανώτερη Μνήμη (Upper Memory Area – UMA) και σε αυτήν απεικονίζεται το ROM BIOS και διευθύνσεις που χρησιμοποιούν οι συσκευές (καταχωρητές, buffers κ.λ.π.).

  • Ο 80286 μπορούσε να προσπελάσει 16 MB μνήμης.

  • Λαμβάνοντας την τελευταία δεκαεξάδα (FFFF16) και προσθέτοντας σε αυτήν το offset που μπορεί να είναι από 000016έως FFFF16 παίρνουμε την περιοχή διευθύνσεων FFFF:0000 (1048560) έως FFFF:FFFF (1114095).

  • Από αυτή την περιοχή μόνο τα πρώτα 16 bytes είναι μέσα στο 1 ΜΒ (1048560-1048575). Τα υπόλοιπα 65520 bytes είναι πάνω από το 1ΜΒ και ονομάζονται Υψηλή Περιοχή Μνήμης (High Memory Area–HMA)

  • Στην HMA μπορούν να φορτώνονται τμήματα του MS-DOS ή και οδηγοί συσκευών ώστε να απελευθερώνουν έως και 65520 επιπλέον bytes από τη συμβατική μνήμη των 640Κ.


Ms dos

Η εκτεταμένη μνήμη

  • Η μνήμη πάνω από την HMA και έως τα 16ΜΒ ονομάζεται Εκτεταμένη μνήμη (Extended memory - XMS).

  • To MS-DOS δεν επέτρεπε την χρήση της από προγράμματα αλλά μπορούσε να την εκμεταλλευτεί ως RAM-Disk.

  • Από την έκδοση 5.0 και μετά το MS-DOS επέτρεπε την αντιστοίχιση τμημάτων της Εκτεταμένης μνήμης σε κενές περιοχές της UMA ώστε να χρησιμοποιούνται και από προγράμματα.

16 MB

Extended

memory

Extended

memory

RAM Disk

HMA

HMA

1 MB

BIOS, Drivers

I/O memory

UMA

UMA

640ΚΒ

Προγράμματα

Προγράμματα

Conventional

Memory

Command.com

Command.com

PSP

PSP

MS-DOS

MS-DOS


Ms dos

Τμήματα επικάλυψης

  • Μία μέθοδος για αύξηση της διαθέσιμης μνήμης κάτω από τα 640ΚΒ για χρήση από προγράμματα είναι η μέθοδος των Τμημάτων Επικάλυψης (overlays).

  • Κάθε μεγάλο πρόγραμμα (π.χ. πρόγραμμα λογιστικής) αποτελείται από ένα βασικό τμήμα (.exe) που είναι πάντα φορτωμένο στη μνήμη και από πολλά ανεξάρτητα υποτμήματα (overlays - *.ovl) που μπορούν να εναλλάσσονται στον ίδιο χώρο φυσικής μνήμης.

  • Το βασικό τμήμα αναλαμβάνει να φορτώνει κάθε φορά το κατάλληλο overlay.

Δίσκος

640ΚΒ

Αποθήκη

Βασικό τμήμα

Αποθήκη

Πελάτες

PSP

Command.com

Τιμολόγια

Προμ/τές

PSP

MS-DOS


Ms dos

Η διευρυμένη μνήμη

  • 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ΜΒ).

Σελίδα 2048

32 ΜΒ

LIM-EMS memory

Σελίδα 2047

...

1 ΜΒ

Σελίδα 64

Σελίδα 514

Σελίδα 63

...

Σελίδα 513

8088

Σελίδα 512

Σελίδα 5

...

Σελίδα 4

Σελίδα 4

Σελίδα 3

Σελίδα 3

Σελίδα 2

Σελίδα 2

Σελίδα 1

Σελίδα 1


Ms dos

Μέθοδοι διαχείρισης μνήμης στο DOS

  • Η διαχείριση μνήμης στο MS-DOS είναι περίπλοκη λόγω του περιορισμού του 8088 στο 1ΜΒ μνήμης και του MS-DOS στα 640Κ. Έχουν χρησιμοποιηθεί 5 συνολικά τεχνικές.


Ms dos

Διαχείριση δεσμευμένων/ελεύθερων τμημάτων

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

  • Η προσπελάσιμη μνήμη του 1 ΜΒ χωρίζεται σε συνεχόμενα τμήματα που ονομάζονται αρένες.

  • Κάθε αρένα ξεκινά στην αρχή μίας παραγράφου (δεκαεξάδας / seg-ment). Στην αρχή κάθε αρένας εγγράφεται μία επικεφαλίδα που ονομάζεται arena header(16 bytes) και περιέχει :

  • Δείκτη προς το PSP της διεργασίας που έχει δεσμεύσει την αρένα ή 0 αν η αρένα είναι ελεύθερη.

  • Το μέγεθος της αρένας.

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

  • Οι αρένες δεν σχηματίζουν ενωμένη λίστα (όπως τα PSP) αλλά με σειριακή σάρωση των αρένων μπορούν να βρεθούν τα δεσμευμένα και τα ελεύθερα τμήματα μνήμης (αφού σε κάθε header υπάρχει το μέγεθος).


Ms dos

Αρένες

  • Όταν αναζητείται από το Λ.Σ. κάποιο ελεύθερο τμήμα μνήμης, σαρώνονται όλες οι αρένες από κάτω προς τα πάνω.

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

  • Όταν αποδεσμεύεται μία αρένα δεν ενώνεται με τα γειτονικά της ελεύθερα τμήματα παρά μόνο σε επόμενη σάρωση των αρένων.

1 ΜΒ

ROM - BIOS

Ελεύθερη Αρένα

Ανώτερη

μνήμη

Μνήμη Ι/Ο

Ελεύθερη Αρένα

RAM οθόνης

640K

Ελεύθερη Αρένα

Αρένα

Συμβατική

μνήμη

Lotus123.exe

Επικε-

φαλίδα

Αρένας

Command.com

MS-DOS


Ms dos

Το σύστημα αρχείων του DOS

  • Ο τομέας εκκίνησης περιέχει τον bootstrap loader και κρίσιμες πληροφορίες για το σύστημα αρχείων.

  • Στο τέλος του υπάρχει ο πίνακας διαμερίσεων.

  • Περιέχει την αρχή και το τέλος της κάθε διαμέρισης (έως 4).

  • Μια διαμέριση είναι πάντα ενεργή για τη διαδικασία της εκκίνησης.


Ms dos

Πίνακας κατανομής αρχείων (FAT)

Μέγεθος Δίσκου

Αρχείο Α :

6

8

4

2

Αρχείο Β :

5

9

12

Αρχείο Γ :

10

3

13

Μη κατανεμημένο

  • Ο αριθμός FFF16σημαίνει «Τέλος Αρχείου» (EOF).

  • Ο αριθμός 00016 σημαίνει«Ελεύθερος Cluster» (FREE).

  • O αριθμός FF716σημαίνει «Kατεστραμμένος Cluster» (BAD).

Τέλος Αρχείου

Κατεστραμμένο Cluster


Ms dos

Εγγραφές καταλόγων

16 bits

Attributes αρχείων :

  • A : (Archive bit) δείχνει ότι το αρχείο έχει τροποποιηθεί από το τελευταίο backup.

  • D : (Directory bit) δείχνει ότι το αρχείο είναι κατάλογος.

  • V : (Volume Label bit) δείχνει ότι το αρχείο περιέχει την ετικέτα δίσκου.

  • S : (System bit) δείχνει ότι πρόκειται για αρχείο συστήματος.

  • H : (Hidden bit) καθορίζει αν το αρχείο θα φαίνεται ή όχι.

  • R: (Read-only bit) καθορίζει ότι το αρχείο είναι μόνο για ανάγνωση.

Όνομα Αρχείου(8 byte)

Επέκταση(3 byte)

Δεσμευμένος χώρος για μελλοντική χρήση(10 byte)

Ώρα(2 byte)

Ημερομηνία(2 byte)

Διεύθ. 1ου cluster (2 byte)

Μέγεθος Αρχείου(4byte)


Ms dos

Η κλήση συστήματος OPEN

  • Για το άνοιγμα ενός αρχείου από μία διεργασία καλείται η κλήση του MS_DOS‘OPEN’ η οποία λειτουργεί ως εξής :

  • Το MS-DOS ψάχνει στο PSP της διεργασίας για το αν υπάρχει ελεύθερος χώρος στον πίνακα περιγραφέων αρχείων (file descriptor table) που έχειμέγεθος 20 bytes. Αν βρεθεί τότε αναζητείται ελεύθερος χώρος στον κεντρικό πίνακα αρχείων του MS-DOS (system file table).

  • Αν βρεθεί τότε εξετάζεται αν το αρχείο είναι ειδικό αρχείο (con, lpt, …). Αν όχι εξετάζεται αν ο πρώτος χαρακτήρας είναι ‘\’ (απόλυτη ή σχετική διεύθυνση). Στη συνέχεια αναζητείται το αρχείο στο δένδρο των καταλόγων.

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

  • Ο Α/Α εγγραφής του αρχείου στον κεντρικό πίνακα αρχείων καθώς και ο δείκτης θέσης αντιγράφονται και στο PSP της διεργασίας που ανοίγει το αρχείο.


Ms dos8

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


Ms dos

Υλοποίηση εισόδου/εξόδου στο DOS

  • Όλη η Ε/Ε στο DOS γίνεται μέσω ειδικών αρχείων χαρακτήρων ή μπλοκ, ανάλογα με τη συσκευή.

  • Για κάθε συσκευή υπάρχει οδηγός συσκευής που περιέχει το πρόγραμμα Ε/Ε.

  • Μερικοί οδηγοί περιλαμβάνονται ήδη στο io.sys.

  • Επιπλέον οδηγοί μπορούν να φορτωθούν κατά την εκκίνηση με την εντολή DEVICE ή στο autoexec.bat.

  • Κάθε οδηγός είναι πρόγραμμα σε C, assembly ή άλλη γλώσσα μεταγλωττισμένο σε αρχείο .com, .exe ή .sys.

  • Αποτελείται από την επικεφαλίδα (header) μήκους 18 byte και τον κώδικα Ι/Ο χωρισμένο σε 2 τμήματα :

  • Το τμήμα διαχείρισης των κλήσεων συστήματος, και

  • Το τμήμα εκτέλεσης των διαδικασιών εισόδου/εξόδου.

  • Η επικεφαλίδα αποτελείται από τον δείκτη στον επόμενο οδηγό, τον πίνακα χαρακτηριστικών του οδηγού, δύο δείκτες για τα δύο τμήματα του κώδικα και το όνομα του οδηγού μέχρι 8 χαρακτήρες (‘com1’, ‘lpt1’, ‘con’ κ.λ.π.).


Ms dos

Οδηγοί συσκευών

  • Οι οδηγοί συσκευών είναι διασυνδεδεμένοι σε μία ενωμένη λίστα. Το MS-DOS κρατά ένα δείκτη στην κορυφή της λίστας για να μπορεί να προσπελαύνει όλους τους οδηγούς συσκευών.

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

  • Οι ιδιότητες ενός οδηγού συσκευής αποτελούνται από 16 bits (2 bytes). Το κάθε bit δηλώνει και ένα χαρακτηριστικό του οδηγού.

Δείκτης σε επόμενο οδηγό

Δείκτης σε επόμενο οδηγό

Επικεφαλίδα

Header

Ιδιότητες Οδηγού

Ιδιότητες Οδηγού

Δείκτης κλήσεων

Δείκτης κλήσεων

Δείκτης κώδικα Ι/Ο

Δείκτης κώδικα Ι/Ο

Όνομα : com1

Όνομα : lpt1

Διαδικασίες I/O

Διαδικασίες I/O

Κλήσεις MS-DOS

Κλήσεις MS-DOS

Διαδοχικοί οδηγοί com1 και lpt1


Ms dos

Πρόοδος κλήσης συστήματος για Ε/Ε

  • Ένα πρόγραμμα κάνει κλήση READ ή WRITE. Αφού το αρχείο είναι ανοιχτό, η συσκευή βρίσκεται ακολουθώντας το PSP και τον κεντρικό πίνακα αρχείων.

  • Κατασκευάζεται ένα μήνυμα αίτησης με 13 bytes τουλάχιστον που περιέχει:

    • Κωδικό εντολής READ ή WRITE.

    • Διεύθυνση μνήμης από όπου θα γίνει ανάγνωση ή όπου θα γίνει η εγγραφή.

    • Διεύθυνση συσκευής για συσκευές τύπου μπλοκ.

    • Πλήθος bytes

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

  • Στη συνέχεια το Λ.Σ. διαβάζει τον δείκτη στην ρουτίνα Ι/Ο και την καλεί για να ξεκινήσει η επικοινωνία.

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


  • Login