Úvodná » ako » Ako bola možná viacnásobná úloha v starších verziách systému Windows?

    Ako bola možná viacnásobná úloha v starších verziách systému Windows?

    Berúc do úvahy, že DOS bol operačný systém pre jeden operačný systém a jeho väzby so skoršími verziami systému Windows, ako sa skoršie verzie systému Windows podarilo vykonať multi-tasking? Dnešný príspevok SuperUser Q & A sa zaoberá odpoveďami na túto otázku.

    Dnešná relácia otázok a odpovedí sa k nám pridelí zdvorilosťou SuperUser - podskupiny Stack Exchange, zoskupenia webových stránok typu Q & A.

    Windows 95 screenshot s láskavým dovolením na Wikipédii.

    Otázka

    Čítačka SuperUser LeNoob chce vedieť, ako staršie verzie systému Windows mohli fungovať ako multi-tasking systémy ?:

    Čítal som, že DOS je operačný systém pre jednu tlač. Ale ak staršie verzie systému Windows (vrátane systému Windows 95?) Boli len balíky pre DOS, ako by mohli bežať ako multi-tasking OS?

    Dobrá otázka! Ako sa staršie verzie systému Windows podarilo spustiť ako multi-tasking systémy?

    Odpoveď

    Sponzori SuperUser Bob a Pete majú odpoveď pre nás. Po prvé, Bob:

    Systém Windows 95 bol oveľa viac ako "len obal" pre MS-DOS. Citovať Raymonda Chena:

    • Program MS-DOS slúžil v systéme Windows 95 na dva účely: 1.) slúžil ako zavádzač. & 2.) Vystupovala ako 16-bitová vrstva ovládača starého zariadenia.

    Systém Windows 95 skutočne zahalil / prekonal práve všetok systém MS-DOS a udržal ho ako vrstva kompatibility, pričom robila všetky ťažké zdvíhanie. Taktiež zaviedla predbežné multi-tasking pre 32-bitové programy.

    Pre-Windows 95

    Windows 3.x a staršie boli väčšinou 16-bitové (s výnimkou Win32s, druh vrstvy kompatibility, ktorá preklenuje 16 a 32, ale tu to ignorujeme), boli viac závislé na DOS a používali sme iba kooperačné multi-tasking - to je tá, v ktorej nevynútia bežný program vypnúť; čakajú na spustený program na kontrolu výnosov (v podstate povedzte "Som hotovo" tým, že informujete operačného systému o spustení ďalšieho programu, ktorý čaká).

    • Multi-tasking bol kooperatívny, rovnako ako v starých verziách MacOS (hoci na rozdiel od Multi-taskingu DOS 4.x, ktorý priniesol predbežné multi-tasking). Úloha musela priniesť OS, aby naplánovala inú úlohu. Výnosy boli zahrnuté do určitých volaní API, najmä spracovania správ. Pokiaľ je úloha spracovávaná včas, je všetko skvelé. Ak úloha prestala spracovávať správy a bola zaneprázdnená vykonaním nejakej spracovacej slučky, multi-tasking už nebol.

    Architektúra systému Windows 3.x

    Pokiaľ ide o to, ako skoré programy Windows prinášajú kontrolu výnosov:

    • Systém Windows 3.1 využíva kooperačné multi-tasking - čo znamená, že každá aplikácia, ktorá je v procese spustenia, je nariaďovaná pravidelne kontrolovať frontu správ, aby zistila, či iná aplikácia požaduje použitie CPU a ak áno, tejto žiadosti. Mnohé aplikácie systému Windows 3.1 by však kontrolovali frontu správ len zriedka alebo vôbec a monopolizovali kontrolu nad procesorom tak dlho, koľko potrebovali. Predbežný multi-tasking systém, ako je Windows 95, bude mať kontrolu CPU mimo bežiacu aplikáciu a rozdeliť ju na tie, ktoré majú vyššiu prioritu na základe potrieb systému.

    zdroj

    Všetky DOS by videli, či je táto jediná aplikácia (Windows alebo iná) bežiaca, ktorá by prekonala kontrolu bez toho, aby opustila. Teoreticky môže byť predbežná multi-tasking implementovaná na vrchole DOS tak, že sa použijú hodiny v reálnom čase a hardvér prerušuje nútené ovládanie plánovača. Ako to komentuje Tonny, v skutočnosti to robili niektoré operačné systémy, ktoré fungujú na DOS.

    386 Vylepšený režim?

    Poznámka: Vyskytli sa niektoré pripomienky k 386 rozšírenému režimu Windows 3.x a 32-bitovému podporovaniu predbežného multi-taskingu.

    To je zaujímavý prípad. Aby sme zosumarizovali prepojený blogový príspevok, rozšírený režim 386 bol v podstate 32-bitový hypervízor, ktorý prevádzkoval virtuálne stroje. Vo vnútri jedného z týchto virtuálnych počítačov bežal štandardný režim systému Windows 3.x, ktorý spravuje všetky vyššie uvedené informácie.

    MS-DOS by tiež bežal vo vnútri týchto virtuálnych strojov a zdá sa, že boli predbežne multifunkčné - takže sa zdá, že hypervízor s vylepšeným režimom 386 bude zdieľať časové úseky CPU medzi virtuálnymi počítačmi (z ktorých jeden prebehol normálne 3.x a iní, ktorí spustili MS-DOS) a každý VM bude robiť svoju vlastnú vec - 3.x bude spolupracovať s viacerými úlohami, zatiaľ čo MS-DOS bude mať jednu úlohu.

    MS-DOS

    Samotný DOS bol na papieri, ale mal podporu pre programy TSR, ktoré zostanú na pozadí, kým nebudú spustené hardvérovými prerušeniami. Daleko od skutočného multi-tasking, ale nie úplne single-úloh jeden.

    Všetko toto rozprávanie o bitke? Spýtal som sa na multi-tasking!

    Presne povedané, bit-ness a multi-tasking nie sú navzájom závislé. Malo by byť možné implementovať akýkoľvek multi-tasking režim v akejkoľvek bitovej. Avšak prechod z 16-bitových procesorov na 32-bitové procesory tiež priniesol ďalšie hardvérové ​​funkcie, ktoré by mohli uľahčiť realizáciu pre-emptive multi-tasking.

    Tiež, pretože 32-bitové programy boli nové, bolo ľahšie ich dostať do práce, keď boli nútene vypnuté - čo mohlo spôsobiť prerušenie niektorých starších 16-bitových programov.

    Samozrejme, to sú všetky špekulácie. Ak naozaj chcete vedieť, prečo MS neimplementoval preventívny multi-tasking v systéme Windows 3.x (bez ohľadu na režim 386), budete musieť požiadať niekoho, kto tam pracoval.

    Tiež som chcel opraviť svoj predpoklad, že Windows 95 bol len obal pre DOS.

    Nasledujúca odpoveď od Pete:

    V modernom operačnom systéme ovláda operačný systém všetky hardvérové ​​zdroje a bežiace aplikácie sú uložené v karanténoch. Aplikácia nemá povolený prístup do pamäte, ktorú operačný systém nepridelil, a nemôže priamo pristupovať k hardvérovým zariadeniam v počítači. Ak je potrebný prístup k hardvéru, aplikácia musí komunikovať prostredníctvom ovládačov zariadení.

    OS môže toto ovládanie presadzovať, pretože núti CPU prejsť do chráneného režimu.

    DOS, na druhej strane, nikdy nevstupuje do chráneného režimu, ale zostane v reálnom režime (*Pozri nižšie). V reálnom režime môžu bežiace aplikácie vykonávať všetko, čo chce, t. J. Prístup k hardvéru priamo. Ale aplikácia bežiaca v reálnom režime môže tiež povedať CPU, aby vstúpil do chráneného režimu.

    A táto posledná časť umožňuje aplikáciám, ako je Windows 95, spustiť viacvláknové prostredie, aj keď boli v podstate spustené z DOSu.

    DOS (operačný systém disku) bol, pokiaľ viem, oveľa viac ako systém správy súborov. Poskytol súborový systém, mechanizmy na navigáciu súborového systému, niekoľko nástrojov a možnosť spúšťania aplikácií. Umožnila aj niektorým aplikáciám zostať rezidentom, t. J. Ovládače myši a EMM emulátory. Nepokúšala sa však ovládať hardvér v počítači spôsobom, akým funguje moderný operačný systém.

    *Keď bol DOS prvýkrát vytvorený v sedemdesiatych rokoch minulého storočia, v procesore neexistoval chránený režim. Až do 80286 procesora v polovici 80. rokov sa chránený režim stal súčasťou CPU.

    Nezabudnite prechádzať na pôvodnú niť a prečítajte si živú diskusiu o tejto téme pomocou nižšie uvedeného odkazu!


    Máte niečo doplniť vysvetlenie? Znie to v komentároch. Chcete sa dozvedieť viac odpovedí od iných používateľov technickej úrovne Stack Exchange? Pozrite sa na celý diskusný príspevok tu.