12Sep
Vzhľadom na to, ž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 skoršie verzie systému Windows dokázali dosiahnuť multi-tasking? Dnešný príspevok SuperUser Q & A sa zameriava na odpovede na túto otázku.
Dnešná otázka &Odpoveď na zasadnutie nám príde s láskavým dovolením SuperUser - subdivíziu Stack Exchange, komunitne riadeného zoskupenia webových stránok Q & A.
Windows 95 screenshot s láskavým dovolením na Wikipédii.
Otázka
SuperUser čítačka 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?
Odpovedia
SuperUser prispievatelia Bob a Pete majú odpoveď pre nás. Po prvé, Bob:
Windows 95 bol oveľa viac ako "len obal" pre MS-DOS.Citácia Raymonda Chen:
- MS-DOS slúžil v systéme Windows 95 pre dva účely: 1.) slúžil ako zavádzač.& Amp;2.) Bolo to 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, udržiaval ho ako vrstvu kompatibility a súčasne robil všetko ť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 apoužíva sa iba družstevné multi-tasking - to je ten, kde nevynútia bežiaci program vypnúť;čakajú na spustený program na kontrolu výnosov( v podstate povedzte "Som hotovo" a povedzte operačnému systému spustiť ďalší program, ktorý čaká).
- Multi-tasking bol kooperatívny, rovnako ako v starých verziách MacOS( aj keď na rozdiel od multi-taskingu DOS 4.x, ktorý priniesol predbežné multi-tasking).Úloha musela poskytnúť OS, aby si naplánovala inú úlohu. Výnosy boli zahrnuté do určitých volaní rozhrania API, najmä spracovania správ. Pokiaľ bola spracovaná správa včas, všetko bolo skvelé.Ak úloha prestala spracovávať správy a bola zaneprázdnená vykonaním nejakej spracovacej slučky, multi-tasking už nebol.
Windows 3.x Architektúra
Pokiaľ ide o to, ako skoré programy systému Windows by priniesli kontrolu:
- Windows 3.1 používa kooperačné multi-tasking - čo znamená, že každá aplikácia, ktorá je v procese spustenia, je pokynovaná pravidelne kontrolovať frontu správ, aby zistila,iná aplikácia žiada o použitie CPU a ak áno, poskytne kontrolu tejto aplikácii. Avšak mnohé aplikácie systému Windows 3.1 by skontrolovali frontu správ len zriedkavo 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, že táto jedna aplikácia( Windows alebo iná) beží, ktorá by prešla kontrolou 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 vrchole 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. Na zhrnutie prepojeného príspevku na blogu bol rozšírený režim 386 v podstate 32-bitový hypervízor, ktorý používal 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šetko uvedené vyššie.
MS-DOS by tiež bežal vo vnútri týchto virtuálnych strojov a očividne boli preferenčne multifunkčné - takže sa zdá, že hypervisor 386 zdokonalených režimov bude zdieľať CPU časové segmenty medzi virtuálnymi strojmi( z ktorých jeden bežal 3.xa 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
DOS samotný bol jeden-tasking na papieri, ale to malo podporu pre programy TSR, ktoré by zostali na pozadí, až kým nebol spustený hardvérovým prerušením. Daleko od skutočného multi-tasking, ale nie úplne single-úlohu jeden.
Všetko toto rozprávanie o bitke? Spýtal som sa na multi-tasking!
Takže striktne 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 bit-ness. Avšak prechod z 16-bitových procesorov na 32-bitové procesory tiež priniesol ďalšiu hardvérovú funkčnosť, ktorá by mohla uľahčiť realizáciu predbežného multi-taskingu.
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 sa musieť opýtať niekoho, kto tam pracoval.
Tiež som chcel opraviť svoj predpoklad, že Windows 95 bol len obal pre DOS.
Nasledujúca odpoveď od spoločnosti 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ť pomocou ovládačov zariadení.
OS môže vynútiť toto ovládanie, 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žné aplikácie vykonávať všetko, čo chce, t. J. Prístup k hardvéru priamo. Aplikácia spustená v reálnom režime môže tiež informovať procesor, 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. Program
DOS( operačný systém disku) nebol, 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ť rezidentmi, t. J. Ovládače myši a EMM emulátory. Nepokúšala sa však ovládať hardvér v počítači tak, ako to robí 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.
Uistite sa, že ste prešli na pôvodnú niť a prečítajte si živú diskusiu o tejto téme pomocou nižšie uvedeného odkazu!
Musíte niečo doplniť k vysvetleniu? Znížte komentáre. Chcete si prečítať viac odpovedí od iných používateľov technológie Stack Exchange? Pozrite sa na celý diskusný príspevok tu.