Составители:
лицы прерываний определяется через содержимое соответствующего регистра, но для
обеспечения полной совместимости с первым процессором при включении или аппарат-
ном сбросе в этот регистр заносятся нули. Следует отметить, что в случае использования
современных микропроцессоров i80x86 векторы прерываний можно разместить и в дру-
гой области.
Вторая часть памяти отводится для размещения программных модулей самой
MS-DOS и программ пользователя. Эта область памяти называется Conventional Memory
(основная, стандартная память). В младших адресах основной памяти размещается то,
что можно назвать ядром ОС - системные переменные, основные программные модули,
блоки данных для буферизации операций ввода/вывода. Для управления устройствами,
драйверы которых не входят в базовую подсистему ввода/вывода, загружаются так на-
зываемые загружаемые (или инсталлируемые) драйверы, перечень которых определя-
ется в специальном конфигурационном файле CONFIG.SYS. В случае использования ПК
с объемом ОП более 1 Мбайта и наличия в памяти драйвера HIMEM.SYS возможно раз-
мещение данных за пределами первого мегабайта. Эта область памяти получила назва-
ние HMA (high memory area- область высокой памяти)
Наконец, третья часть адресного пространства отведена для постоянных запо-
минающих устройств и функционирования некоторых устройств ввода/вывода. Эта об-
ласть памяти получила название UMA (upper memory areas - область верхней памяти).
Для того чтобы предоставлять больше памяти программам пользователя, в MS-
DOS применено то же решение, что и во многих других простейших ОС - командный
процессор COMMAND.СОМ сделан состоящим из двух частей. Первая часть является
резидентной, она размещается в области ядра. Вторая часть - транзитивная; она разме-
щается в области старших адресов раздела памяти, выделяемой для программ пользова-
теля. Если программа пользователя перекрывает собой область, в которой была распо-
ложена транзитивная часть командного процессора, то последний при необходимости
восстанавливает ее в памяти после выполнения программы, так как далее управление
возвращается резидентной части COMMAND.СОМ.
4.2.2. Распределение памяти с перекрытием (оверлейные структуры)
Если есть необходимость создать программу, логическое (и виртуальное) адресное
пространство которой должно быть больше, чем свободная область памяти, или даже
больше, чем весь возможный объем оперативной памяти, то используется распределение
с перекрытием. Этот способ распределения предполагает, что вся программа может быть
разбита на части - сегменты. Каждая оверлейная программа имеет одну главную часть
(main) и несколько сегментов (segment), причем в памяти машины одновременно могут
находиться только ее главная часть и один или несколько не перекрывающихся сегмен-
тов.
Пока в оперативной памяти располагаются выполняющиеся сегменты, остальные
находятся во внешней памяти. После того как текущий (выполняющийся) сегмент за-
вершит свое выполнение, возможны два варианта. Либо он сам (если данный сегмент не
нужно сохранить во внешней памяти в его текущем состоянии) обращается к ОС с ука-
занием, какой сегмент должен быть загружен в память следующим. Либо он возвращает
управление главному сегменту задачи (в модуль main), и уже тот обращается к ОС с
указанием, какой сегмент сохранить (если это нужно), а какой сегмент загрузить в опе-
ративную память, и вновь отдает управление одному из сегментов, располагающихся в
памяти. Простейшие схемы сегментирования предполагают, что в памяти в каждый кон-
кретный момент времени может располагаться только один сегмент (вместе с модулем
main). Более сложные схемы, используемые в больших вычислительных системах, по-
зволяют располагать сразу по несколько сегментов. В некоторых вычислительных ком-
95
лицы прерываний определяется через содержимое соответствующего регистра, но для
обеспечения полной совместимости с первым процессором при включении или аппарат-
ном сбросе в этот регистр заносятся нули. Следует отметить, что в случае использования
современных микропроцессоров i80x86 векторы прерываний можно разместить и в дру-
гой области.
Вторая часть памяти отводится для размещения программных модулей самой
MS-DOS и программ пользователя. Эта область памяти называется Conventional Memory
(основная, стандартная память). В младших адресах основной памяти размещается то,
что можно назвать ядром ОС - системные переменные, основные программные модули,
блоки данных для буферизации операций ввода/вывода. Для управления устройствами,
драйверы которых не входят в базовую подсистему ввода/вывода, загружаются так на-
зываемые загружаемые (или инсталлируемые) драйверы, перечень которых определя-
ется в специальном конфигурационном файле CONFIG.SYS. В случае использования ПК
с объемом ОП более 1 Мбайта и наличия в памяти драйвера HIMEM.SYS возможно раз-
мещение данных за пределами первого мегабайта. Эта область памяти получила назва-
ние HMA (high memory area- область высокой памяти)
Наконец, третья часть адресного пространства отведена для постоянных запо-
минающих устройств и функционирования некоторых устройств ввода/вывода. Эта об-
ласть памяти получила название UMA (upper memory areas - область верхней памяти).
Для того чтобы предоставлять больше памяти программам пользователя, в MS-
DOS применено то же решение, что и во многих других простейших ОС - командный
процессор COMMAND.СОМ сделан состоящим из двух частей. Первая часть является
резидентной, она размещается в области ядра. Вторая часть - транзитивная; она разме-
щается в области старших адресов раздела памяти, выделяемой для программ пользова-
теля. Если программа пользователя перекрывает собой область, в которой была распо-
ложена транзитивная часть командного процессора, то последний при необходимости
восстанавливает ее в памяти после выполнения программы, так как далее управление
возвращается резидентной части COMMAND.СОМ.
4.2.2. Распределение памяти с перекрытием (оверлейные структуры)
Если есть необходимость создать программу, логическое (и виртуальное) адресное
пространство которой должно быть больше, чем свободная область памяти, или даже
больше, чем весь возможный объем оперативной памяти, то используется распределение
с перекрытием. Этот способ распределения предполагает, что вся программа может быть
разбита на части - сегменты. Каждая оверлейная программа имеет одну главную часть
(main) и несколько сегментов (segment), причем в памяти машины одновременно могут
находиться только ее главная часть и один или несколько не перекрывающихся сегмен-
тов.
Пока в оперативной памяти располагаются выполняющиеся сегменты, остальные
находятся во внешней памяти. После того как текущий (выполняющийся) сегмент за-
вершит свое выполнение, возможны два варианта. Либо он сам (если данный сегмент не
нужно сохранить во внешней памяти в его текущем состоянии) обращается к ОС с ука-
занием, какой сегмент должен быть загружен в память следующим. Либо он возвращает
управление главному сегменту задачи (в модуль main), и уже тот обращается к ОС с
указанием, какой сегмент сохранить (если это нужно), а какой сегмент загрузить в опе-
ративную память, и вновь отдает управление одному из сегментов, располагающихся в
памяти. Простейшие схемы сегментирования предполагают, что в памяти в каждый кон-
кретный момент времени может располагаться только один сегмент (вместе с модулем
main). Более сложные схемы, используемые в больших вычислительных системах, по-
зволяют располагать сразу по несколько сегментов. В некоторых вычислительных ком-
95
Страницы
- « первая
- ‹ предыдущая
- …
- 91
- 92
- 93
- 94
- 95
- …
- следующая ›
- последняя »
