If-Koubou

Kako je moguće više zadataka u starijim verzijama sustava Windows?

Kako je moguće više zadataka u starijim verzijama sustava Windows? (Kako da)

S obzirom da je DOS bio OS zadatak i poveznice s ranijim verzijama sustava Windows, kako su ranije verzije sustava Windows uspjele ostvariti višestruko zadatke? Danas SuperUser Q & A post gleda na odgovore na ovo pitanje.

Današnja pitanja i odgovori nam se javljaju zahvaljujući SuperUseru - podjele Stack Exchange-a, zajednice-driven grupiranja Q & A web stranica.

Windows 95 screenshot ljubaznošću Wikipedije.

Pitanje

SuperUser čitač LeNoob želi znati kako su starije verzije sustava Windows bile u mogućnosti izvoditi kao sustave s više zadataka ?:

Čitao sam da je DOS jedan operacijski sustav. Ali ako su starije verzije sustava Windows (uključujući i Windows 95?) Bile samo omotnice za DOS, kako se mogu izvoditi kao operacijski sustav s više zadataka?

Dobro pitanje! Kako su starije verzije sustava Windows uspjele raditi kao sustavi s više zadataka?

Odgovor

SuperUser suradnici Bob i Pete imaju odgovor za nas. Prvo, Bob:

Windows 95 bio je daleko više nego "samo omot" za MS-DOS. Citirajući Raymond Chen:

  • MS-DOS je poslužio dvije svrhe u sustavu Windows 95: 1.) Služio je kao utovarivač čizma. & 2.) Djelovao je kao 16-bitni naslijeđeni sloj pogonskog uređaja.

Windows 95 zapravo je zakačen / prebacio gotovo sve MS-DOS, čuvajući ga kao sloj kompatibilnosti dok je radio samo sam težak podizanje. Također je implementirao preemptivan multi-tasking za 32-bitne programe.

Pred-Windows 95

Windows 3.x i stariji su uglavnom bili 16-bitni (s iznimkom Win32s, sloja kompatibilnosti koji povezuju mostove 16 i 32, no ovdje ćemo zanemariti), bili su više ovisni o DOS-u i koristili su samo kooperativni multi-tasking - to je ona u kojoj ne prisiljavaju pokrenuti program za isključivanje; oni čekaju da pokrenuti program donosi kontrolu (u osnovi, recite "Ja sam učinio" tako što su OS-u pokrenuli sljedeći program koji čeka).

  • Višezadaćnost je bila suradnja, baš kao u starijim verzijama MacOS-a (iako za razliku od višedjelnih zadataka DOS 4.x, koja je vodila predostrožnost s više zadataka). Zadatak je morao dati OS-u da bi zakazao drugačiji zadatak. Prinosi su ugrađeni u određene API pozive, osobito obradu poruka. Sve dok je zadatak pravovremeno obrađivao poruke, sve je bilo sjajno. Ako je zadatak prekinuo obradu poruka i bio je zauzet izvršavanjem neke petlje za obradu, više zadataka nije bilo više.

Arhitektura sustava Windows 3.x

Što se tiče ranijeg upravljanja programima sustava Windows:

  • Windows 3.1 upotrebljava kooperativno višestruko zadatke - što znači da se svaka aplikacija koja je u tijeku izvodi upućuje da redovito provjerava red čekanja poruka kako bi utvrdio da li neka druga aplikacija traži korištenje CPU-a i, ako je tako, da daje kontrolu tu prijavu. Međutim, mnoge aplikacije u sustavu Windows 3.1 redovito bi provjeravale red čekanja poruka, ili uopće nisu, i monopolizirale upravljanje CPU-om onoliko dugo koliko im je potrebno. Preemptivni sustav s više zadataka poput sustava Windows 95, odvest će CPU nadzor od pokretne aplikacije i distribuirati ga onima koji imaju veći prioritet na temelju potreba sustava.

Izvor

Svi DOS će vidjeti da je ovaj pojedinačni program (Windows ili drugi) pokrenut, koji će proći kontrolu oko bez izlaska. Teoretski, preemptivni višedjelni zadatak može se provesti na vrhu DOS-a ionako uz upotrebu satova i hardverskih prekida u stvarnom vremenu kako bi prisilno dali kontrolu rasporedu. Kao što je Tonny napisao, to je zapravo učinio neki OS koji su prikazivali na vrhu DOS-a.

386 Poboljšani način rada?

Napomena: bilo je nekih komentara na 386 napredni način rada sustava Windows 3.x koji je 32-bitni i podržava prednabijanje višestrukih zadataka.

Ovo je zanimljiv slučaj. Da biste saželi povezani blog post, 386 poboljšani način rada bio je u osnovi 32-bitni hipervisor, koji je vodio virtualne strojeve. Unutar jednog od tih virtualnih strojeva pokrenut je standardni način rada Windows 3.x, koji sadrži sve gore navedene stvari.

MS-DOS bi se također pokrenuo unutar tih virtualnih strojeva, i očito su bili unaprijed višestruki zadatak - tako da izgleda da će hipervisor poboljšanih modova 386 dijeliti vremenske rezove CPU-a između virtualnih strojeva (od kojih je jedna normalna 3.x i drugi koji su pokrenuli MS-DOS), a svaka VM će raditi svoju stvar - 3.x će kooperativno imati više zadataka, a MS-DOS će biti jednim zadatkom.

MS-DOS

DOS je bio samostalni zadatak na papiru, ali imao je podršku TSR programima koji će ostati u pozadini sve dok se ne pokrene hardware prekid. Daleko od istinskog višestrukog zadatka, ali ne i potpuno samostalno.

Sve ovo govoriti o bit-ness? Pitao sam se za više zadataka!

Pa, strogo govoreći, bitna i višestruka zadaća ne ovise jedni o drugima. Trebalo bi biti moguće provesti bilo koji način rada s više zadataka u bilo kojem trenutku. Međutim, preseljenje od 16-bitnih procesora do 32-bitnih procesora uvelo je i druge hardverske funkcionalnosti koje bi mogle omogućiti lakše implementaciju prevencijskog multi-zadataka.

Također, budući da su 32-bitni programi bili novi, bilo je lakše dovesti ih da rade kad su prisilno prebačeni - što je možda pokvarilo neke od naslijeđenih 16-bitnih programa.

Naravno, ovo je sve spekulacije. Ako zaista želite znati zašto MS nije implementirao preemptivni višedjelni rad u sustavu Windows 3.x (bez obzira na 386 napredni način rada), morat ćete tražiti nekoga tko je tamo radio.

Također, želio sam ispraviti vašu pretpostavku da je Windows 95 samo omot za DOS.

Slijedi odgovor Pete:

U suvremenom operacijskom sustavu operativni sustav kontrolira sve hardverske resurse, a pokrenute aplikacije čuvaju se u sandboxovima. Aplikaciji nije dopuštena pristup memoriji koju OS nije dodijelio tom programu i ne može izravno pristupiti hardverskim uređajima na računalu. Ako je potreban hardverski pristup, aplikacija mora komunicirati putem upravljačkih programa uređaja.

OS može potaknuti ovu kontrolu jer prisiljava CPU da uđe u zaštićeni način rada.

S druge strane, DOS nikada ne ulazi u zaštićeni način rada, ali ostaje u stvarnom načinu rada (*Pogledaj ispod). U stvarnom načinu, pokrenute aplikacije mogu izvesti sve što želi, tj. Izravno pristupiti hardveru. No, aplikacija koja se izvodi u stvarnom načinu rada može također reći CPU da uđe u zaštićeni način rada.

A ovaj posljednji dio omogućuje aplikacijama kao što je Windows 95 za pokretanje višesmjernog okruženja iako su u osnovi pokrenuta iz DOS-a.

DOS (Disk Operating System) bio je, koliko ja znam, puno više od sustava za upravljanje datotekama. Dostavio je datotečni sustav, mehanizme za navigaciju datotečnim sustavom, nekoliko alata i mogućnost pokretanja aplikacija. To je također omogućilo nekim aplikacijama da ostanu prebivališta, tj. Miša vozača i EMM emulatori. Ali nije pokušao kontrolirati hardver u računalu onako kako moderni operacijski sustav radi.

*Kada je DOS prvi put stvoren 1970-ih, u CPU-u nije postojao zaštićeni način rada. Tek 80286 procesor sredinom 1980-ih godina, taj je način zaštićen postao dio CPU-a.

Obavezno pregledajte izvornu nit i pročitajte živahnu raspravu o ovoj temi pomoću veze u nastavku!

Imate li nešto za objašnjenje? Zvuči u komentarima. Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.