12Sep
Atsižvelgiant į tai, kad DOS buvo vienkartinė operacinė sistema ir jos ryšiai su ankstyvosiomis "Windows" versijomis, kaip ankstesnės "Windows" versijos sugebėjo atlikti daugybę užduočių?Šiandien "SuperUser Q &" įrašas žiūri į atsakymus į šį klausimą.
Šiandienos klausimas &Atsakymų sesija ateina pas mus iš "SuperUser" - "Stack Exchange", bendruomenės pagrįstos "Q & A" svetainių grupės pasidalijimo.
"Windows 95" screenshot mandagiai iš Vikipedijos.
Klausimas
SuperUser skaitytuvas "LeNoob" nori sužinoti, kaip senesnės "Windows" versijos galėjo veikti kaip daugiafunkcinės sistemos?
Aš perskaičiau, kad DOS yra viena užduotis. Bet jei senesnės "Windows" versijos( taip pat įskaitant ir "Windows 95"?) Buvo tik "DOS" aplankai, kaip jie galėjo veikti kaip daugiafunkcinė OS?
Geras klausimas! Kaip senesnės "Windows" versijos tvarko kaip daugiafunkcines sistemas?
Atsakymas
SuperUser autoriai Bobas ir Pete turi mums atsakymą.Pirmiausia Bobas:
"Windows 95" buvo kur kas daugiau nei "tik aplinka" MS-DOS.Citata Raymond Chen:
- MS-DOS tarnavo du tikslus Windows 95: 1.) Jis tarnavo kaip įkroviklis.&2.) Jis veikė kaip 16 bitų senojo įrenginio tvarkyklės sluoksnis.
"Windows 95" iš tikrųjų užsikabinęs / pakeitė beveik visas MS-DOS, išlaikydamas jį kaip suderinamumo lygį, tuo pačiu metu vykdydamas visą sunkųjį pakėlimą.Ji taip pat įgyvendino prevencines daugiafunkcines užduotis 32 bitų programoms.
"Pre-Windows 95"
"Windows 3.x" ir senesnės buvo daugiausia 16 bitų( išskyrus "Win32s", tam tikras suderinamumo sluoksnis, kuris yra 16 ir 32 tiltas, tačiau mes čia ignoruojame), buvo labiau priklausomi nuo DOS irnaudojama tik bendroji daugiafunkcinė užduotis - tai yra ta, kurioje jie nereikalauja, kad veikianti programa būtų išjungta;jie laukia, kol veikianti programa pateiks kontrolę( iš esmės pasakyk "Aš esu baigtas", pasakydamas, kad OS paleis kitą laukiančią programą).
- Multi-tasking buvo kooperatyvas, kaip ir senosiose MacOS versijose( nors skirtingai nei daugiafunkcinis DOS 4.x, kuris turėjo daugybę užduočių).Užduotį reikėjo priskirti OS, kad planuotų kitą užduotį.Pajamos buvo integruotos į tam tikrus API skambučius, ypač apdorojant pranešimus. Kol užduotis laiku apdorojo pranešimus, viskas buvo puikus. Jei užduotyje buvo sustabdytas pranešimų apdorojimas ir buvo užimtas tam tikros apdorojimo ciklo vykdymas, daugiafunkcinė užduotis buvo ne daugiau.
"Windows 3.x" architektūra
Kalbant apie tai, kaip ankstyvos "Windows" programos leistų kontroliuoti:
- "Windows 3.1" naudoja daugiafunkcinę komandinę kopiją - tai reiškia, kad kiekvienai programai, kuri yra vykdymo procese, yra nurodyta periodiškai tikrinti pranešimų eilę, kad nustatytų, ar bet kokiakita programa prašo naudoti CPU ir, jei taip, tai leisti kontroliuoti šią paraišką.Tačiau daugelis "Windows 3.1" programų tikrina pranešimų eilę tik retai arba apskritai, o monopolizuoja procesoriaus valdymą tiek laiko, kiek reikalauja. Pirminė daugiafunkcinė užduočių sistema, pvz., "Windows 95", užtruks procesoriaus valdymą neveikiančioje programoje ir platins ją tiems, kurie turi didesnį prioritetą atsižvelgdami į sistemos poreikius.
šaltinis
Visos DOS pamatys, ar ši viena programa( "Windows" ar kita) veikia, kuri perduotų valdymą be išeiti. Teoriškai bet kuriuo atveju gali būti įdiegta prevencinė daugiafunkcinė užduotis, naudojant realaus laiko laikrodį ir aparatinę įrangą, kad būtų priverstinai kontroliuojama planavimo priemonė.Kaip komentuoja Tonny, tai iš tikrųjų buvo padaryta kai kurių DOS veikiančių OS.
386 Enhanced Mode?
Pastaba: kai kurios pastabos dėl 386 išplėstinio "Windows 3.x" režimo yra 32 bitų ir palaiko daugybinės užduoties prevencinę funkciją.
Tai įdomus atvejis. Apibendrinant susietą tinklaraščio įrašą, 386 išplėstinis režimas iš esmės buvo 32 bitų hipervisas, kuriame valdomos virtualios mašinos. Vienoje iš šių virtualių mašinų buvo paleistas "Windows 3.x" standartinis režimas, kuriame yra visi aukščiau išvardyti dalykai.
MS-DOS taip pat veiktų tų virtualių mašinų viduje, ir, atrodo, kad jie buvo iš anksto užduodami kelioms užduotims atlikti - atrodo, kad 386 pagerinto režimo hipervisas dalinsis procesoriaus laiko tarpeliu tarp virtualių mašinų( iš kurių vienas veikė normaliai 3.xir kiti, kurie paleido MS-DOS), o kiekvienas VM atliks savo veiksmus - 3.x būtų bendrai daugiafunkcinis, o MS-DOS būtų viena užduotis.
MS-DOS
DOS savaime buvo viena užduotis popieriuje, tačiau ji turėjo paramą TSR programoms, kurios išliktų fone, kol suaktyvėjo aparatūros nutraukimas. Toli nuo tikro daugiafunkcinio darbo, bet taip pat ir ne visiems.
Visa tai kalbama apie bitų-ness? Aš paklausiau apie kelių užduočių atlikimą!
Na, griežtai tariant, bitų ir kelių užduočių nėra priklausomi vienas nuo kito. Turėtų būti įmanoma įgyvendinti bet kokį daugiafunkcinį režimą bet kokiame bitumoje. Tačiau perėjimas nuo 16 bitų procesorių į 32 bitų procesorius taip pat įvedė kitą aparatūros funkcionalumą, kuris būtų galėjęs lengviau įgyvendinti daugybę užduočių.
Be to, kadangi 32 bitų programos buvo naujos, jiems buvo lengviau dirbti, kai jie buvo priverstinai išjungti, o tai galėjo pažeisti kai kurias senesnes 16 bitų programas.
Žinoma, tai visi spekuliacija. Jei tikrai norite sužinoti, kodėl MS nepakankamai naudojo daugiafunkcinę užduotį "Windows 3.x"( nepaisant to, kad padidintas 386 režimas), turėsite paklausti to, kas dirbo ten.
Taip pat norėjau ištaisyti jūsų prielaidą, kad "Windows 95" buvo tik DOS aplinka.
Vykdydamas "Pete" atsakymą:
Šiuolaikinėje operacinėje sistemoje operacinė sistema kontroliuoja visus aparatūros resursus, o veikiančios programos laikomos smėlio dėžėse. Programai neleidžiama naudotis atmintimi, kurią OS nepaskyrė šiai programai, ir ji negali tiesiogiai pasiekti kompiuterio įrenginio įrenginių.Jei reikalinga aparatinė prieiga, programa turi bendrauti naudodami įrenginių tvarkykles.
OS gali užtikrinti šią kontrolę, nes ji įveda CPU į apsaugotą režimą.Kita vertus,
DOS niekada neįeina į apsaugotą režimą, tačiau išlieka realiu režimu( * žr. Toliau).Esant realiam režimui, veikiančios programos gali atlikti viską, ko nori, t. Y. Tiesiogiai prieiti prie aparatūros. Tačiau realiuoju režimu vykdoma programa taip pat gali nurodyti, kad CPU įjungia apsaugotą režimą.
Ir ši paskutinė dalis leidžia programoms, tokioms kaip "Windows 95", paleisti daugiakryptę aplinką, nors jos iš esmės buvo paleidžiamos iš DOS.
DOS( disko operacinė sistema) buvo, kiek žinoma, ne daugiau kaip failų valdymo sistema. Jame buvo pateikta failų sistema, failų sistemos naršymo mechanizmai, keli įrankiai ir galimybė paleisti programas. Tai taip pat leido kai kurioms programoms likti rezidentams, t. Y. Pelės tvarkyklėms ir EMM emulatoriams. Tačiau jis nemėgino kontroliuoti kompiuterio aparatinės įrangos, kaip veikia šiuolaikinė operacinė sistema.
* Kai DOS pirmą kartą buvo sukurtas 1970-aisiais, CPU neegzistuoja apsaugotas režimas. Tai buvo tik 80286 procesorius 80-ųjų viduryje, kad apsaugotas režimas tapo CPU dalimi.
Būtinai peržvelkite originalųjį giją ir perskaitykite gyva diskusiją šia tema naudodamiesi žemiau esančia nuoroda!
Ar ką nors įtraukti į paaiškinimą?Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų?Patikrinkite visą diskusijų temą čia.