Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 20
Текст из файла (страница 20)
Поэтому распределение памяти в ней построено по схеме простого непрерывного распределения. Система поддерживаетмеханизм распределения памяти с перекрытием (оверлейные структуры).Как известно, в IBM PC использовался 16-разрядный микропроцессор i8088,который за счет введения сегментного способа адресации позволял указывать12Версий однопрограммпых дисковых операционных систем (Disks Operating System, DOS) для персональных компьютеров было много. Одних только MS DOS (систем от Microsoft) более 10.
Однаконесмотря на существенные различия все их чаще всего именуют одинаково — MS DOS.TSR (Terminate and Stay Resident) - резидентная в памяти программа, которая благодаря изменениям в таблице векторов прерываний позволяет перехватывать прерывания и в случае обращения Кней выполнять необходимые действия. Подробно об этом можно прочесть, например, в [3, 23, 24,35J.CIростовнепрерывноераспределениеираспределениесперекрытием/Л»адрес ячейки памяти в пространстве объемом до 1 Мбайт. В последующих персональных компьютерах (IBM PC AT, AT386 и др.) было принято решение поддерживать совместимость с первыми, поэтому при работе в DOS прежде всегорассматривают первый мегабайт.
Вся эта память разделялась на несколько областей, что иллюстрирует рис. 3.2. На этом рисунке показано, что памяти может быть и больше, чем 1 Мбайт, но более подробное рассмотрение этого вопроса мы здесь опустим, отослав желающих изучить данную тему глубжек монографии [2].Если не вдаваться в детали, можно сказать, что в состав MS DOS входят следующие основные компоненты.О Подсистема BIOS (Base Input-Output System — базовая подсистема ввода-вывода), включающая в себя помимо программы POST (Power On Self Test — самотестирование при включении компьютера)' программные модули обработкипрерываний, с помощью которых можно управлять основными контроллерамина материнской плате компьютера и устройствами ввода-вывода.
Эти модуличасто называют обработчиками прерываний. По своей функциональной сутиони представляют собой драйверы. BIOS располагается в постоянном запоминающем устройстве компьютера. В конечном итоге почти все остальные модули MS DOS обращаются к BIOS. Если и не напрямую, то через модули болеевысокого уровня иерархии.а Модуль расширения BIOS — файл I0.SYS (в других DOS-системах он можетназываться иначе, например _BI0.COM).• Основной, или базовый, модуль обработки прерываний DOS — файл MSDOS.SYS.Именно этот модуль в основном реализует работу с файловой системой.О Командный процессор (интерпретатор команд) — файл C0MMAND.COM.• Утилиты и драйверы, расширяющие возможности системы.• Программа загрузки MS DOS — загрузочная запись (Boot Record, BR), расположенная на дискете или на жестком диске (подробнее о загрузочной записи ио других загрузчиках см.
главу 6).Вся память в соответствии с архитектурой IBM PC условно может быть разбитана следующие три части.• В самых младших адресах памяти (первые 1024 ячейки) размещается таблицавекторов прерывания (см. раздел «Система прерываний 32-разрядных микропроцессоров i80x86» в главе 4). Это связано с аппаратной реализацией процессора i8088. В последующих процессорах (начиная с i80286) адрес таблицы прерываний определяется через содержимое соответствующего регистра, но дляобеспечения полной совместимости с первым процессором при включении илиаппаратном сбросе в этот регистр заносятся нули. При желании, однако, в случае использования современных микропроцессоров i80x86 вектора прерываний можно размещать и в других областях.После выполнения программы POST, входящей в состав ROM BIOS, опрашиваются устройства,которые могут содержать программы для загрузки операционной системы.800000-003FF00400-005FFГлава 3.
Управление памятью в операционных системах1 КбайтТаблица векторов прерываний512 байтГлобальные переменные BIOS;глобальные переменные DOS00600-ОАООО35-60 КбайтВ ранних версиях здесьрасполагались глобальныепеременные интерпретатораБейсикМодуль Ю. SYS;Модуль MSDOS. SYS:- обслуживающие функции;- буферы, рабочиеи управляющие области;- устанавливаемые драйверы;Резидентная частьCOMMAND.
COM:- обработка программныхпрерываний;- системная программазагрузки;- программа загрузки транзитнойчасти COMMAND. COMРазмер этой области зависитот версии MSDOS и, главное,от конфигурационного файлаCONFJG. SYSОбласть памяти длявыполнения программпользователя и утилитMS DOS. В эту областьпопадают программытипа *.СОМ и *.ЕХЕОбъем этой областиочень зависит от объема,занимаемого ядром ОС.Программа может перекрыватьтранзитную областьCOMMAND. COMСтек «растет» снизу вверх580 КбайтОбласть расположения стекаисполняющейся программы18 КбайтA0000-C7FFF160 КбайтС8000-Е000096 КбайтТранзитная часть командногопроцессора COMMAND. COMВидеопамять. Область и размериспользуемого видеобуферазависят от текущего режимаБолее 100000При работе в текстовомрежиме область памятиA0000-B0000 свободнаи может быть использованав программеЗарезервированодля расширения BIOSF0000-FFFF64 КбайтСобственно командныйинтерпретаторОбласть ROM BIOS(System BIOS)Обычно объем этой областиравен 32 Кбайт, но можетдостигать и 128 Кбайт, занимаямладшие адресаHigh Memory Area.При наличии драйвера HIMEM.
SYSздесь можно расположитьосновные системные файлыMS DOS, освобождая тем самымобласть основной памятив первом мегабайтеоватьсяспециальныхдрайверов. Используютсяспецификации XMS и EMSМ о ж е т ИСПОЛЬЗп р и н а л и ч и иРис. 3.2. Распределение оперативной памяти в MS DOSQ Вторая часть памяти отводится для программных модулей самой системыMS DOS и для программ пользователя. Эту область памяти мы рассмотрим чутьПростое непрерывное распределение и распределение с перекрытиемИ1позже, здесь только заметим, что она называется основной, или стандартной,памятью (conventional memory).• Наконец, третья часть адресного пространства отведена для постоянных запоминающих устройств и функционирования некоторых устройств ввода-вывода. Эта область памяти получила название UMA (Upper Memory Area — область памяти, адрес которой выше основной).В младших адресах основной памяти размещается то, что можно условно назватьядром этой операционной системы — системные переменные, основные программныемодули, блоки данных для буферизации операций ввода-вывода.
Для управленияустройствами, драйверы которых не входят в базовую подсистему ввода-вывода,загружаются так называемые загружаемые, или устанавливаемые, драйверы.Перечень устанавливаемых драйверов определяется специальным конфигурационным файлом CONFIG.SYS. После загрузки расширения BIOS — файла I0.SYS —последний (загрузив модуль MSDOS.SYS) считывает файл CONFIG.SYS и уже в соответствии с ним подгружает в память необходимые драйверы. Кстати, в конфигурационном файле CON FIG.SYS могут иметься операторы, указывающие на количествобуферов, отводимых для ускорения операций ввода-вывода, и на количество файлов,которые могут обрабатываться (для работы с файлами необходимо зарезервироватьместо в памяти для хранения управляющих структур, с помощью которыхвыполняются операции с записями файла). В случае использования микропроцессоровi80x86 и наличия в памяти драйвера HIMEM.SYS модули I0.SYS и MSDOS.SYS могут бытьразмещены за пределами первого мегабайта в области, которая получила названиеНМЛ (High Memory Area — область памяти с большими адресами).Память с адресами, большими чем lOFFFFh, может быть использована в DOSпрограммах при выполнении их на микропроцессорах, имеющих такую возможность(например, микропроцессор i80286 имел 24-разрядную шину адреса, а i80386 —уже 32-разрядную).
Но для этого с помощью специальных драйверов необходимопереключать процессор в другой режим работы, при котором он сможетиспользовать адреса выше lOFFFFh. Широкое распространение получили двеосновные спецификации: XMS (Extended Memory Specification) и EMS (ExpandedMemory Specification). Последние годы система MS DOS практически пересталаприменяться. Теперь ее используют в основном для запуска некоторых утилит,с помощью которых подготавливают дисковые устройства, или для установкидругих операционных систем.