русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Средства использования памяти


Дата добавления: 2013-12-23; просмотров: 1671; Нарушение авторских прав


Если на компьютере с микропроцессором 80286 или выше имеются области памяти с адресами выше 1024-1088 Кбайт и выше 1088 Кбайт, то их можно использовать соответственно как высокую и дополнительную память. Это позволяет драйвер MS-DOS HIMEM.SYS. Если же микропроцессор компьютера 80386 и выше, то драйвер MS-DOS EMM386.EXE позволит использовать блоки верхней памяти, а также конфигурировать часть дополнительной памяти как расширенную.

 

HIMEM.SYS

 

Драйвер HIMEM.SYS обеспечивает стандарт XMS 3.0 для доступа к дополнительной памяти и области высокой памяти на компьютерах с микропроцессором 80286 и выше. Чтобы установить драйвер HIMEM.SYS, обычно достаточно команды CONFIG.SYS вида DEVICE = C:\DOS\ HIMEM.SYS. Без параметра /V HIMEM.SYS не будет отображать стандартное сообщение. Параметр /TESTMEM: OFF отключает тестирование дополнительной памяти. Если HIMEM.SYS не может правильно определить тип компьютера, то необходимо указать правильное значение для параметра /MACHINE: xxxx. На компьютерах с 32 разрядной шиной и объёмом памяти более 16 Мбайт следует устанавливать HIMEM.SYS с параметром /EISA. По умолчанию HIMEM.SYS использует дополнительную память не выше адреса 16.384 Кбайт. Если при установке HIMEM.SYS изменяется скорость хода системных часов; следует обратиться к параметру /CPUCLOCK: ON. Этот параметр может восстановить нормальную работу часов, но при его использовании замедляется обращение к дополнительной памяти. При помощи параметра /HMAMIN = m можно указать минимальное количество требуемой памяти, при котором программе будет предоставляться область ИМА. m может приписывать значения от 0 до 63 Кбайт. По умолчанию m = 0. Параметр /NUMHANDLES = n определяет максимальное количество одновременно используемых обработчиков блоков дополнительной памяти. Возможны значения 1-128. По умолчанию используется значение 32.



EMM386.EXE

Драйвер EMM38.EXE – это диспетчер расширенной памяти, который можно использовать на компьютерах с микропроцессорами 80386 и выше. Драйвер EMM368.EXE выполняет две основные функции:

1) использует память XMS, поставляемую драйвером HIMEM.SYS для эмуляции расширенной памяти.

2) обеспечивает программам DOS доступ к части верхней памяти.

Чтобы загрузить драйвер EMM386.EXE достаточно поместить в CONFIG.SYS команды вида: DEVICE = C:\DOS\ HIMEM.SYS. DEVICE = C:\DOS\ EMM386.EXE. Установка параметра ON активизирует драйвер EMM386.EXE сразу после его загрузки. Параметр OFF приостанавливает работу драйвера. Если драйвер загружен с параметром AUTO, то он будет активизирован, когда в этом появится необходимость, например, когда какой-либо программе потребуется UMB или EMS. По устанавливается параметр ON. EMM386.EXE позволяет указать максимальное и минимальное количество памяти, которая может быть отведена для поддержки EMS. По умолчанию минимум – 256 Кбайт, максимальное количество соответствует объёму XMS памяти в системе. Для указания минимального значения используется параметр MIN = размер. Например, чтобы инструктировать EMM386.EXE использовать от 0.5 до 8 Мбайт расширенной памяти, команда загрузки EMM386.EXE должна выглядеть так: DEVICE = C:\DOS\ EMM386.EXE 8192 MIN = 512. Существует и другой способ ограничения максимального объема EMS – памяти – указание минимального объема XMS – памяти, который обязательно должен остаться. Это делается указанием параметра L = минимум XMS, где минимум XMS – значение в килобайтах, по умолчанию = 0.

Эмуляцию расширенной памяти можно и запретить. Параметр NOEMS запрещает доступ к EMS – памяти. Обычно часть кода EMM386.EXE загружается в верхнюю память. Параметр NOHI запрещает использование CIMB драйвером EMM386.EXE. Кроме того EMM386.EXE по умолчанию использует верхнюю память для копии данных BIOS, находящихся в базовой памяти. Этому можно воспрепятствовать при помощи параметра NO MOVE X BDA.

Если используются HIMEM.SYS и EMM386.EXE, то можно загружать резидентные программы и драйверы устройств в верхнюю область памяти, освобождая стандартную память. Для загрузки драйверов устройств в верхнюю память из CONFIG.SYS используется команда DEVICEHIGH, для загрузки резидентных программ в верхнюю память из командной строки или A TOEXEC.BAT – команда LOADHIGH.

 

 

ОПТИМИЗАЦИЯ ИСПОЛЬЗОВАНИЯ ПАМЯТИ.

 

По умолчанию код ядра MS-DOS располагается в базовой оперативной памяти, занимая там более 60 К байт. Загрузить большую часть ядра MS-DOS в область высокой памяти можно, включив в CONFIG.SYS команду DOS = HIGH. Для этого должен быть загружен драйвер HIMEM.SYS. Части MS-DOS, которые загружаются в HMA, включают большую часть ядра HS-DOS, буферов MS-DOS, а также поддержки национальных кодовых страниц. Для совместимости с программным обеспечением, созданным для более ранних версий MS-DOS, приблизительно 19 Кбайт кода DOS остается в стандартной памяти. Значение команды DOS = LOW соответствует размещению всего ядра MS-DOS в базовой памяти и является значением по умолчанию. В HMA можно загружать не только MS-DOS. В области высокой памяти можно установить, например, сетевой драйвер, но одновременно в HMA может находиться только одна программа.

 

СОЗДАНИЕ БЛОКОВ ВЕРХНЕЙ ПАМЯТИ.

 

По умолчанию MS-DOS никак не использует область UMA. Для того, чтобы MS-DOS использовала блоки верхней памяти, должна быть выполнена команда CONFIG.SYS DOS = UMB. Для того, чтобы эта команда выполнилась, должен быть загружен драйвер, поддерживающий доступ к UMB.

Драйвером UMB, поставляемым с MS-DOS, является EMM386.EXE, который работает только с микропроцессором 80386 и выше. Значение команды DOS = NOUMB означает, что программы MS-DOS не будут иметь доступа к UMB, и является значением по умолчанию.

 

 

КОМАНДЫ LOADHIGH и DEVICEHIGH.

 

Команду DEVICEHIGH можно использовать для загрузки устанавливаемых драйверов из файла CONFIG.SYS. Если при этом имеется свободный блок верхней памяти подходящего размера, то драйвер будет загружен в него, а не в базовую память.

Команда LOADHIGH (LH) используется в файле AUTOEXEC.BAT и служит для загрузки резидентных программ и драйверов в памяти по возможности в блоки верхней памяти. Определим оптимальный порядок загрузки резидентных программ и драйверов устройств в блоки UBM. Если при загрузки обычным способом драйверов из CONFIG.SYS и резидентных программ из AUTOEXEC.BAT команда MEM показывает, что для программ MS-DOS доступен не достаточный объём базовой памяти, то необходимо командой DEVICE = C:/DOS/EMM386.EXE NOEMS создать блоки UMB не расходуя верхнюю память на страничный блок доступа к EMS-памяти и занести в CONFIG.SYS команду DOS = HIGH, UMB. Благодаря отказу от поддержки EMS можно загрузить в верхнюю память практически все резидентные программы и драйверы устройств. Может возникнуть ситуация, когда резидентные программы или драйвер не сиожет быть загружен в верхнюю память несмотря на то, что размер, занимаемый им в памяти меньше свободного блока в UMB, т.к. свободный блок должен быть несколько большего размера, чем объём памяти, который будет занят. Обычно требуется объём блока верхней памяти, превышающий размер исполняемого модуля загружаемой программы.

Команды DEVICEHIGH и LOADHIGH загружают каждый драйвер и резидент в самую большую область UMB. Поэтому команды, загружающие драйверы и резидентные программы, должны выполняться в порядке убывания их размера в оперативной памяти. Однако надо учитывать, что драйвер SMART Drive одновременно использует верхнюю и базовую память.

В целях оптимизации использования памяти можно использовать следующие параметры: [/L: область1[, minразмер1][; область2,[minразмер2]][/S]

/L – загружает драйверы и резиденты в конкретную область памяти, либо указывает какие области памяти могут быть использованы (/L:2;3). Значение “minразмер” означает объём памяти, который использует программа. Параметр /S сжимает соответствующий блок UMB до минимального размера, что обеспечивает наиболее эффективное использование памяти. Для упрощения и ускорения процесса оптимизации памяти в MS-DOS включена программа MemMarker, автоматически подбирающее наилучшее значение параметров команд DEVICEHIGH и LH.

SMARTDRIVE. Драйвер создаёт дисковый кэш в дополнительной памяти компьютера. Начиная с версии 4.0 SMART Drive является используемой программой SMARTDRV.EXE, до этого был SYS-драйвером. При использовании наиболее распространённой методики кэширования программа пытается считать дисковые данные в кэш-буфер до того, как они потребуются микропроцессору, - так называемое упреждающее чтение. В кэше сохраняются те данные, которые чаще востребуются микропроцессором. Кэш-программа перехватывает инструкции на чтение диска. Если в кэше содержится информация из требуемого участка диска, то микропроцессор получает её не с диска, а с кэша. В среднем это существенно ускоряет общую реакцию диска. Область памяти, которая конфигурируется под кэш, делится на целое количество ячеек фиксированного размера. Именно такими порциями дисковые данные пересылаются в кэш и из кэша. От размера ячеек зависит продуктивность работы программы кэширования при различных дисковых операциях. Некоторые утилиты кэширования обеспечивают более высокую производительность за счет применения улучшенных методик, в первую очередь – метода отложенной записи. При кэшировании записи программа кэширования перехватывает инструкции на запись данных, помещает информацию, которая должна быть записана, в кэш и оповещает систему о том, что запись произведена. На самом деле запись происходит несколькими секундами позже. Таким образом, записываемые данные помещаются в кэш, что делает процедуру записи почти незаметной. По умолчанию SMART Drive загружается в верхнюю память. Однако, это может привести к несовместимости с некоторыми контроллерами жесткого диска. В этом случае можно применить метод двойной буферизации, при котором читающий буфер располагается в базовой памяти. Для этого перед запуском SMART Drive следует загрузить SMARTDRV.EXE как драйвер из CONFIG.SYS с параметром /DOUBLE_BUFFER. Иногда это сильно замедляет кэширование. Тогда можно выйти из положения загружая SMART Drive с параметром /L, препятствующим размещению программы в верхней памяти. Параметр /E: размер_ячейки указывает размер ячейки в байтах. По умолчанию – 8192. Параметр /B: упреждающий_буфер определяет размер упреждающего буфера, который по умолчанию равен 16.384 байт. Размер кэша также можно указать параметром. По умолчанию этот параметр примет значение в зависимости от объёма дополнительной памяти.

 



<== предыдущая лекция | следующая лекция ==>
Использование памяти системой MS-DOS | Windows 9.x Функции операционной системы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.