Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SysSoft.doc
Скачиваний:
520
Добавлен:
16.03.2016
Размер:
4.36 Mб
Скачать

Распределение оперативной памяти в современных ос для пк

Первый вопрос, который хочется задать, – это какие ОС следует относить к со­временным, а какие – нет? Стоит ли в наше время изучать такую «несовремен­ную» ОС, как MS-DOS?1С нашей точки зрения, прежде всего к современным ОС следует отнести те, что используют аппаратные возможности микропроцес­соров, специально заложенные для организации высокопроизводительных и надёжных вычислений. Однако эти ОС, как правило, очень сложны и громоздки. Они занимают большое дисковое пространство, требуют и большого объёма опе­ративной памяти. Поэтому для решения некоторого класса задач вполне подхо­дят и системы, использующие микропроцессоры в так называемом реальном ре­жиме работы (см. об этом в следующей главе).

В последние годы можно встретить студентов, обучающихся специальностям, непосредственно связанным с вычислительной техникой, которые совсем не зна­ют DOS-систем. Скорее всего, это является доказательством того, что такие ОС уже не являются современными. Однако достаточно часто для обслуживания компьютера необходимо выполнить простейшие программы – утилиты. Эти программы были созданы для DOS, они не требуют больших ресурсов, для их функционирования достаточно запуститьMS-DOSили аналогичную простую ОС. Однако без выполнения этих программ невозможно порой установить или за­грузить иные ОС (хоть и современные, но очень сложные и громоздкие). Поэто­му мы считаем правильным хотя бы первичное, пусть не очень глубокое озна­комление сMS-DOS.

Распределение оперативной памяти вMs-dos

Как известно, MS-DOS– это однопрограммная ОС. В ней, конечно, можно орга­низовать запуск резидентных или TSR-задач1, но в целом она предназначена для выполнения только одного вычислительного процесса. Поэтому распределение памяти в ней построено по самой простой схеме, которую мы уже рассматривали в разделе «Простое непрерывное распределение и распределение с перекрытием (оверлейные структуры)». Здесь мы лишь уточним некоторые характерные детали.

В IBMPCиспользовался 16-разрядный микропроцессорi8088, который за счёт введения сегментного способа адресации позволял адресоваться к памяти объёмом до 1 Мбайт. В последующих ПК (IBMPCAT,AT386 и др.) было приня­то решение поддерживать совместимость с первыми, поэтому при работе сDOSпрежде всего рассматривают первый мегабайт. Вся эта память разделялась на не­сколько областей, что проиллюстрировано на рис. 2.10. На этом рисунке изобра­жено, что памяти может быть и больше, чем 1 Мбайт, но более подробное рас­смотрение этого вопроса мы здесь опустим, отослав желающих изучить данную тему глубже к монографии [9].

Если не вдаваться в детали, можно сказать, что в состав MS-DOSвходят следую­щие основные компоненты:

 Базовая подсистема ввода/вывода – BIOS(baseinput-outputsystem), вклю­чающая в себя помимо программы тестирования ПК (POST2) обработчики прерываний (драйверы), расположенные в постоянном запоминающем уст­ройстве. В конечном итоге, почти все остальные модулиMS-DOSобращают­ся кBIOS. Если и не напрямую, то через модули более высокого уровня иерархии.

 Модуль расширения BIOS– файлIO.SYS(в других DOS-системах он может называться иначе, например,IBMBIO.COM).

 Основной, базовый модуль обработки прерываний DOS– файлMSDOS.SYS. Именно этот модуль в основном реализует работу с файловой системой. (ВPC-DOSаналогичный по значению файл называетсяIBMDOS.COM).

 Командный процессор (интерпретатор команд) – файл COMMAND.COM.

 Утилиты и драйверы, расширяющие возможности системы.

 Программа загрузки MS-DOS– загрузочная запись (bootrecord), располо­женная на дискете (подробнее о ней и о других загрузчиках см. главу 4).

Рис. 2.10.Распределение оперативной памяти вMS-DOS

Вся память в соответствии с архитектурой IBMPCусловно может быть разбита на три части.

В самых младших адресах памяти (первые 1024 ячейки) размещается таблица векторов прерываний (см. раздел «Система прерываний 32-разрядных микропро­цессоров i80x86», глава 3). Это связано с аппаратной реализацией процессораi8088, на котором была реализована ПК. В последующих процессорах (начиная с i80286) адрес таблицы прерываний определяется через содержимое соответст­вующего регистра, но для обеспечения полной совместимости с первым процес­сором при включении или аппаратном сбросе в этот регистр заносятся нули. При желании, однако, в случае использования современных микропроцессоровi80x86 можно разместить векторы прерываний и в другой области.

Вторая часть памяти отводится для размещения программных модулей самой MS-DOSи для программ пользователя. Рассмотрим их размещение чуть ниже. Здесь, однако, заметим, что эта область памяти называетсяConventional Memory (основная, стандартная память).

Наконец, третья часть адресного пространства отведена для постоянных запо­минающих устройств и функционирования некоторых устройств ввода/вывода. Эта область памяти получила название UMA(uppermemoryareas– область верхней памяти).

В младших адресах основной памяти размещается то, что можно назвать ядром этой ОС – системные переменные, основные программные модули, блоки дан­ных для буферирования операций ввода/вывода. Для управления устройствами, драйверы которых не входят в базовую подсистему ввода/вывода, загружают­ся так называемые загружаемые(илиинсталлируемые)драйверы. Перечень инсталлируемых драйверов определяется специальным конфигурационным файломCONFIG.SYS. После загрузки расширенияBIOS– файлаIO.SYS– последний (за­грузив модульMSDOS.SYS) считывает файлCONFIG.SYSи уже в соответствии с ним подгружает в память необходимые драйверы. Кстати, в конфигурацион­ном файлеCONFIG.SYSмогут иметься и операторы, указывающие на количест­во буферов, отводимых для ускорения операций ввода/вывода, и на количество файлов, которые могут обрабатываться (для работы с файлами необходимо заре­зервировать место в памяти для хранения управляющих структур, с помощью которых выполняются операции с записями файла). В случае использования мик­ропроцессоров i80x86 и наличия в памяти драйвераHIMEM.SYSмодулиIO.SYSиMSDOS.SYSмогут быть размещены за пределами первого мегабайта в области, которая получила названиеHMA(highmemoryarea).

Память с адресами, большими, чем 10FFFFh, может быть использована в DOS-программах при выполнении их на микропроцессорах, имеющих такую возмож­ность. Так, например, микропроцессор i80286 имел 24-разрядную шину адреса, а i80386 – уже 32-разрядную шину адреса. Но для этого с помощью специаль­ных драйверов необходимо переключать процессор в другой режим работы, при котором он сможет использовать адреса выше 10FFFFh. Широкое распростране­ние получили две основные спецификации:XMS(eXtendedMemorySpecification) иEMS(ExpandedMemorySpecification). Поскольку основные утилиты, необходи­мые для обслуживания ПК, как правило, не используют эти спецификации, мы не будем здесь их рассматривать. Остальные программные модулиMS-DOS(в принципе, большинство из них является утилитами) оформлены как обычные исполняемые файлы. В основном они являются транзитными модулями, то есть загружаются в память только на время своей работы, хотя среди них имеются и TSR-программы.

Для того чтобы предоставить больше памяти программам пользователя, в MS-DOSприменено то же решение, что и во многих других простейших ОС – командный процессорCOMMAND.COMсделан состоящим из двух частей. Первая часть явля­ется резидентной, она размещается в области ядра. Вторая часть – транзитная; она размещается в области старших адресов раздела памяти, выделяемой для программ пользователя. И если программа пользователя перекрывает собой об­ласть, в которой была расположена транзитная часть командного процессора, то последний при необходимости восстанавливает в памяти свою транзитную часть, поскольку после выполнения программы она возвращает управление резидент­ной частиCOMMAND.COM.

Поскольку размер основной памяти (conventionalmemory) относительно неболь­шой, то очень часто системы программирования реализуют оверлейные структу­ры. Для этого вMS-DOSесть специальные вызовы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]