Domovská » jak » Jak bylo možné provést více úkolů ve starších verzích systému Windows?

    Jak bylo možné provést více úkolů ve starších verzích systému Windows?

    Vzhledem k tomu, že systém DOS byl jediný operační systém a jeho vztahy s časnými verzemi systému Windows, jak se starší verze systému Windows podařilo provést multi-tasking? Dnešní příspěvek SuperUser Q & A se zabývá odpověďmi na tuto otázku.

    Dnešní zasedání Otázky a odpovědi nás přichází s laskavým svolením SuperUser - podřízené rozdělení Stack Exchange, které je založeno na komunitě prostřednictvím skupin webových stránek.

    Windows 95 screenshot s laskavým svolením Wikipedie.

    Otázka

    Čtečka SuperUser LeNoob chce vědět, jak mohly starší verze systému Windows fungovat jako multi-tasking systémy ?:

    Četl jsem, že DOS je operační systém s jedním úkolem. Pokud však starší verze systému Windows (včetně systému Windows 95?) Byly jen obálky pro systém DOS, jak by mohly fungovat jako multi-tasking OS?

    Dobrá otázka! Jak se starší verze systému Windows podařilo spustit jako systémy pro více úkolů?

    Odpověď

    Uživatelé SuperUser Bob a Pete mají odpověď na nás. První, Bob:

    Windows 95 byl mnohem víc než "jen obal" pro MS-DOS. Citovat Raymonda Chena:

    • Aplikace MS-DOS sloužila ve Windows 95 pro dva účely: 1.) Jako zaváděcí zařízení. & 2.) Byl to 16-bitový ovladač starší vrstvy zařízení.

    Windows 95 skutečně zahákl / přesahoval téměř všechny MS-DOS a udržoval ho jako vrstvu kompatibility, zatímco dělá všechny těžké zvedání sám. Rovněž implementoval předběžné multi-tasking pro 32bitové programy.

    Před systémem Windows 95

    Windows 3.x a starší byly většinou 16bitové (s výjimkou Win32s, druh vrstvy kompatibility, která překlenuje 16 a 32, ale ignorujeme to zde), byly více závislé na DOSu a používaly pouze kooperativní multi-tasking - to je ten, kde nevyvolávají běhový program, aby se vypnul; čekají na běžící program, aby získali kontrolu (v podstatě řekněte "jsem hotovi" tím, že řeknete operačnímu systému, aby spustil další program, který čeká).

    • Multi-tasking byl kooperativní, stejně jako ve starších verzích MacOS (ačkoli na rozdíl od Multi-tasking DOS 4.x, který sported preemptivní multi-tasking). Úkol musel poskytnout operačnímu systému, aby naplánoval jiný úkol. Výnosy byly zabudovány do určitých volání API, zejména zpracování zpráv. Pokud je úloha zpracovávána zprávy včas, všechno bylo skvělé. Pokud úkol přestal zpracovávat zprávy a byl zaneprázdněný vykonáním nějaké zpracovací smyčky, multi-tasking už nebyl.

    Architektura systému Windows 3.x

    Pokud jde o to, jak časné programy systému Windows by kontrolovaly výnosy:

    • Systém Windows 3.1 používá kooperativní multi-tasking - což znamená, že každá aplikace, která je v procesu spouštění, je instruována pravidelně kontrolovat frontu zpráv, aby zjistila, zda nějaká jiná aplikace požaduje použití procesoru a pokud ano, této žádosti. Většina aplikací systému Windows 3.1 však zkontroluje frontu zpráv jen zřídka nebo vůbec a monopolizuje řízení procesoru tak dlouho, jak to vyžadují. Předběžný multifunkční systém, jako je systém Windows 95, převezme řízení procesoru mimo běžící aplikaci a distribuuje je těm, které mají vyšší prioritu na základě potřeb systému.

    Zdroj

    Všechna DOS by viděla, že je tato jediná aplikace (Windows nebo jiné) spuštěna, která by prošla řízení bez opuštění. Teoreticky může být preemptivní multi-tasking implementováno na vrcholu DOS s využitím hodin v reálném čase a hardware přerušuje, aby násilím dávalo plánovateli kontrolu. Jak připomíná Tonny, skutečně to udělaly některé operační systémy běžící na DOSu.

    386 Vylepšený režim?

    Poznámka: existují některé komentáře k 386 rozšířenému režimu Windows 3.x, který je 32bitový a podporuje předběžné víceúčelové.

    To je zajímavý případ. Chcete-li shrnout propojený blogový příspěvek, rozšířený režim 386 byl v podstatě 32bitový hypervisor, který provozoval virtuální stroje. Uvnitř jednoho z těchto virtuálních počítačů běžel standardní režim Windows 3.x, který provádí všechny výše uvedené věci.

    MS-DOS by také běžel uvnitř těchto virtuálních strojů a zdánlivě byl předběžně multifunkční - takže se zdá, že hypervisor 386 rozšířeného režimu bude sdílet časové úseky CPU mezi virtuálními stroji (z nichž jedna běží normálně 3.x a jiní, kteří provozovali MS-DOS) a každá VM bude dělat svou vlastní věc - 3.x bude spolupracovat s více úlohami, zatímco MS-DOS bude mít jednu úlohu.

    MS-DOS

    Samotná DOS byla na papíře jediná, ale měla podporu pro programy TSR, které zůstanou v pozadí, dokud nebudou vyvolány přerušením hardwaru. Daleko od skutečné multi-tasking, ale ne zcela single-úkoly buď.

    To všechno o tomhle bitu? Ptal jsem se na multi-tasking!

    Zřetelně řečeno, bit-ness a multi-tasking nejsou závislé na sobě navzájem. Mělo by být možné implementovat libovolný režim více úkolů v libovolné bitové struktuře. Přechod z 16bitových procesorů na 32bitové procesory však přinesl i další hardwarové funkce, které by mohly usnadnit implementaci předběžného multi-taskingu.

    Také, protože 32-bitové programy byly nové, bylo jednodušší dostat je do práce, když byly násilně vypnuty - což mohlo způsobit porušení některých starších 16bitových programů.

    Samozřejmě, to jsou všechny spekulace. Pokud opravdu chcete vědět, proč MS neprovedla předběžné multi-tasking v systému Windows 3.x (bez ohledu na režim 386), budete se muset zeptat někoho, kdo tam pracoval.

    Také jsem chtěl opravit svůj předpoklad, že Windows 95 byl jen obal pro DOS.

    Následuje odpověď Pete:

    V moderním operačním systému řídí operační systém všechny hardwarové prostředky a běžící aplikace jsou uloženy v karanténách. Aplikace nemá přístup do paměti, kterou systém OS přidělil, a nemůže přímo přistupovat k hardwarovým zařízením v počítači. Je-li vyžadován přístup k hardwaru, aplikace musí komunikovat prostřednictvím ovladačů zařízení.

    Operační systém může vynutit toto ovládání, protože přinuti procesor k zadání chráněného režimu.

    DOS, na druhé straně, nikdy nevstupuje do chráněného režimu, ale zůstává v reálném režimu (* *viz. níže). V reálném režimu mohou běžící aplikace provádět cokoliv, co chtějí, tj. Přístup k hardwaru přímo. Aplikace spuštěná v reálném režimu může také říkat procesoru, že vstoupí do chráněného režimu.

    A tato poslední část umožňuje aplikacím, jako je systém Windows 95, spustit vícevláknové prostředí, i když byly v podstatě spouštěny z DOSu.

    DOS (operační systém disků) nebyl, pokud vím, o nic víc než systém pro správu souborů. Poskytoval souborový systém, mechanismy pro navigaci v systému souborů, několik nástrojů a možnost spustit aplikace. To také umožnilo některým aplikacím zůstat rezidentní, tj. Ovladače myší a EMM emulátory. Nepokoušela se ovšem ovládat hardware v počítači způsobem, jakým funguje moderní operační systém.

    * *Když byla DOS poprvé vytvořena v sedmdesátých letech, chráněný režim v procesoru neexistoval. Až v 80286 procesoru v polovině 80. let se chráněný režim stal součástí procesoru.

    Ujistěte se, že procházíte na původní vlákno a přečtěte si živou diskusi o tomto tématu pomocí níže uvedeného odkazu!


    Musíte něco přidat k vysvětlení? Vyjměte v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.