Како је Мулти-Таскинг могуће у старијим верзијама Виндовса?
С обзиром на то да је ДОС био оперативни систем са једним задатком и везе које је имао са ранијим верзијама оперативног система Виндовс, како су раније верзије Виндовса успеле да остваре вишеструке задатке? Данашња постова за питања и одговоре СуперУсер-а гледају одговоре на ово питање.
Данашња сесија питања и одговора долази нам захваљујући СуперУсер-у - подјела Стацк Екцханге-а, груписане од стране заједнице веб-локација за питања и одговоре.
Виндовс 95 сцреенсхот љубазношћу Википедије.
Питање
Читач СуперУсер ЛеНооб жели да зна како старије верзије оперативног система Виндовс могу да се покрећу као системи са више задатака ?:
Прочитао сам да је ДОС оперативни систем са једним задатком. Али ако су старије верзије оперативног система Виндовс (укључујући и Виндовс 95?) Биле само омотачи за ДОС, како су могли да раде као оперативни систем са више задатака?
Добро питање! Како су старије верзије оперативног система Виндовс успеле да се покрећу као системи са више задатака?
Одговор
СуперУсер сарадници Боб и Пете имају одговор за нас. Прво, Боб:
Виндовс 95 је био много више од "само омотача" за МС-ДОС. Цитирање Рејмонда Чена:
- МС-ДОС је у Виндовсу 95 имао двије сврхе: 1.) Он је послужио као боот лоадер. & 2.) Дјеловао је као 16-битни слој управљачког програма за старије уређаје.
Виндовс 95 је заправо закачио / прегазио скоро све МС-ДОС-ове, чувајући га као слој компатибилности док је сам радио све тешке операције. Такође је имплементиран пре-емптиве мулти-таскинг за 32-битне програме.
Пре-Виндовс 95
Виндовс 3.к и старији су углавном били 16-битни (са изузетком Вин32с, врста компатибилног слоја који мостове 16 и 32, али то ћемо игнорисати овде), били су више зависни од ДОС-а, и користили су само кооперативни мулти-таскинг - то је онај гдје они не присиљавају програм да се искључи; чекају да програм покрене контролу (у суштини, реците „ја сам готов“ тако што кажем ОС-у да покрене следећи програм који чека).
- Мулти-таскинг је био кооперативан, баш као иу старим верзијама МацОС-а (мада за разлику од Мулти-таскинг ДОС 4.к, који је имао претерану мулти-таскинг). Задатак се морао препустити ОС-у да би могао да испланира други задатак. Приноси су уграђени у одређене АПИ позиве, нарочито обрада порука. Све док је задатак правовремено обрађивао поруке, све је било одлично. Ако је задатак зауставио обраду порука и био заузет извршавањем неке петље обраде, вишезадаћност није више постојала.
Виндовс 3.к Архитектура
Што се тиче раних Виндовс програма који ће дати контролу:
- Виндовс 3.1 користи кооперативно вишеструко извршавање задатака - што значи да је свакој апликацији која је у процесу покретања наложено да периодично проверава ред порука да би се утврдило да ли нека друга апликација тражи употребу ЦПУ-а и, ако је тако, да се контролише ту апликацију. Међутим, многе Виндовс 3.1 апликације би ретко проверавале ред порука, или уопште нису, и монополизовале контролу ЦПУ-а за онолико времена колико је потребно. Пре-емптиве мулти-таскинг систем као што је Виндовс 95 ће узети ЦПУ контролу далеко од покренутих апликација и дистрибуирати га на оне који имају већи приоритет на основу потреба система..
Извор
Све што би ДОС могао да види је да се ради о једној појединачној апликацији (Виндовс или друго) која ће проћи контролу без излаза. У теорији, пре-емптиве мулти-таскинг може бити имплементиран на врху ДОС-а у сваком случају уз употребу сата реалног времена и хардверских прекида како би се насилно дало контролу планеру. Као што Тонни коментира, то је заправо учињено од стране неких ОС-ова који раде на ДОС-у.
386 Побољшани режим?
Напомена: дошло је до неких коментара о побољшаном режиму 386 оперативног система Виндовс 3.к који је 32-битни, и подржава пре-емптиве мулти-таскинг.
Ово је занимљив случај. Да резимирамо повезану блог поруку, 386 побољшани режим је у основи 32-битни хипервизор, који је водио виртуелне машине. Унутар једне од тих виртуелних машина покренут је Виндовс 3.к стандардни режим, који ради све горе наведене ствари.
МС-ДОС би такође функционисао унутар тих виртуелних машина, и очигледно су били пре-емптионално вишеструки - тако да изгледа да ће 386 побољшани хипервизор мода делити процесорске временске резове између виртуелних машина (од којих је један радио нормално 3.к и други који су управљали МС-ДОС-ом), а сваки ВМ ће урадити своју ствар - 3.к ће кооперативно радити више задатака, док ће МС-ДОС бити само један задатак.
МС-ДОС
Сам ДОС је био на једном задатку на папиру, али је имао подршку за ТСР програме који би остали у позадини док их не покрене хардверски прекид. Далеко од правог вишезадаћног задатка, али није у потпуности ни један задатак.
Све те приче о битности? Питао сам за мулти-таскинг!
Па, стриктно говорећи, бит-несс и мулти-таскинг нису зависни једни од других. Требало би бити могуће имплементирати било који мулти-таскинг мод у било којој бит-ности. Међутим, прелазак са 16-битних процесора на 32-битне процесоре такође је увео другу хардверску функционалност која је омогућила лакшу имплементацију превентивног вишеструког задатка.
Такође, пошто су 32-битни програми били нови, било је лакше да их натерају да раде када су насилно искључени - што је можда прекршило неке наслеђене 16-битне програме.
Наравно, ово је све нагађање. Ако заиста желите знати зашто МС није имплементирао пре-емптиве мулти-таскинг у Виндовс 3.к (без обзира на 386 побољшани начин), морат ћете питати некога тко је тамо радио.
Такође, желео сам да исправим вашу претпоставку да је Виндовс 95 само омот за ДОС.
Следи одговор од Петеа:
У модерном оперативном систему, оперативни систем контролише све хардверске ресурсе, а покренуте апликације се чувају у сандбокима. Апликацији није дозвољено да приступи меморији коју оперативни систем није доделио тој апликацији и не може директно да приступи хардверским уређајима у рачунару. Ако је потребан хардверски приступ, апликација мора комуницирати путем управљачких програма уређаја.
Оперативни систем може применити ову контролу, јер приморава ЦПУ да уђе у заштићени режим.
ДОС, с друге стране, никада не улази у заштићени режим, али остаје у реалном режиму (*види доле). У реалном режиму, покренуте апликације могу обављати све што желе, тј. Директно приступити хардверу. Али апликација која ради у реалном режиму такође може рећи ЦПУ-у да уђе у заштићени режим.
И овај последњи део дозвољава апликацијама као што је Виндовс 95 да покрену више-навојно окружење иако су у основи покренуте из ДОС-а.
ДОС (Диск Оператинг Систем) је, колико ја знам, не много више од система за управљање датотекама. Он је обезбедио систем датотека, механизме за навигацију системом датотека, неколико алата и могућност покретања апликација. То је такође омогућило да неке апликације остану резидентне, тј. Возачи миша и ЕММ емулатори. Али није покушао да контролише хардвер на рачунару онако како то модерни ОС ради.
*Када је ДОС први пут створен 1970-их, заштићени режим није постојао у ЦПУ-у. Тек када је процесор 80286 средином осамдесетих година прошлог века тај заштићени режим постао део ЦПУ-а.
Побрините се да пређете на изворну тему и прочитате живу дискусију на ову тему користећи линк испод!
Имате ли нешто да додате објашњењу? Звучи у коментарима. Желите ли прочитати више одговора од других технолошки паметних Стацк Екцханге корисника? Погледајте цео дискусију овде.