Методические указания к лабораторной работе №2 по курсу "Операционные системы" Волгоград 2005 удк 681. 31



страница1/5
Дата07.08.2013
Размер0.6 Mb.
ТипМетодические указания
  1   2   3   4   5
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА ЭВМ И СИСТЕМ


Подсистема управления процессами MS-DOS
Методические указания к лабораторной работе № 2

по курсу "Операционные системы"

Волгоград 2005

УДК 681.31


Подсистема управления процессами MS-DOS: Методические указания к лабораторной работе № 2 по курсу "Операционные системы" /Cост. Деревенсков С. О., Стрельников О. И.; Волгоград. гос. техн. ун-т. – Волгоград, 2005. – 25 с.


Содержатся сведения, необходимые для изучения студентами подсистем управления процессами и оперативной памятью ОС MS DOS и освоения основных приемов программирования операций управления памятью и процессами, проектирования резидентных программ в MS DOS. Приведены варианты заданий к лабораторным работам.

Предназначены для студентов, обучающихся по направлению 5528 "Информатика и вычислительная техника" и специальности 2201 "Вычислительные машины, комплексы,системы и сети" всех форм обучения.


Табл. 10. Библиогр. 3 назв.

Рецензент Игнатьев А.Н.

Печатается по решению редакционно-издательского совета Волгоградского государственного технического университета
ISBN


© Деревенсков С. О., 2005

© Стрельников О. И., 2005

© Волгоградский государственный технический университет, 2005

Л А Б О Р А Т О Р Н А Я Р А Б О Т А N 2
Подсистема управления процессами MS-DOS
Цель работы - изучение подсистем управления памятью и процессами ОС MS DOS, структуры и основных приемов программирования резидентных программ в ОС MS DOS.
1. Основные сведения
Управление оперативной памятью в ОС MS DOS.

Архитектура ПК IBM PC AT предусматривает наличие оперативной памяти четырех типов:

1) Стандартная (conventional) память.

В процессоре i8086 максимальное доступное адресное пространство составляет 1М, причем после сброса процессор стартует с адреса FFFF0h. В связи с этим, разработчики PC XT и MS DOS приняли решение разместить в адресном пространстве 00000-A0000h ( 640К ) область ОЗУ для хранения системных и прикладных программ и данных. Эта область получила название стандартная память.
Таким образом, стандартная память является естественной для MS DOS областью ОЗУ и, вообще говоря, для ядра DOS не существует какой-либо другой области ОЗУ кроме стандартной памяти.


2) Верхняя (upper) память.

Верхней памятью называют адресное пространство 640К - 1М. В архитектуре РС ХТ и РС АТ стандартно эта область предназначена для размещения ПЗУ BIOS, видеобуфера, ОЗУ адаптеров и не содержит ОЗУ для размещения данных или программ.

3) Расширенная (extended) память.

Процессоры i80386 и старше имеют адресное пространство 4Г.

Эти процессоры используют два режима работы:

- реальный (быстрый i8086, объем адресного пространства 1М);

- защищенный (истинный i80386 и старше, объем адресного пространства 4Г).

Расширенной памятью называют область ОЗУ свыше 1М. Все возможности новых процессоров по управлению памятью могут быть полностью использованы только в защищенном режиме, что и делают современные мультизадачные ОС. MS DOS продолжает работать в реальном режиме и, тем самым, не в состоянии управлять расширенной памятью.

Тем не менее, появление расширенной памяти все же способствовало более эффективному использованию оперативной памяти прикладными программами, работающими под управлением MS DOS. Это стало возможным благодаря внешним драйверам – менеджерам памяти (см. далее).

4) Дополнительная (expanded) память.

Дополнительная память физически реализовывалась в виде отдельных плат адаптеров дополнительной памяти. При этом дополнительная память находится вне адресного пространства процессора, а доступ к ней осуществляется через механизм обмена страниц,

для чего в верхней памяти выделяется специальная область - страничный фрейм (обычно один сегмент на четыре страницы по 16К). Страничный фрейм находится в адресном пространстве процессора, что позволяет получать доступ к страницам. За соответствие между между текущими страницами во фрейме и страницами дополнительной памяти отвечают специальные регистры отображения (mapping registers). Эти регистры содержат специальные индексы, соответствующие отображаемым страницам. Формат этих регистров не документирован и обычно прикладная программа не имеет к ним доступа. За управление дополнительной памятью отвечает внешний драйвер (см. далее).

После появления расширенной памяти необходимость в дополнительной памяти отпала и в PC AT ее физически не существует. Однако, программы продолжают активно использовать дополнительную память. Для этого используются специальные драйверы, переводящие процессор в защищенный режим и эмулирующие дополнительную память в расширенной.

Управление стандартной памятью.

Подсистема управления памятью MS DOS распределяет стандартную память непрерывными фрагментами (блоками), каждому из которых предшествует специальная структура данных - блок управления памятью (МСВ). Формат МСВ приведен в таблице 1. Каждый раз при создании нового процесса, система управления памятью MS DOS выделяет для него два блока памяти - один для копии переменных окружения ДОС (MS DOS Environment), второй – собственно для программного модуля. Затем в память помещается следующая информация:

- МСВ для блока памяти копии окружения DOS;

- блок памяти копии окружения DOS;

- МСВ программного блока памяти;

- префикс программного сегмента PSP;

- программный модуль.

Под программный модуль com-программы всегда выделяется блок максимально возможного размера. Размер блока под ехе-программу определяется исходя из соответствующих полей заголовка exe-файла.

Блок окружения DOS состоит из ASCIIZ-строк, каждая из которых содержит текущие значения переменных среды (например: COMSPEC = C:\command.com). Список переменных также заканчивается двоичным нулем. Затем следует слово, содержащее количество дополнительных строк окружения (обычно 0001h), после которого в копии окружения обычно размещается ASCIIZ-строка, содержащая полный путь к файлу программы. Именно этой строкой пользуются многие программы для определения пути своего запуска, а также программы-просмотрщики оперативной памяти для определения имени программы, которой принадлежит блок памяти.

Префикс программного сегмента (PSP) содержит необходимую для программы системную информацию. В PSP со смещением 2Ch размещается сегментный адрес МСВ блока копии окружения. После загрузки com-программы регистры CS, DS, SS, ES указывают на начало PSP, после загрузки еxe-программы на начало PSP указывают регистры ES и DS.

Подробнее форматы исполнимых файлов, окружение DOS и PSP будут рассмотрены далее.

Прикладная программа имеет возможность запросить дополнительные блоки памяти для своих данных. Таким способом отводится память для динамических структур данных.

После завершения процесса MS DOS освобождает всю выделенную для него память (кроме случая резидентных программ).

Во всех случаях минимальной порцией распределения памяти является параграф (1П = 16 байт), поэтому начальный адрес и размер каждого блока памяти кратны 16.

Отслеживание текущего состояния памяти осуществляется ОС с помощью односвязного, упорядоченного по возрастанию адреса блоков, списка. Доступ к голове этого списка можно получить с помощью функции 52h прерывания DOS, которая возвращает в ES:BX указатель на начало недокументированной cтруктуры данных MS DOS - списка списков DOS. Указатель на селектор первого блока в списке МСВ после вызова данной функции располагается по адресу ES:[BX-2].

МСВ не содержит в явном виде указателя на следующий блок, но последний легко может быть получен суммированием указателя текущего блока и размера блока, с учетом заголовка.
Таблица 1

Формат блока управления памятью

┌─────────┬───────┬───────────────────────────────────────────┐

Смещение,│Размер,│ О п и с а н и е │

байт │ байт │ │

├─────────┼───────┼───────────────────────────────────────────┤

+ 00h │ 1 │маркер блока (М - промежуточный блок в спис│

│ │ │ке, Z - последний блок, др. значение - спи-│

│ │ │сок МСВ разрушен) │

+ 01h │ 2 │cегментный адрес владельца блока (0 - блок │

│ │ │свободен) │

+ 03h │ 2 │размер блока в параграфах (без МСВ) │

+ 05h │ 11 │резерв │

└─────────┴───────┴───────────────────────────────────────────┘
Через соответствующие функции прерывания 21h MS DOS позволяет процессу запрашивать и освобождать блоки памяти, изменять их размер, а также менять стратегию поиска свободных блоков. Описание этих функций приведено в таблице 2. Функции возвращают стандартные коды ошибок DOS (см. лабораторную работу N 1).

MS DOS поддерживает три основные стратегии поиска свободных блоков:

- "первый подходящий" - выделяется первый из найденных подходящих по размеру свободных блоков (стратегия по умолчанию);

- "наиболее подходящий" - выделяется наиболее подходящий по размеру свободный блок;

- "последний подходящий" - выделяется последний из найденных подходящих по размеру свободных блоков.

DOS просматривает список блоков памяти от начала до конца. При просмотре производится слияние соседних свободных блоков, отбор кандидата по всем трем стратегиям распределения и включение в список, если необходимо, свободных блоков, описывающих область ОЗУ ранее не выделявшуюся ни одному из процессов. По окончании просмотра анализируется текущая стратегия и осуществляется окончательный выбор одного из кандидатов. После того, как оптимальный свободный блок отобран, его размер еще раз со-

поставляется с размером запрашиваемого блока: если размеры совпадают, блок помечается как занятый, если размер отобранного блока больше (на N параграфов), то от него предварительно отрезается свободный блок (N-1 параграф).

При использовании верхней памяти число стратегий увеличивается до девяти (см. далее).

Управление верхней памятью.

Начиная с версии MS DOS 5.0 имеется возможность использовать для выделения блоков памяти DOS адресное пространство верхней памяти. Для этого необходимо наличие драйвера - менеджера памяти, позволяющего отображать адресное пространство верхней памяти в расширенную память. К числу подобных драйверов относятся emm386.exe и qemm386.sys. Эти драйверы должны быть загружены через config.sys. Перед загрузкой драйвера emm386.exe следует загрузить драйвер himem.sys. Перед запуском программ, использующих верхнюю память, необходимо убедиться, что один из названных драйверов указан в config.sys. Кроме того, в config.sys должна находиться строка DOS = UMB.

Перед тем, как использовать блоки верхней памяти, необходимо убедиться в доступности верхней памяти и осуществить ее "привязку" к стандартной памяти. Эти действия выполняются при помощи функции DOS 5803h (см. табл. 2).

После этого действия по управлению верхней памятью аналогичны действиям по управлению стандартной памятью, за исключением стратегии поиска. При распределении верхней памяти используются три модификации основных стратегий (см. табл. 2):

- поиск по основным стратегиям сначала в стандартной памяти, затем - в верхней;

- поиск по основным стратегиям только в верхней памяти;

- поиск по основным стратегиям сначала в верхней памяти, затем - в стандартной.

Таблица 2

Функции DOS (INT 21h) управления стандартной и верхней памятью

┌──────────┬─────────────────────────────┬────────────────────┐

Функция │ В х о д │ В ы х о д │

├──────────┼─────────────────────────────┼────────────────────┤

Установить│AX = 5801h │CF = 0 - успешное │

стратегию │BX = код стратегии │ выполнение │

│ │(00h - "первый подходящий", │CF = 1 - AX = код │

│ │ сначала стандартная, затем -│ ошибки│

│ │ верхняя память (если есть); │ │

│ │ 01h - "наиболее подходящий",│ │

│ │ сначала стандартная, затем -│ │

│ │ верхняя память (если есть); │ │

│ │ 02h -"последний подходящий",│ │

│ │ сначала стандартная, затем -│ │

│ │ верхняя память (если есть); │ │

│ │ 40h - "первый подходящий", │ │

│ │ только верхняя память; │ │

│ │ 41h - "наиболее подходящий",│ │

│ │ только верхняя память; │ │

│ │ 42h -"последний подходящий",│ │

│ │ только верхняя память; │ │

│ │ 80h - "первый подходящий", │ │

│ │ сначала верхняя, затем - │ │

│ │ стандартная память; │ │

│ │ 81h - "наиболее подходящий",│ │

│ │ сначала верхняя, затем - │ │

│ │ стандартная память; │ │

│ │ 82h -"последний подходящий",│ │

│ │ сначала верхняя, затем - │ │

│ │ стандартная память; │ │

├──────────┼─────────────────────────────┼────────────────────┤

Получить │AX = 5800h │CF = 0 │

стратегию │ │BX = код стратегии │

├──────────┼─────────────────────────────┼────────────────────┤

Установить│AX = 5803h │CF = 0 - успешное │

/отменить │BX = 1 -установить "привязку"│ выполнение │

"привязку"│BX = 0 - отменить "привязку"│CF = 1 - AX = код │

верхней │ │ ошибки│

памяти │ │ │

├──────────┼─────────────────────────────┼────────────────────┤

Определить│AX = 5802h │CF = 0 │

состояние │ │AL = 1 - связь есть │

"привязки"│ │AL = 0 - связи нет │

├──────────┼─────────────────────────────┼────────────────────┤

Выделить │AH = 48h │СF = 0 - │

блок │BX = размер блока в парагра- │AX = сегментный │

│ │ фах │ адрес блока │

│ │(BX = 0FFFFh для определения │CF = 1 - │

│ │максимального свободного │AX = код ошибки │

│ │блока) │BX = макс. возможный│

│ │ │ размер блока │

├──────────┼─────────────────────────────┼────────────────────┤

Освободить│AH = 49h │CF = 0 - успешное │

блок │ES = сегментный адрес блока │ выполнение │

│ │ │CF = 1 - AX = код │

│ │ │ ошибки│

├──────────┼─────────────────────────────┼────────────────────┤

Изменить │AH = 4Ah │CF = 0 - успешное │

размер │ES = сегментный адрес блока │ выполнение │

блока │BX = новый размер в парагра- │CF = 1 - │

│ │ фах │AX = код ошибки │

│ │ │BX = макс. возможный│

│ │ │ размер блока │

└──────────┴─────────────────────────────┴────────────────────┘

  1   2   3   4   5

Похожие:

Методические указания к лабораторной работе №2 по курсу \"Операционные системы\" Волгоград 2005 удк 681. 31 iconМетодические указания к лабораторной работе №1 по курсу "Операционные системы" Волгоград 2005 удк 681. 31
Управление вводом выводом и дисковая подсистема ms-dos: Методические указания к лабораторной работе №1 по курсу "Операционные системы"...
Методические указания к лабораторной работе №2 по курсу \"Операционные системы\" Волгоград 2005 удк 681. 31 iconМетодические указания к лабораторной работе №3 по курсу "Операционные системы" Волгоград 2005
Архитектура приложения Win32: Методические указания к лабораторной работе №3 по курсу "Операционные системы" /Cост. Деревенсков С....
Методические указания к лабораторной работе №2 по курсу \"Операционные системы\" Волгоград 2005 удк 681. 31 iconМетодические указания к лабораторной работе по курсу
Параметрическая оптимизация радиоэлектронных схем: методические указания к лабораторной работе по курсу Компьютерный анализ электронных...
Методические указания к лабораторной работе №2 по курсу \"Операционные системы\" Волгоград 2005 удк 681. 31 iconМетодические указания к лабораторной работе по курсу
Расчет радиоэлектронных схем методом узловых потенциалов: Методические указания к лабораторной работе по курсу "Основы компьютерного...
Методические указания к лабораторной работе №2 по курсу \"Операционные системы\" Волгоград 2005 удк 681. 31 iconМетодические указания к лабораторной работе по курсу «Информатика»
Методические указания к лабораторной работе по информатике знакомят с назначением и функцией программы оболочки
Методические указания к лабораторной работе №2 по курсу \"Операционные системы\" Волгоград 2005 удк 681. 31 iconМетодические указания к лабораторной работе Рязань 2003 удк 57(021)
Изучение процесса радиоактивного распада: Методические указания к лабораторной работе /Рязан гос радиотехн акад.; Сост.: А. П. Ефремов,...
Методические указания к лабораторной работе №2 по курсу \"Операционные системы\" Волгоград 2005 удк 681. 31 iconМетодические указания к лабораторной работе Рязань 2004 удк 621. 396. 21
Спектральный анализ сигналов: Методические указания к лабораторной работе / В. В. Езерский, А. В. Егоров; Рязан гос радиотехн акад....
Методические указания к лабораторной работе №2 по курсу \"Операционные системы\" Волгоград 2005 удк 681. 31 iconМетодические указания к лабораторной работе Рязань 2006 удк 621. 384. 83
Изучение принципов работы циклоидального масс-спектрометра: Методические указания к лабораторной работе /Рязан гос радиотехн ун т.;...
Методические указания к лабораторной работе №2 по курсу \"Операционные системы\" Волгоград 2005 удк 681. 31 iconИзмерение гидростатического давления с помощью жидкостных и механических приборов Методические указания к лабораторной работе №1 Самара 2007 удк 532. 11.(0765)
Методические указания предназначены для студентов спец. 130501, 130503, 130504, 130602, 130603, 140101, 151001, 151002, 151003, 150204,...
Методические указания к лабораторной работе №2 по курсу \"Операционные системы\" Волгоград 2005 удк 681. 31 iconМетодические указания к лабораторной работе по дисциплине
Операции с таблицами баз данных в среде Delphi: методические указания к лабораторной работе по дисциплине "Информационное обеспечение...
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org