Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО практика.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

7. Распределение памяти пк в ос ms-dos.

Адресное пространство IBM-совместимых машин логически делится на три области:

область стандартной памяти (CMA – Conventional Memory Area)

область верхней памяти (UMA – Upper Memory Area)

область расширенной памяти (XMA – eXtended Memory Area)

CMA – имеет диапазон адресов от 0 до 640К – 1 (где К = 1024). В ней логически размещается стандартная память, размер которой не может превышать 640 Кбайт. Стандартная память имеется в ПК всегда.

UMA – находится в диапазоне адресов от 640К до 1М-1 (где М = 1024К), ее размер равен 384 Кбайт. В этой области логически содержатся видеопамять и постоянная память BIOS, а также могут размещаться дополнительные модули постоянной памяти и оперативной памяти, конструктивно находящиеся в адаптерах ПУ.

XMA – располагается в интервале адресов от 1М до UB – 1 (где UB – количество ячеек (байтов) в адресном пространстве ЦП или самого ПК). Для процессоров 8088/86 UB = 1М (поэтому XMA ими не поддерживается), для 80286 и 80386 оно составляет 16М, 80486 – 4Г. Если адресное пространство допускает XMA, то в нем логически находится расширенная память (extended memory).

Адрес всегда хранится в двух двухбайтовых словах, называемых адресом сегмента и смещения. Сегмент - это участок памяти, имеющий длину 64 кБ и начинающийся с физических адресов (0,16,32,48,..). Смещение указывает, сколько байт от начала сегмента надо пропустить, чтобы добраться до нужного адреса. Фрагмент памяти в 16 байт называется параграфом. Таким образом, сегменты могут пересекаться.

На данном изображении показано какой общий обьем памяти,он равен 14,910К, а также максимальный размер программы и максимальный свободного блока памяти.

Объем свободной стандартной памяти (Conventional)=619К, как видно на данном изображении.

Здесь также показано сколько памяти отведено на такие файлы как SETVER, HIMEM, EMM386, COMMAND, Free.

Первые 1024 байта в адресном пространстве с 0h до 3FFh хранят таблицу векторов прерываний, которая формируется BIOS.

Адреса с 400h по 4FFh (256 байт) – “ROM Communication Area” или “BIOS Data Area”, где BIOS хранит ключевые операционные параметры и информацию для прикладных и системных программ, которые заносятся при старте системы.

Следующие 512 байт (500h – 6FFh) – “Dos Communication Area”, которую DOS сохраняет для собственных нужд.

Далее, начиная с адреса 700h, находится зона загрузки собственно ОС, в частности IO.SYS, MSDOS.SYS и внутренние драйверы устройств.

С адреса A0000h – видеопамять.

В старших адресах этой области – ROM BIOS.

8.Подключение дополнительной памяти в ос ms-dos.

Назначение: управление расширенной и высокой памятью в соответствии со спецификацией XMS 3.0.

Синтаксис:

DEVICE=[dir\]HIMEM.SYS [/HMAMIN=n] [/NUMHENDLES=m] [/INT15=p] [/EISA] [/A20CONTGOL:{ON|OFF}] [/SHADOWRAM:{ON|OFF}] [/CPUCLOCK:{ON|OFF}] [/MACHINE:c] [/TESTMEM:{ON|OFF}] [/VERBOSE]

Этот драйвер выполняет две основные функции:

обеспечивает доступ выполняемых программ к расширенной памяти в соот-ветствии со спецификацией XMS и реализует другие функции по управлению ею;

формирует высокую память и управляет ею. Переключатель /HMAMIN=n специфицирует минимальный размер (в Кбайт) резидентной программы (или драйвера), которая может быть загружена в высокую память. Значение п должно принадлежать диапазону от 0 до 63 включительно.

Переключатель /NUMHENDLES=m задает максимальное число одновременно используемых обработчиков для ЕМВ.

Переключатель /INT15=p обеспечивает резервирование р Кбайт расширенной памяти для доступа к ней через прерывание 15Н вместо спецификации XMS.

Переключатель /EISA обеспечивает выделение всей доступной расширенной памяти под использование в соответствии со спецификацией XMS с системной ши-ной EISA при наличии более 16 Мбайт памяти.

Переключатель /A20CONTROL:{ON|OFF} указывает, брать на себя (ON) или нет (OFF) управление адресной линией А20 в том случае, когда она при подключении драйвера была активной.

Переключатель /SHADOWRAM:{ON|OFF} специфицирует, выключать (OFF) или нет (ON) теневую память, если она на ПК поддерживается. Теневая память — это область расширенной памяти (но логически адресуемая в пределах UMA как по-стоянная память), которая хранит копию BIOS для ускорения доступа к ней. Копи-рование BIOS в теневую память, когда она на ПК поддерживается, и подмена адре-сов осуществляется в процессе загрузки DOS по прошитому в BIOS коду. Отключе-ние теневой памяти замедляет работу ПК.

Переключатель /CPUCLOCK:{ON|OFF} указывает, корректировать (ON) или нет (OFF) тактовую частоту ПК. По умолчанию принимается OFF.

Переключатель /MACHINE:c специфицирует тип адаптера адресной линии А20.

Переключатель /TESTMEM:{ON|OFF} определяет, должен ли драйвер при его подключении к системе тестировать расширенную память.

Переключатель /VERBOSE (сокращение — /V) обеспечивает отображение со-общений о статусе при подключении драйвера. Без переключателя эти сообщения на экран не выдаются.

Примеры:

DEVICE=C:\DOS62\HIMEM.SYS — подключить к системе драйвер и выполнить все принимаемые по умолчанию установки;

DEVICE=C:\DOS62\HIMEM.SYS /TESTMEM:OFF — то же, но отключить те-стирование расширенной памяти при подключении драйвера к системе;

DEVICE=C:\DOS62\HIMEM.SYS /HMAMIN=40 /NUMHENDLES=128 - то же, но разрешить загрузку в высокую память.

Таблица

Адрес

m

Адрес

Примеры:

DEVICE=C:\DOS62\EMM386.EXE — подключить драйвер к системе, акти-визировать его с целью эмуляции только EMS/VCPI-памяти, но память пока не выделять, и принять все установки по умолчанию;

DEVICE=C:\DOS62\EMM386.EXE RAM — то же, но дополнительно обес-печить поддержку верхней памяти;

DEVICE=C:\DOS62\EMM386.EXE FRAME=D000 X=C000-C800 RAM — то же что и в предыдущем примере, но окно отображаемой памяти разместить по адресу D0000H и исключить использование памяти в диапазоне адресов от С0000Н до С8000Н;

DEVICE=C:\DOS62\EMM386.EXE NOEMS NOVCPI — подключить драй-20

вер к системе и активизировать его с целью поддержки только верхней памяти; все установки принять по умолчанию.

КОМАНДА DOS

Назначение: загрузка резидентных модулей DOS в высокую память и обеспечение связи DOS с верхней памятью.

Синтаксис:

DOS = {HIGH|LOW}[, UMB|NOUMB] или DOS = {UMB|NOUMB}[, HIGH|LOW]

Комментарии. Аргумент HIGH специфицирует перемещение резидентных мо-дулей DOS из стандартной памяти в высокую память, если она доступна.

Аргумент UMB указывает, что DOS должна обеспечивать связь с верхней памя-тью, сформированной драйвером EMM386.EXE или ему аналогичным. Когда верхняя память не сформирована, этот аргумент игнорируется.

Аргумент NOUMB запрещает DOS организацию связи с верхней памятью, даже если она сформирована. По умолчанию принимается NOUMB.

Примеры:

DOS=HIGH - переместить резидентные модули DOS в процессе ее загрузки в высокую память, если она доступна;

DOS=UMB - обеспечить связь DOS с верхней памятью, если она сформирована;

DOS=HIGH,UMB - выполнить все, что специфицировано двумя предыдущие ко-мандами.