12Sep

Πώς ήταν δυνατή η πολλαπλή λειτουργία σε παλαιότερες εκδόσεις των Windows;

Λαμβάνοντας υπόψη ότι το DOS ήταν ένα λειτουργικό σύστημα με ένα μόνο έργο και τους δεσμούς που είχε με τις πρώτες εκδόσεις των Windows, ακριβώς όπως οι προηγούμενες εκδόσεις των Windows κατάφεραν να ολοκληρώσουν το multi-tasking;Η σημερινή θέση SuperUser Q & A εξετάζει τις απαντήσεις σε αυτή την ερώτηση.

Σήμερα Ερώτηση &Η συνάντηση απαντήσεων έρχεται με την ευγένεια του SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα-καθοδηγούμενη ομαδοποίηση Q & A ιστοσελίδες.

Windows 95 από την ευγένεια της Wikipedia.

Η ερώτηση

SuperUser αναγνώστης LeNoob θέλει να μάθει πώς παλαιότερες εκδόσεις των Windows ήταν σε θέση να τρέξουν ως συστήματα πολλαπλών εργασιών;:

Διάβασα ότι το DOS είναι ένα λειτουργικό σύστημα ενιαίας λειτουργίας.Αλλά αν οι παλαιότερες εκδόσεις των Windows( συμπεριλαμβανομένων και των Windows 95;) ήταν απλά περιτυλίγματα για το DOS, πώς θα μπορούσαν να λειτουργήσουν ως λειτουργικό σύστημα πολλαπλών λειτουργιών;

Καλή ερώτηση!Πώς οι παλαιότερες εκδόσεις των Windows κατάφεραν να λειτουργούν ως συστήματα πολλαπλών εργασιών;

Οι συνεισφέροντες της απάντησης

SuperUser Ο Bob και ο Pete έχουν την απάντηση για εμάς.Πρώτα επάνω, ο Bob:

Τα Windows 95 ήταν πολύ περισσότερα από "απλά ένα περιτύλιγμα" για το MS-DOS.Αναφερόμενος στον Raymond Chen:

  • Το MS-DOS εξυπηρετεί δύο σκοπούς στα Windows 95: 1.) Χρησίμευσε ως boot loader.&αμπέραζ;2.) Ενεργούσε ως επίπεδο οδηγού παλμών συσκευής 16-bit.

Τα Windows 95 πραγματικά γαντζώθηκε / υπερέκλασε σχεδόν όλα τα MS-DOS, διατηρώντας το ως ένα στρώμα συμβατότητας, ενώ ταυτόχρονα έκανε όλη τη βαριά ανύψωση.Έκανε επίσης προληπτική πολλαπλή λειτουργία για προγράμματα 32 bit.

Τα Windows 3.x και παλαιότερα ήταν συνήθως 16-bit( με εξαίρεση τα Win32s, ένα είδος στρώματος συμβατότητας που γεφυρώνει 16 και 32, αλλά θα το αγνοήσουμε εδώ), εξαρτιόταν περισσότερο από το DOS καιχρησιμοποιούνται μόνο συνεργατικές πολλαπλές εργασίες - αυτό είναι εκείνο όπου δεν αναγκάζουν ένα τρέχον πρόγραμμα να σβήσει?περιμένουν το τρέχον πρόγραμμα να αποδώσει τον έλεγχο( βασικά, πείτε "έχω κάνει" λέγοντας στο λειτουργικό σύστημα να τρέξει το επόμενο πρόγραμμα που περιμένει).Το

  • Multi-tasking ήταν συνεργατικό, όπως συμβαίνει και με τις παλιές εκδόσεις του MacOS( αν και σε αντίθεση με το DOS 4.x πολλαπλών εργασιών, το οποίο προκάλεσε προληπτικό πολλαπλών εργασιών).Μια εργασία έπρεπε να αποδώσει στο λειτουργικό σύστημα, προκειμένου να προγραμματίσει ένα διαφορετικό έργο.Οι αποδόσεις ενσωματώθηκαν σε συγκεκριμένες κλήσεις API, κυρίως επεξεργασία μηνυμάτων.Όσο μια εργασία επεξεργάζεται τα μηνύματα έγκαιρα, όλα ήταν ωραία.Εάν μια εργασία σταμάτησε να επεξεργάζεται τα μηνύματα και ήταν απασχολημένη με την εκτέλεση ενός βρόχου επεξεργασίας, η πολλαπλή εκτέλεση δεν ήταν πια.

Αρχιτεκτονική

των Windows 3.x Όπως και για τα πρόωρα προγράμματα των Windows που θα εξασφάλιζαν τον έλεγχο απόδοσης: Το

  • Windows 3.1 χρησιμοποιεί συνεταιρισμό πολλαπλών εργασιών - που σημαίνει ότι κάθε εφαρμογή που βρίσκεται σε διαδικασία εκκίνησης έχει εντολή να ελέγχει περιοδικά μια ουρά μηνυμάτων για να διαπιστώσει εάν υπάρχειμια άλλη εφαρμογή ζητά τη χρήση της CPU και, εάν ναι, να αποδώσει τον έλεγχο αυτής της εφαρμογής.Ωστόσο, πολλές εφαρμογές των Windows 3.1 θα ελέγχουν την ουρά μηνυμάτων μόνο σπάνια ή καθόλου και θα μονοπωλούν τον έλεγχο της CPU για όσο χρόνο χρειάζονται.Ένα προληπτικό σύστημα πολλαπλών εργασιών, όπως τα Windows 95, θα λαμβάνει τον έλεγχο CPU μακριά από μια τρέχουσα εφαρμογή και θα το διανείμει σε εκείνα που έχουν μεγαλύτερη προτεραιότητα βάσει των αναγκών του συστήματος.

Πηγή

Όλα τα DOS θα δουν είναι αυτή η ενιαία εφαρμογή( Windows ή άλλο) που εκτελείται, η οποία θα περάσει τον έλεγχο γύρω από την έξοδο.Θεωρητικά, η προληπτική πολλαπλή εκτέλεση μπορεί ενδεχομένως να εφαρμοστεί πάνω από το DOS ούτως ή άλλως με τη χρήση ενός ρολογιού σε πραγματικό χρόνο και το υλικό διακόπτει να βγάλει βίαια τον προγραμματιστή.Όπως σχολιάζει ο Tonny, αυτό έγινε πραγματικά από ορισμένα λειτουργικά συστήματα που λειτουργούν πάνω από το DOS.

386 Ενισχυμένη λειτουργία;

Σημείωση: έχουν υπάρξει κάποια σχόλια σχετικά με τη βελτιωμένη λειτουργία 386 των Windows 3.x που είναι 32-bit και την υποστήριξη προληπτικών πολλαπλών εργασιών.

Αυτή είναι μια ενδιαφέρουσα περίπτωση.Για να συνοψίσουμε τη σχετική αλληλογραφία blog, ο ενισχυμένος τρόπος 386 ήταν βασικά ένας hypervisor 32-bit, ο οποίος έτρεξε εικονικές μηχανές.Μέσα σε μία από αυτές τις εικονικές μηχανές έτρεξε το πρότυπο λειτουργίας των Windows 3.x, το οποίο κάνει όλα τα παραπάνω.

Το

MS-DOS θα τρέξει επίσης μέσα σε αυτές τις εικονικές μηχανές και προφανώς ήταν προληπτικά πολλαπλών εργασιών - έτσι φαίνεται ότι ο επεξεργαστής 386 ενισχυμένου τρόπου θα μοιράζεται τις χρονικές φέτες της CPU μεταξύ των εικονικών μηχανών( μία από τις οποίες έτρεξε κανονικά 3.xκαι άλλοι που διεξήγαγαν το MS-DOS) και κάθε VM θα κάνει το δικό του πράγμα - το 3.x θα συνεργαστεί πολλαπλών εργασιών, ενώ το MS-DOS θα είναι μεμονωμένο.

Το MS-DOS

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

Όλη αυτή η συζήτηση για το bit-ness;Ρώτησα για την πολυ-εργασία!

Λοιπόν, αυστηρά μιλώντας, το bit-ness και το multi-tasking δεν εξαρτώνται ο ένας από τον άλλο.Θα πρέπει να είναι δυνατή η εφαρμογή οποιασδήποτε λειτουργίας πολλαπλών εργασιών σε οποιαδήποτε bit-ness.Ωστόσο, η μετάβαση από τους επεξεργαστές 16-bit σε επεξεργαστές 32-bit εισήγαγε επίσης και άλλες λειτουργίες υλικού που θα μπορούσαν να έχουν καταστήσει ευκολότερη την εφαρμογή της προληπτικής πολλαπλής λειτουργίας.

Επίσης, δεδομένου ότι τα προγράμματα 32-bit ήταν καινούργια, ήταν πιο εύκολο να τα βγάλουμε στη δουλειά όταν αποσύρονται βίαια - κάτι που θα μπορούσε να έχει σπάσει κάποια παλιά προγράμματα 16 bit.

Φυσικά, αυτό είναι όλο εικασίες.Εάν πραγματικά θέλετε να μάθετε γιατί η MS δεν πραγματοποίησε προληπτικές πολλαπλές εργασίες στα Windows 3.x( παρά το βελτιωμένο τρόπο 386), θα πρέπει να ρωτήσετε κάποιον που εργάστηκε εκεί.

Επίσης, ήθελα να διορθώσω την παραδοχή σας ότι τα Windows 95 ήταν απλώς ένα περιτύλιγμα για το DOS.

Ακολουθούμενη από την απάντηση από την Pete:

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

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

DOS, από την άλλη πλευρά, δεν εισέρχεται ποτέ σε προστατευμένη λειτουργία, αλλά παραμένει σε πραγματικό τρόπο( * βλέπε παρακάτω).Σε πραγματικό τρόπο, οι εφαρμογές που εκτελούνται μπορούν να εκτελέσουν οτιδήποτε θέλει, δηλαδή πρόσβαση απευθείας στο υλικό.Αλλά μια εφαρμογή που εκτελείται σε πραγματική κατάσταση μπορεί επίσης να πει την CPU να εισέλθει στην προστατευμένη λειτουργία.

Και αυτό το τελευταίο μέρος επιτρέπει σε εφαρμογές όπως τα Windows 95 να ξεκινήσουν ένα περιβάλλον πολλαπλών σπειρωμάτων, παρόλο που βασικά ξεκίνησαν από το DOS.Το

DOS( λειτουργικό σύστημα δίσκων) ήταν, από όσο γνωρίζω, πολύ περισσότερο από ένα σύστημα διαχείρισης αρχείων.Παρείχε ένα σύστημα αρχείων, μηχανισμούς για την πλοήγηση στο σύστημα αρχείων, μερικά εργαλεία και τη δυνατότητα εκκίνησης εφαρμογών.Επίσης, επέτρεψε ορισμένες αιτήσεις να παραμείνουν κάτοικοι, δηλαδή προγράμματα οδήγησης ποντικιού και εξομοιωτές EMM.Αλλά δεν προσπάθησε να ελέγξει το υλικό στον υπολογιστή με τον τρόπο που κάνει ένα σύγχρονο λειτουργικό σύστημα.

* Όταν το DOS δημιουργήθηκε για πρώτη φορά στη δεκαετία του 1970, δεν υπήρχε προστατευμένη λειτουργία στη CPU.Δεν ήταν μέχρι το επεξεργαστή 80286 στα μέσα της δεκαετίας του '80 που ο προστατευμένος τρόπος έγινε μέρος της CPU.

Βεβαιωθείτε ότι έχετε περιηγηθεί στο αρχικό νήμα και διαβάσετε τη ζωντανή συζήτηση για αυτό το θέμα χρησιμοποιώντας τον παρακάτω σύνδεσμο!

Έχετε κάτι να προσθέσετε στην εξήγηση;Απενεργοποιήστε τα σχόλια.Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους χρήστες τεχνολογίας Stack Exchange;Δείτε το πλήρες νήμα συζήτησης εδώ.