If-Koubou

Kā iespējots vairāku uzdevumu veikšana vecākajās Windows versijās?

Kā iespējots vairāku uzdevumu veikšana vecākajās Windows versijās? (Kā)

Ņemot vērā, ka DOS bija viena uzdevuma operētājsistēma un saites, kas tai bija ar agrīnām Windows versijām, kā iepriekšējās Windows versijās tika veikta daudzuzdevumu veikšana? Šodienas SuperUser Q & A post apskata atbildes uz šo jautājumu.

Šodienas jautājumu un atbilžu sesija mums priecājas par SuperUser - Stack Exchange dalību, kas ir kopienas vadīta Q & A tīmekļa vietņu grupa.

Windows 95 screenshot pieklājīgi no Wikipedia.

Jautājums

SuperUser lasītājs LeNoob vēlas uzzināt, kā vecākas Windows versijas spēj darboties kā daudzuzdevumu sistēmas?

Es izlasīju, ka DOS ir viena uzdevuma operētājsistēma. Bet, ja vecākas Windows versijas (ieskaitot arī Windows 95?) Bija tikai DOS aplauzums, kā tās var darboties kā daudzuzdevumu operētājsistēma?

Labs jautājums! Kā Windows vecākās versijas spēj darboties kā daudzuzdevumu sistēmas?

Atbilde

SuperUser atbalstītāji Bobs un Pete ir atbilde mums. Pirmkārt, Bobs:

Windows 95 bija daudz vairāk nekā "tikai iesaiņotājs" MS-DOS. Citējot Raymond Chen:

  • Windows 95 operētājsistēmā MS-DOS bija divi mērķi: 1.) Tas kalpoja kā boot loader. & 2.) Tas darbojās kā 16 bitu mantotais ierīces draivera slānis.

Windows 95 patiešām ir piesaistījis / pārblīvējis gandrīz visu MS-DOS, saglabājot to kā saderības slāni, vienlaikus veicot visu smago pacelšanu. Tā arī ieviesa preventīvus daudzuzdevumus 32 bitu programmām.

Pirms Windows 95

Windows 3.x un vecāki bija galvenokārt 16 bitu (izņemot Win32s, sava veida saderības slāni 16 un 32 tiltiem, taču mēs to ignorēsim), tie bija vairāk atkarīgi no DOS un izmantoja tikai kopīgu multi-uzdevumu - tas ir tas, kurā viņi nepieprasa palaistu programmu; viņi gaida, kamēr darbojas programma, lai iegūtu kontroli (būtībā sakiet "esmu darīts", paziņojot OS, lai palaistu nākamo gaidīšanas programmu).

  • Multi-uzdevumu veikšana bija sadarbspējīga, tāpat kā vecajās MacOS versijās (lai gan atšķirībā no Multi-uzdevumjoslas DOS 4.x, kas sodaja priekšrocību multi-uzdevumus). Vienam uzdevumam bija jāpiedalās operētājsistēmai, lai plānotu citu uzdevumu. Ienesīgums tika iestrādāts dažos API zvanos, jo īpaši ziņojumu apstrādē. Kamēr uzdevums savlaicīgi apstrādāja ziņojumus, viss bija lieliski. Ja uzdevums apstājās apstrādāt ziņojumus un bija aizņemts, izpildot kādu apstrādes cilpu, vairāku uzdevumu veikšanai nebija vairs.

Windows 3.x arhitektūra

Runājot par to, kā agri Windows programmas novedīs pie kontroles:

  • Windows 3.1 izmanto sadarbības daudzuzdevumu - tas nozīmē, ka katrai lietojumprogrammai, kas darbojas darbības laikā, tiek instruēta periodiski pārbaudīt ziņu rindu, lai noskaidrotu, vai kāds cits lietojumprogramma lūdz CPU izmantošanu, un, ja tā, lai iegūtu kontroli šo pieteikumu. Tomēr daudzās Windows 3.1 lietojumprogrammās ziņu rinda tiktu pārbaudīta tikai reti vai vispār nebūtu, un monopolizēt CPU kontroli tik ilgi, cik nepieciešams. Pretvilcīga daudzuzdevumu sistēma, piemēram, Windows 95, aizņems CPU kontroli no darbības programmas un izplatīs to lietotājiem, kuriem ir lielāka prioritāte, pamatojoties uz sistēmas vajadzībām.

Avots

Visas DOS redzētu, vai šī vienotā lietojumprogramma (Windows vai cita) darbojas, un tā var pārslēgt kontroli bez iziešanas. Teorētiski priekšrocību multi-uzdevumu var vienlaikus īstenot papildus DOS, izmantojot reālā laika pulksteni un aparatūru pārtrauc piespiedu kārtā piešķirt kontroli pār plānotāju. Kā komentē Tonny, to faktiski izdarīja daži OS, kas darbojas DOS virspusē.

386 uzlabotais režīms?

Piezīme. Daži komentāri par 386 uzlaboto Windows 3.x režīmu ir bijuši 32 bitu faili, un tiek atbalstīta daudzpusīgo uzdevumu novēršana.

Tas ir interesants gadījums. Lai apkopotu saistīto emuāra ziņu, 386 uzlabotais režīms būtībā bija 32 bitu hipervisors, kas darbināja virtuālās mašīnas. Vienā no šīm virtuālajām mašīnām iekšpusē bija Windows 3.x standarta režīms, kurā ir visas iepriekš minētās lietas.

MS-DOS arī darbosies šajās virtuālajās mašīnās, un acīmredzot tās bija pirmām kārtām vairāku uzdevumu veikšanai, tādēļ šķiet, ka 386 uzlabotais režīms hypervisor sadalīs procesoru laika slāņus starp virtuālajām mašīnām (no kurām viena bija normāla 3.x un citi, kas darbojās MS-DOS), un katrs VM veiks savu lietu - 3.x būtu kopīgi vairāku uzdevumu, bet MS-DOS būtu vienots uzdevums.

MS-DOS

DOS pati bija vienkārša uzdevuma veikšana uz papīra, bet tai bija atbalsts TSR programmām, kas paliktu fonā, līdz to izraisīja aparatūras pārtraukšana. Tālu no daudziem uzdevumiem, bet ne pilnībā.

Visas šīs runas par bit-ness? Es jautāju par daudzuzdevumu veikšanu!

Nu, stingri runājot, bit-ness un multi-uzdevumu nav atkarīgi viens no otra. Jābūt iespējai īstenot jebkuru multi-uzdevumu režīmu jebkurā bit-ness. Tomēr pāreja no 16 bitu procesoriem uz 32 bitu procesoriem ieviesa arī citu aparatūras funkcionalitāti, kas būtu ļāvusi vienkāršāk īstenot preventīvo uzdevumu izpildi.

Turklāt, tā kā 32 bitu programmas bija jaunas, tās bija vieglāk iegūt, lai tās darbotos, kad tās tika piespiedu kārtā izslēgtas, un tas varēja sabojāt dažas mantotās 16 bitu programmas.

Protams, tas viss ir spekulācija. Ja jūs patiešām vēlaties uzzināt, kāpēc MS nav ieviesusi priekšlaicīgu daudzuzdevumu veikšanu Windows 3.x versijā (neatkarīgi no uzlabotā režīma 386), jums būs jālūdz kāds, kurš tajā strādāja.

Arī es gribēju labot jūsu pieņēmumu, ka Windows 95 bija tikai DOS iesaiņojums.

Seko atbildi no Pete:

Mūsdienu operētājsistēmā operētājsistēma kontrolē visus aparatūras resursus, un palaistās programmas tiek glabātas smilškaste. Pieteikums nav atļauts piekļūt atmiņai, ko OS nav piešķirusi šim lietojumprogrammai, un tā nevar tieši piekļūt datora aparatūras ierīcēm. Ja nepieciešama aparatūras piekļuve, lietojumprogrammai ir jāsazinās ar ierīces draiveri.

OS var ieviest šo kontroli, jo tas liek CPU ievadīt aizsargāto režīmu.

DOS, no otras puses, nekad neiegūst aizsargāto režīmu, bet paliek reālā režīmā (*Skatīt zemāk). Reālā režīmā esošās programmas var veikt visu, ko tā vēlas, t.i., tieši piekļūt aparatūrai. Bet lietojumprogramma, kas darbojas reālā režīmā, var arī pateikt, ka CPU jāievada aizsargātajā režīmā.

Un šī pēdējā daļa ļauj tādām lietojumprogrammām kā Windows 95, lai sāktu daudzvirzienu vidi, lai gan tie galvenokārt tika palaisti no DOS.

DOS (Disk operētājsistēma), cik man zināms, bija nekas vairāk kā failu pārvaldības sistēma. Tas nodrošināja failu sistēmu, failu sistēmas navigācijas mehānismus, dažus rīkus un iespēju palaist lietojumprogrammas. Tas ļāva arī dažām lietojumprogrammām palikt pastāvīgiem, t.i., peles vadītājiem un EMM emulatoriem. Bet tā nemēģināja kontrolēt aparatūru datorā tā, kā darbojas mūsdienu OS.

*Kad DOS pirmo reizi tika izveidots 1970. gados, aizsargātajam režīmam CPU nepastāvēja. Tikai 80286 procesora laikā 80. gadu vidū aizsargājamais režīms kļuva par CPU daļu.

Pārliecinieties, vai pārlūkojat sākotnējo pavedienu un izlasiet dziļu diskusiju par šo tēmu, izmantojot tālāk esošo saiti!

Vai kaut ko pievienot paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem? Šeit skatiet pilnu diskusiju pavedienu.