100 likes | 403 Views
MS DOS: ATMIŅAS PĀRVALDĪBA (1). Atmiņas pārvaldība - metožu kopums, kas nodrošina efektīvu atmiņas resursu vadīšanu un iedalīšanu. Atmiņas vadības funkcijas izpilda OS. IBM PC datoru atmiņas loģiskās daļas: Pamatatmiņas apgabals (CMA – Conventional Memory Area ). Apjoms – 640K.
E N D
MS DOS: ATMIŅAS PĀRVALDĪBA (1) Atmiņas pārvaldība - metožu kopums, kas nodrošina efektīvu atmiņas resursu vadīšanu un iedalīšanu. Atmiņas vadības funkcijas izpilda OS. IBM PC datoruatmiņasloģiskās daļas: • Pamatatmiņas apgabals (CMA – Conventional Memory Area). Apjoms – 640K. • Augšējas atmiņas apgabals (UMA – Upper Memory Area). Diapazons no 640K līdz 1M. • Paplašinātas atmiņas apgabals (XMA - eXtended Memory Area). Diapazons – virs 1M (augšēja robeža “UB” – kopējais šūnu skaits mikroprocesorā).
MS DOS: ATMIŅAS PĀRVALDĪBA (2) MS DOS bez papildus draiveriem var adresēt tikai 1M adrešu platību. (Tas ir mikroprocesora8088/86 trūkums). Modernākie procesori, strādājot DOS vidē ir spiesti imitēt (emulēt) procesoru 8088 ar visiem ierobežojumiem un šo darba režīmu sauc par reālu, bet citu režīmu, kurā var izmantot visu atmiņu, sauc par aizsargātu. Visus atmiņas apgabalus, kas nepieder pamatatmiņai, bieži sauc par papildus atmiņu, kuras izmantošanai bija izstrādāti dažādi paņēmieni un koncepcijas, kas ļauj uzrādīt šādus atmiņas veidus: attēlojamā (EMS), paplašinātā (XMS), augstā (HMA) un augšējā (UMB).
MS DOS: ATMIŅAS PĀRVALDĪBA (3) Atmiņas loģiskā struktūra: “UB” XMA Paplašinātā atmiņa XMS Attēlojamā atmiņa EMS 1M+64K-16 Augstā atmiņa - HMA 1M Pastāvīgā atmiņa UMB reģions UMA EMS logs UMB reģions Videoatmiņa 640K Pamatatmiņa CMA
MS DOS: ATMIŅAS PĀRVALDĪBA (4) CMA izmantošanas karteAtmiņas bloku virkne 640K Command.com (nerezid. daļa) Programmu steks Sākuma MCB Brīvs atmiņas apgabals, kas ir pieejams programmām . MCB DOS vides dublikāts Command.com (rezidenta daļa) . MSDOS.SYS IO.SYS MCB MS DOS globālie mainīgi Programmas kods BIOS globālie mainīgi Pārtraukumu vektoru tabula 0
MS DOS: ATMIŅAS PĀRVALDĪBA (5) DOS var izmantot pamatatmiņubez ierobežojumiem - programmu, datu glabāšanai; DOS moduli arī tiek izvietoti šajā atmiņas apgabalā. Pamatatmiņas iedalīšana notiek pa blokiem (bloks ir atmiņas nepārtraukts apgabals, kas ir iedalīts datiem vai programmai uz izpildīšanas laiku). Bloka pirmie 16 baiti tiek iedalīti atmiņas vadības blokam (MCB – Memory Control block), kas apraksta bloka apjomu un īpašnieku, kā arī nodrošina saiti ar nākamo atmiņas bloku. Visi bloki ir saistīti virknē, kas nodrošina atmiņas vadīšanu. Virknes sākumā tiek iedalīts bloks DOS vides dublikātam. Iedalītie programmai bloki tiek atbrīvoti pēc programmas izpildes pabeigšanas.
MS DOS: ATMIŅAS PĀRVALDĪBA (6) Attēlojamās atmiņas koncepciju (Expanded memory Specification – EMS) piedāvāja trīs firmas – Lotus, Intel, Microsoft. Programmas un aparatūras līdzekļi, kas ir savietojami ar EMS, nodrošina papildus atmiņu tikai datu glabāšanai, lai programma varētu izmantot to ar vienkāršu adresāciju. EMS darbības princips tiek balstīts uz lappušu aizvietošanas paņēmiena. UMA vidē tiek iedalīts 64Kb logs, kurā var attēlot četras (16Kb) lappuses no papildus atmiņas, kas ir vajadzīgas dotā brīdī. Ar šo paņēmienu mikroprocesors tiek “maldināts”, jo izmanto datus, kas ir izvietoti atmiņas apgabalā, kurš nepieder mikroprocesora adrešu platībai. EMS atbalstīšanai izmanto draiveri EMM386.exe.
MS DOS: ATMIŅAS PĀRVALDĪBA (7) Paplašinātās atmiņas koncepciju (eXtended memory Specification – XMS) izstrādāja firmas Microsoft, Lotus, Intel un AST. Draiveris HIMEM.SYS, kas realizē XMS specifikāciju, ļauj pārsūtīt datus no pamatatmiņas uz paplašinātu un atpakaļ, izvietot programmas paplašinātā atmiņā nav paredzēts. Tehniski pieeja paplašinātai atmiņai tiek realizēta ar mikroprocesora pārslēgšanu no reāla uz aizsargātu režīmu, kurā visu atmiņu var izmantot bez grūtībām. Paplašinātās atmiņas izdalīšana notiek pa blokiem (EMB – Extended Memory Block) ar speciālu pieprasījumu no programmas. Programma saņem savā rīcībā apdarinātāju un izmanto to lai realizētu pieeju izdalītiem atmiņas blokiem.
MS DOS: ATMIŅAS PĀRVALDĪBA (8) Augstās atmiņas (High Memory Area – HMA) adrešu diapazons ir no 1M līdz (1M+64K -16) un tajā var izvietot gan datus, gan programmas, jo nevajag pārslēgt mikroprocesoru aizsargāta režīmā. HMA realizēšanai izmanto draiveri HIMEM.SYS, kas ļauj ievietot šajā atmiņas diapazonā tikai vienu programmu (pārsvarā tas ir MS DOS rezidenta modulis). HMA vēsturisks pamatojums:mikroprocesora 80286 izstrādē bija izdarīta kļūda, kuras rezultātā adresēšana notiek XMA pirmām segmentam UMA pēdēja segmenta vietā.Lai novērstu šo kļūdu, mikroprocesorā konstrukcijā bija iekļauts speciāls mezgls, kas pārvalda adrešu maģistrāles A20 stāvokli. Bet šo mezglu var bloķēt un parādās iespēja pieejai XMA pirmām segmentam ar vienkāršu adresāciju.
MS DOS: ATMIŅAS PĀRVALDĪBA (9) Augšējās atmiņas blokus (Upper Memory Blocks - UMB), kas atrodas adrešu diapazonā no 640K līdz 1M, mikroprocesori (sākot no 80386) var brīvi izmantot, jo tie ļauj loģisku adrešu pārveidošanu fiziskās adresēs. Kopumā šī tehnoloģija sakrīt ar EMS darbību, bet ir divas atšķirības: 1)UMB var glabāt kā datus, tā arī programmas, 2)nevar izmantot atmiņu, kas ir lielāka par UMA brīviem blokiem, jo lappušu aizvietošanas mehānisms nedarbojas. Pilnu UMB vadīšanu izpilda draiveri HIMEM.SYS un EMM386.EXE. Augšēja atmiņa tiek iedalīta pa blokiem, kuro izmērs nevar būt lielāks par brīvu bloku izmēriem (bet jebkurā gabalā var izvietot vairākus blokus). Augšēja atmiņā (sakarā ar to fragmentēšanu) var ielādēt neliela izmēra programmas (draiverus un rezid. programmas).
MS DOS: ATMIŅAS PĀRVALDĪBA (10) Atmiņas pilnas struktūras atbalstīšanai ir vajadzīgs: • Pieslēgt draiveri HIMEM.SYS; • Pieslēgt draiveri EMM386.EXE ar atslēgu RAM; • Failā Config.sys uzrādīt komandu DOS=HIGH, UMB, kas ļauj DOS rezidenta moduļus ielādēt augstā atmiņā; • Ar komandu DEVICEHIGH uzrādīt ārējo draiveru ielādēšanu augšējā atmiņā, bet ar komandu LOADHIGH – rezidenta programmu ielādēšanu augšējā atmiņā. Draiveru pieslēgšanas komandas: • DEVICE=[disks:\][ceļš\]HIMEM.SYS [/atslēgas] • DEVICE=[disks:\][ceļš\]EMM386.EXE [atslēgas]