12Sep

Kuidas oli Windowsi vanemates versioonides võimalik mitmeotstarbeline töötamine?

Arvestades, et DOS oli ühekordne operatsioonisüsteem ja Windowsi varasemate versioonidega seotud sidemed, kuidas Windowsi varasemad versioonid suudavad mitme paneks teha? Tänane SuperUser Q & postitus vaatleb vastuseid sellele küsimusele.

tänapäeva küsimus &Vastuste seanss tuleb meile viisakalt SuperUseriga - Q & A veebisaitide kogukonnapõhise grupi Stack Exchange jagunemisest.

Windows 95 ekraanipilt viisakalt Wikipedia.

Küsimus

SuperUser-lugeja LeNoob tahab teada, kuidas Windowsi vanemad versioonid suutsid töötada mitme paneksüsteemina?:

Ma lugesin, et DOS on ühe ülesandega operatsioonisüsteem. Kuid kui Windowsi vanemad versioonid( sh ka Windows 95?) Olid lihtsalt DOS-i ümbrised, siis kuidas saaksid nad käitada mitmeosaliseks operatsioonisüsteemina?

Hea küsimus! Kuidas Windowsi vanemaid versioone õnnestus töötada mitme paneksüsteemiga?

Vastused

SuperUseri kaasautoritele Bobile ja Petile on meile vastused. Esiteks, Bob:

Windows 95 oli palju rohkem kui lihtsalt MS-DOS-i ümbris. Quoting Raymond Chen:

  • MS-DOS teenis Windows 95-s kaht eesmärki: 1.) See oli alglaadur.&2.) See käitus 16-bitise seadme juhtkihi järel.

Windows 95 tõmbas peaaegu kõik MS-DOS-i, hoides seda kui kokkusobivuse kihti, tehes samal ajal kogu raske tõstmise ise. Samuti rakendas see 32-bitiste programmide jaoks ennetavat multi-ülesannet.

eelinstalleeritud Windows 95

Windows 3.x ja vanemad olid enamasti 16-bitised( välja arvatud Win32-d, selline ühilduvuskiht, mis sillutab 16 ja 32, aga me ignoreerime seda siin) olid DOS-ile enam sõltuvad jakasutab ainult ühist mitmeosalisi ülesandeid - see on see, kus nad ei käivitu töötava programmi väljalülitamiseks;nad ootavad, et jooksval programmil on kontroll( põhimõtteliselt öeldes "Olen lõpetanud", öeldes, et OS käivitab järgmise ootatava programmi).

  • Multi-tasking oli koostöövõimalus, nagu ka MacOS vanades versioonides( ehkki erinevalt Multi-tasking DOS 4.x-st, mis hõlmasid ennetavat multi-taskingut).Ülesanne pidi andma operatsioonisüsteemile uue ülesande kavandamiseks. Saagid võeti kasutusele teatud API-kõnede, eelkõige sõnumite töötlemisel. Niikaua kui ülesanne töötleb sõnumeid õigeaegselt, oli kõik suurepärane. Kui ülesanne lõpetas sõnumite töötlemise ja oli hõivatud mõne töötlemistsükli täitmisega, ei olnud mitme ülesandega enam tegemist.

Windows 3.x Arhitektuur

Mis juhtub, kui varakult Windowsi programmid saavutavad juhtimist:

  • Windows 3.1 kasutab mitmeosalisi koostööprojekte - see tähendab, et iga tööprogrammi käivitamisel õpetatakse perioodiliselt kontrollima sõnumi järjekorda, et teada saada, kasmuu rakendus taotleb CPU kasutamist ja kui see on nii, siis selle rakenduse kontrollimiseks. Paljud Windows 3.1 rakendused kontrollisid siiski sõnumijärjekorda ainult harva või üldse mitte ning monopolisid CPU juhtimist nii kaua, kui nõutud. Mitmekordne eelinstallitud süsteem, nagu Windows 95, võtab protsessori juhtimisest eemale jooksvast rakendusest ja levitab seda süsteemidele, millel on kõrgem prioriteet.

Allikas

Kõik DOS näevad, kas see on üks rakendus( Windows või muu), mis käivitab kontrolli, ilma et see väljub. Teoreetiliselt võib ennetava mitme ülesande täitmise DOS-i ülaosas rakendada, kasutades reaalajas kellat ja riistvara katkestusi, et sunniviisiliselt juhtida planeerijat. Nagu Tonny kommenteeris, tegid seda tegelikult mõned osad, mis töötavad DOS-i peal.

386 täiustatud režiim?

Märkus: mõned 386 täiustatud Windows 3.x-i režiimi kommentaarid on olnud 32-bitised ja multimeediumide eelinstallimise toetamine.

See on huvitav asi. Lingitud blogipostituse kokkuvõtteks oli 386 täiustatud režiim põhiliselt 32-bitine hüpervisor, mis käivitas virtuaalseid masinaid.Ühel neist virtuaalsetest masinatest oli Windows 3.x standardrežiim, mis kasutab kõiki ülaltoodud asju.

MS-DOS käitaks ka neis virtuaalsetes masinates ja ilmselt olid need ennetavalt mitmeotstarbelised - nii tundub, et 386 täiustatud režiim hüpervisor jagab protsessorite ajaviiteid virtuaalarvutite vahel( millest üks kestis tavalise 3.xja teised, kes käivitasid MS-DOS-i) ja iga VM teeb oma asju - 3.x oleks ühiselt mitme ülesandega, samal ajal kui MS-DOS oleks ühe ülesandega.

MS-DOS

DOS oli ennekõike paberil üks ülesanne, kuid tal oli tugi TSR-i programmidele, mis jääksid taustale, kuni see tekitas riistvara katkestuse. Kaugelt tõelistest mitme ülesandega, kuid mitte täielikult ühe ülesandega.

Kõik see rääkimine bit-nessist? Ma küsisin mitme tööülesande üle!

Noh, rangelt öeldes, bit-ness ja multi-tasking ei sõltu üksteisest. Igast bitiseisundist peaks olema võimalik rakendada kõiki mitmeotstarbelisi režiime. Kuid 16-bitisest protsessorist 32-bitisesse protsessorisse liikumine tõi kaasa ka teise riistvara funktsionaalsuse, mis oleks võinud mitmeotstarbelise ennetava töö lihtsamaks rakendada.

Samuti, kuna 32-bitised programmid olid uued, hõlbustati neid tööle, kui nad olid sunniviisiliselt välja lülitatud, mis võib-olla purustas mõned pärandvara 16-bitised programmid.

Loomulikult on see kõik spekulatsioon. Kui te tõesti tahate teada, miks MS ei rakendanud Windows 3.x eelisvastast multiprotsessimist( vaatamata 386 täiustatud režiimile), peate küsima kellegalt, kes seal töötas.

Samuti tahtsin parandada teie eeldust, et Windows 95 oli vaid DOS-i pakend.

Järgneb Pete vastus:

Tänapäeva operatsioonisüsteemis kontrollib operatsioonisüsteem kõiki riistvararessursse ja rakendusi käitatakse liivakastites. Rakendus ei luba juurdepääsu mälule, mida OS ei ole sellele rakendusele eraldanud, ega saa otseselt arvuti riistvaraseadmeid otse pääseda. Kui riistvara juurdepääs on vajalik, peab rakendus suhelda seadme draiverite kaudu.

Operatsioonisüsteem suudab seda kontrolli rakendada, kuna see sunnib CPU sisestama kaitstud režiimi.

DOS teisest küljest ei sisene kunagi kaitstud režiimi, vaid jääb reaalajas( * vt allpool).Tõelises režiimis võivad töötavad rakendused täita kõik, mida ta soovib, st otseselt riistvara. Kuid tegelik režiimis käivitatav rakendus võib öelda ka CPU-le kaitstud režiimi sisenemiseks.

Ja see viimane osa võimaldab sellistes rakendustes nagu Windows 95 käivitada mitut keermestatud keskkonda, kuigi nad pärinevad peamiselt DOS-ist.

DOS( ketta operatsioonisüsteem) oli minu arvates mitte ainult failijuhtimissüsteem. See andis failisüsteemi, failisüsteemi navigeerimise mehhanismid, mõned tööriistad ja rakenduste käivitamise võimalus. See võimaldas ka mõnedel rakendustel jääda elama, st hiire draiverid ja EMM-i emulaatorid. Kuid see ei püüa kontrollida riistvara arvutis nii, nagu seda teeb kaasaegne OS.

* Kui DOS loodi esmakordselt 1970ndatel, ei olnud CPU-s kaitstud režiimi olemas.1980ndate keskpaika asus 80286 protsessor, et kaitstud režiim sai CPU osaks.

Veenduge, et liigutate esialgse keermega üle ja lugege selle teema kohta läbi elava arutelu, kasutades allolevat linki!

Kas teil on seletamiseks midagi lisada? Helistage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Tutvu täieliku arutelu teemaga siit.