Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)
Demon's Souls |#9| Heart of surprises

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Различные авторы Весь текст 2311.07 Kb

Программирование и кодирование

Предыдущая страница Следующая страница
1 ... 27 28 29 30 31 32 33  34 35 36 37 38 39 40 ... 198
                          |       Пользователь      |     |       |
                    10000 |-------------------------|     |       |
                          |  Используется системой  |     V       V
                    00000  ------------------------------------------
            Рис.3-1. Стандартный формат памяти IBM PC/XT/AT для MS-DOS

             Непосредственно никакая,  но в большинстве случаев эта допол-
         нительная  "расширенная  память" (поскольку она простирается выше
         границы в 1 Мбайт) может часто быть использована  как  псевдодиск
         или в более общем плане, как другой тип дополнительной памяти MS-
         DOS,  называемой "расширяемой памятью" (потому, что она "расширя-
         ет" основной предел MS-DOS в 640 Кбайт).
             Для MS-DOS версии 3.3 и более ранних версий продукты расширя-
         емой памяти доступны в трех разновидностях.  Первая  спецификация
         расширяемой  памяти  была  разработана совместно фирмами "Лотус",
         "Интел" и "Майкрософт" и называлась LIM  EMS  версии  3.2  (Limit
         Expanded Memory Specification - предельная спецификация расширяе-
         мой памяти).  Несколько позже  фирмы  "Аштон-Тэйт",  "Квэдрим"  и
         "АСТ"  разработали  улучшенный  стандарт  AQA  EEMS (the Enhanced
         Expanded Memory Specification - улучшенную спецификацию расширяе-
         мой памяти). Фирмы "Лотус", "Интел" и "Майкрософт" соединили луч-
         шие стороны AQA EEMS в LIM EMS версии 4.0. Все системы EMS состо-
         ят  из  памяти  (на соединительной  плате или плате расширения) и
         администратора  улучшенной  памяти  EMM  (the   Enhanced   Memory
         Manager)  -  устанавливаемого драйвера устройства.  Для установки
         функций EMS резервируется прерывание MS-DOS с номером 67h. MS-DOS
         версии 4.0 и выше,  как часть операционной системы,  поддерживает
         стандарт LIM  EMS  версии  4.0.  Реализация аппаратных средств от
         производителя к производителю меняется.  Программное  обеспечение
         EMS  MS-DOS  версии 4.0 состоит из устанавливаемого драйвера уст-
         ройства,  а, фактически, любого драйвера устройства EMS и совмес-
         тимого соединения аппаратных средств, которые могут быть заменены

                                      - 3-3 -
         применяемой операционной системой.
             Расширяемая память  является  результатом  появления  в среде
         MS-DOS устойчивых традиций использования  страничной  памяти  или
         памяти коммутации банков.  При  этом подходе большой раздел памя-
         ти, который лежит вне адресного пространства процессора, "отобра-
         жается" малыми областями на многие маленькие разделы памяти,  ле-
         жащие внутри адресного пространства процессора.  В то  время  как
         процессор  не  может  адресовать большой раздел памяти непосредс-
         твенно, он может выбрать или дойти до любой конкретной части, по-
         добно выбору страницы в книге.
             В спецификации расширяемой памяти MS-DOS или EMS большая  фи-
         зическая  память  отображается  в  16-килобайтные  разделы памяти
         MS-DOS, называемые страницами. Соответствующее 16-килобайтное ад-
         ресное  пространство  в памяти MS-DOS называется страничным фрей-
         мом. Количество поддерживаемых страничных фреймов и размещение их
         внутри  системы MS-DOS изменяется в зависимости от типа платы ис-
         пользуемой расширяемой памяти, и существующей конфигурации систе-
         мы.
             Глава 7 посвящена обзору памяти EMS,  описывающей методы дос-
         тупа,  стандарт EMS и пр.  В данном обсуждении мы хотя и признаем
         существование памяти EMS,  но не уделяем  ей  большого  внимания.
         Прежде  всего нас будет интересовать,  как сама MS-DOS использует
         память, и для нас достаточно отметить, что память EMS должна быть
         отображена  на стандартное адресное пространство памяти для того,
         чтобы быть доступной для MS-DOS.  (Имеются соображения о том, что
         последующие  версии  MS-DOS  могут использовать память EMS непос-
         редственно, реально преодолевая границу в 640 Кбайт).

                        Использование памяти MS-DOS

             К этому моменту мы установили, что по текущему стандарту фак-
         тически  MS-DOS имеет 640 Кбайт памяти для использования ею самой
         и прикладными программами пользователя.  В типовой системе MS-DOS
         эта  память будет распределяться так,  как показано на Рис.  3-2.
         Рассматривая Рис.3-2, можно заметить, что большинство приведенных
         адресов указано приблизительно и зависит от версии MS-DOS,  физи-
         ческой конфигурации системы и опций, указываемых пользователями в
         файлах конфигурации системы CONFIG.SYS и AUTOEXEC.BAT.  Кроме то-
         го, размеры сегментов, указанные на Рис. 3-2, показаны не в масш-
         табе,  а в соответствии с данной относительной позицией различных
         компонентов.
             На Рис.3-2  есть несколько областей,  которые требуют поясне-
         ния.  Заметим, что первая область COMMAND.COM появляется на схеме
         памяти  дважды.  Загружены  две  копии COMMAND.COM?  Нет,  просто
         COMMAND.COM загружается в две отдельные области.  Область, разме-
         щенная выше драйверов устройств, сохраняется в памяти постоянно и
         называется резидентной частью. Эта часть отвечает за корректность
         завершения  программ обработки и любые ошибки программы пользова-
         теля, которые возникают в результате завершения работы программы.
         Этот  раздел  является "порождающей программой" любой выполняемой
         программы пользователя.  Другой раздел COMMAND.COM, размещенный в
         верхней части схемы памяти, является частью, которая обеспечивает
         интерфейс пользователя с MS-DOS. Эта часть называется нерезидент-
         ной,  потому что она представлена только тогда, когда не выполня-
         ются программы пользователя, или когда программа пользователя пы-
         тается загрузить другую программу.


                                      - 3-4 -
                     Адрес    Использование памяти
                     А0000 .-----------------------------------------
         или вершина облас-|      COMMAND.COM      |      ^      ^
          ти пользователя  |-----------------------|      |      |
                           |                       |      |      |
                           | Нерезидентная область |Используется |
                           |       программы       | программами |
                           |                       |      |      |
                           |-----------------------|      |      |
                           | Резидентные программы |      V      |
                           |---------------------------------    |
                           |      COMMAND.COM      |          Область
                           |-----------------------|       пользователя
                           |   Драйверы устройств  |        (максимум
                           |-----------------------|         640 кбайт)
                           |      Буферы MS-DOS    |             |
             10000 - 14000 |-----------------------|             |
                           |                       |             |
                           |      Ядро MS-DOS      |             |
                           |                       |             |
             08000 - 0A000 |-----------------------|             |
                           |     Интерфейс BIOS    |             |
                     00040 |-----------------------|             |
                           |   Векторы прерываний  |             V
                     00000  -----------------------------------------

               Рис.3-2. Использование памяти пользователя MS/PC-DOS

         Нерезидентная часть  обрабатывает внутренние команды MS-DOS (DIR,
         COPY,  SET и др.) и содержит загрузчик программ.  Он используется
         для  загрузки  программ либо при обращении к COMMAND.COM (в ответ
         на внешние команды) или по запросу программы пользователя.  Позд-
         нее в этой главе будет показано, как одна программа может исполь-
         зовать эту возможность для загрузки других программ или  перекры-
         тия программ.
             Раздел Рис.3-2,  помеченный как "Резидентные программы",  со-
         держит резидентные программы,  завершаемые и оставляемые в памяти
         (TSR),  такие как, например, программа "Borland's Sidekick". Раз-
         мещение памяти,  показанное на Рис.3-2, применяется для TSR, заг-
         ружаемых из файла AUTOEXEC.BAT, или непосредственно при инициали-
         зации системы. В главе 4 программы TSR рассматриваются более под-
         робно.
             Раздел "Драйверы устройств" относится к устанавливаемым драй-
         верам устройств,  т.е. к тем драйверам, которые указываются с по-
         мощью команды DEVICE = в файле CONFIG.SYS.  Устанавливаемые драй-
         веры устройств являются предметом рассмотрения главы  6. Драйверы
         устройств, назначаемые по умолчанию и применяемые в системе, при-
         ведены в разделе "Интерфейс BIOS",  где они используются во время
         загрузки или инициализации системы MS-DOS.
             "Ядро MS-DOS" - это раздел MS-DOS,  который обрабатывает раз-
         личные  функции  MS-DOS,  такие, например, как функция прерывания
         21h. Этот раздел является "мостом" между программами пользователя
         или COMMAND.COM и различными драйверами устройств,  а также аппа-
         ратными средствами.
             Раздел "Векторы прерываний" содержит  описание  256  векторов
         прерываний системы.
             Оставшаяся область - это "Нерезидентная  область   программы"

                                      - 3-5 -
         (TPA). (Название TPA восходит ко  временам  операционной  системы
         CP/M  -  прародительнице MS-DOS).  Эта область,  куда загружаются
         программы пользователя, и которой мы и будем заниматься далее.
             В некотором  смысле Рис.3-2 не совсем точно отражает действи-
         тельную ситуацию.  Не все элементы, показанные на нем, имеют свой
         собственный блок памяти,и, наоборот, имеются элементы, которые не
         показаны  на Рис.3-2,  но имеют свои отдельные блоки памяти. Рас-
         смотрим сначала более  подробно,  каким методом пользуется MS-DOS
         для организации своих собственных областей TPA.

                               Цепочки памяти MS-DOS

             Управление памятью MS-DOS начинается  при  загрузке  MS-DOS.
         Все блоки памяти MS-DOS либо свободны,  либо распределены, начи-
         ная с  блока управления памятью (MCB - memory control block). Эти
         блоки управления,  показанные на Рис.3-3,  идентифицируют  тип  и
         размер  блока  памяти и программу (или процесс),  которая владеет
         им.
             Два типа блоков управления памятью являются цепочками блоков,
         тип  которого  есть 4Dh,  и конечный блок цепочки - тип 5Ah.  Тип
         блока хранится в первом байте блока MCB.
             Следующие два  байта  в  блоке  MCB являются словом,  которое
         идентифицирует владельца блока памяти.  Значение нуль  указывает,
         что блок нераспределен или свободен.  Если поле владельца ненуле-
         вое, то это значит,  что блок  распределен.  Это  слово  содержит
         идентификатор  владельца процесса (PID - process identifier). PID
         для процесса пользователя получается от адреса  сегмента, взятого
         из  сегмента программного префикса (PSP - program segment prefix)
         данного процесса.
             Четвертый и пятый байты в MCB являются словом, которое содер-
Предыдущая страница Следующая страница
1 ... 27 28 29 30 31 32 33  34 35 36 37 38 39 40 ... 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама