Kako je bilo v starejših različicah operacijskega sistema Windows mogoče opravljati več nalog?
Glede na to, da je bil DOS enopravilni operacijski sistem in povezave, ki jih je imel z zgodnjimi različicami sistema Windows, kako so starejše različice operacijskega sistema Windows uspele doseči večopravilnost? Današnja objava za vprašanja in odgovori SuperUser obravnava odgovore na to vprašanje.
Današnja seja vprašanj in odgovorov prihaja z namenom SuperUser-a, ki je del skupine Stack Exchange, ki temelji na skupnostih spletnih mest za vprašanja in odgovore.
Zaslonski zaslon Windows 95 z Wikipedije.
Vprašanje
Bralnik SuperUser LeNoob želi vedeti, kako so starejše različice operacijskega sistema Windows lahko delovale kot sistemi z več opravili ?:
Prebral sem, da je DOS enopravilni OS. Toda če so starejše različice operacijskega sistema Windows (tudi Windows 95?) Bile samo ovojnice za DOS, kako bi lahko delovale kot operacijski sistem z več opravili?
Dobro vprašanje! Kako so starejše različice operacijskega sistema Windows upravljale kot sisteme z več opravili?
Odgovor
Prispevki SuperUser Bob in Pete imajo odgovor za nas. Prvič, Bob:
Windows 95 je bil za MS-DOS veliko več kot "samo ovoj". Citiranje Raymonda Chena:
- MS-DOS je v operacijskem sistemu Windows 95 služil dvema namenoma: 1.) Deloval je kot zagonski nalagalnik. & 2.) Deloval je kot 16-bitni sloj starejših gonilnikov naprav.
Windows 95 je pravzaprav zasenčil / premostil skoraj vse MS-DOS-ove, tako da je ohranil kot kompatibilen sloj, medtem ko je sam opravljal vse težke naloge. Za 32-bitne programe je izvedla tudi prednostno večopravilnost.
Pre-Windows 95
Windows 3.x in starejši so bili večinoma 16-bitni (z izjemo Win32s, nekakšen združljiv sloj, ki mostove 16 in 32, vendar ga bomo tu prezrli), so bili bolj odvisni od DOS-a in uporabljali samo zadružno večopravilnost - to je tista, kjer ne izvajajo programa, ki teče, da se izklopi; počakajo, da program teče, da pridobi nadzor (v bistvu, recite »jaz sem končal« tako, da povem OS, da zažene naslednji program, ki čaka).
- Večopravilnost je bila zadovoljujoča, tako kot v starih različicah MacOS-a (čeprav za razliko od Multi-tasking DOS 4.x, ki je izvajala preventivno večopravilnost). Naloga je morala podleči OS, da bi lahko določila drugačno nalogo. Donosi so bili vgrajeni v nekatere klice API, predvsem obdelavo sporočil. Dokler je naloga pravočasno obdelovala sporočila, je bilo vse odlično. Če je naloga prenehala obdelovati sporočila in je bila zasedena z izvajanjem neke zanke obdelave, večnamenska obdelava ni bila več.
Arhitektura za Windows 3.x
Glede na to, kako bi zgodnji programi Windows prinesli nadzor:
- Windows 3.1 uporablja zadružno večopravilnost - kar pomeni, da se vsaki aplikaciji, ki je v teku, naroči, da občasno preveri čakalno vrsto sporočil, da bi ugotovila, ali katera druga aplikacija zahteva uporabo CPU in, če je tako, da pridobi nadzor za to vlogo. Vendar pa bi mnoge aplikacije v operacijskem sistemu Windows 3.1 redko preverjale čakalno vrsto sporočil ali pa sploh ne bi nadzorovale CPU-ja toliko časa, kolikor je potrebno. Predpogojni večopravilni sistem, kot je Windows 95, bo odvzel nadzor nad procesorjem in ga distribuiral tistim, ki imajo višjo prednost glede na potrebe sistema..
Vir
Vse, kar bi DOS videl, je ta enojni program (Windows ali drugo), ki se izvaja, kar bi podalo nadzor brez izhoda. Teoretično je možno, da je preduporabniška večopravilnost izvedena na vrhu DOS-a, z uporabo ura realnega časa in prekinitve strojne opreme, da se prisilno dodeli nadzor razporejevalniku. Kot je komentiral Tonny, so to dejansko naredili nekateri operacijski sistemi, ki so delovali na DOS-u.
386 Izboljšan način?
Opomba: prišlo je do nekaterih komentarjev o izboljšanem načinu 386, ki je 32-bitni sistem Windows 3.x, in podpira predplačilno večopravilnost.
To je zanimiv primer. Če povzamemo povezano objavo v blogu, je izboljšan način 386 v bistvu 32-bitni hipervizor, ki je vodil virtualne stroje. Znotraj enega od teh virtualnih strojev je potekal standardni način Windows 3.x, ki omogoča vse zgoraj naštete stvari.
MS-DOS bi deloval tudi znotraj teh navideznih strojev in očitno je bil predpogojno večopravilen - zato se zdi, da bo hipervizor z 386 izboljšanim načinom delil časovne rezine procesorja med virtualnimi stroji (od katerih je eden deloval normalno 3.x in drugi, ki so poganjali MS-DOS), in vsaka VM bo naredila svojo stvar - 3.x bi sodelovala z več nalogami, MS-DOS pa bi imel eno samo nalogo.
MS-DOS
Sam DOS je bil na enem papirju, vendar je imel podporo za programe TSR, ki bi ostali v ozadju, dokler ga ne sproži prekinitev strojne opreme. Daleč od resnične večopravilnosti, vendar ne popolnoma enoznačne.
Ves ta govor o bit-ness? Vprašal sem o večopravilnosti!
No, strogo gledano, bit-ness in večopravilnost nista odvisna drug od drugega. Vsak način večopravilnega delovanja bi moral biti mogoč v poljubni bitni meri. Vendar pa je prehod s 16-bitnih procesorjev na 32-bitne procesorje uvedel tudi druge funkcionalnosti strojne opreme, ki bi lahko olajšale izvajanje preventivne večopravilnosti.
Ker so bili 32-bitni programi novi, je bilo lažje, če so bili prisilno zamenjani, kar je morda povzročilo zlom 16 starih 16-bitnih programov..
Seveda, to so vse špekulacije. Če res želite vedeti, zakaj MS ni izvajal predplačilne večopravilnosti v operacijskem sistemu Windows 3.x (ne glede na 386 izboljšan način), boste morali vprašati nekoga, ki je tam delal..
Prav tako sem želel popraviti vašo predpostavko, da je bil Windows 95 samo ovoj za DOS.
Sledi odgovor Pete:
V sodobnem operacijskem sistemu operacijski sistem nadzoruje vse vire strojne opreme, nameščene aplikacije pa so shranjene v peskovnikih. Aplikaciji ni dovoljeno dostopati do pomnilnika, ki ga operacijski sistem ni dodelil tej aplikaciji, in ne more neposredno dostopati do naprav strojne opreme v računalniku. Če je potreben dostop do strojne opreme, mora aplikacija komunicirati prek gonilnikov naprav.
Operacijski sistem lahko ta nadzor uveljavi, ker prisili CPU, da vstopi v zaščiten način.
Po drugi strani DOS nikoli ne vstopi v zaščiteni način, ampak ostane v realnem načinu (*glej spodaj). V realnem načinu tečejoče aplikacije lahko izvajajo vse, kar želijo, tj. Neposredno dostopajo do strojne opreme. Toda aplikacija, ki se izvaja v realnem načinu, lahko CPU pove, da vstopi v zaščiten način.
In ta zadnji del omogoča aplikacijam, kot je Windows 95, da zaženejo večnitno okolje, čeprav so bile v bistvu zagnane iz DOS-a.
DOS (Disk Operating System) je bil, kolikor mi je znano, veliko več kot sistem za upravljanje datotek. Zagotovil je datotečni sistem, mehanizme za krmarjenje po datotečnem sistemu, nekaj orodij in možnost zagona aplikacij. Omogočila je tudi, da nekatere aplikacije ostanejo v bivališču, to so gonilniki miši in emulatorji EMM. Vendar ni poskušal nadzorovati strojne opreme v računalniku tako, kot to počne sodoben operacijski sistem.
*Ko je bil DOS prvič ustvarjen v sedemdesetih letih prejšnjega stoletja, zaščiten način v CPU ni obstajal. Šele ko je procesor 80286 sredi osemdesetih let prejšnjega stoletja postal zaščiten način, je postal del CPU.
Poskrbite, da boste brskali po izvirni niti in prebrali živahno razpravo o tej temi z uporabo spodnje povezave!
Imate kaj dodati pojasnilu? Zvok v komentarjih. Želite prebrati več odgovorov drugih uporabnikov tehnologije Stack Exchange? Oglejte si celotno nit razprave tukaj.