КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Введение. Лабораторный практикум
М о с к в а 2 0 1 2 Лабораторный практикум по курсу «Операционные системы» Составитель: доцент кафедры ИСТАС Иванов Н.А. Методические указания содержат основные сведения об оперативной памяти, особенностях организации оперативной памяти в различных операционных системах, программных средствах для получения информации об использовании оперативной памяти и для решения ряда задач, возникающих в многозадачных операционных системах при управлении памятью. Методические указания предназначены для студентов факультета ИСТАС по направлению подготовки 230100 «Информатика и вычислительная техника», изучающих дисциплину «Операционные системы».
«Архитектура памяти, используемая в операционной системе, — ключ к пониманию того, как система делает то, что она делает. Когда начинаешь работать с новой операционной системой, всегда возникает масса вопросов: «Как разделить данные между двумя приложениями?», «Где хранится та или иная информация?», «Как оптимизировать свою программу?». Список вопросов можно продолжить. Обычно знание того, как система управляет памятью, упрощает и ускоряет поиск ответов па эти вопросы.» Джеффри РИХТЕР «Windows для профессионалов: создание эффективных Win32 приложений с учетом специфики 64-разрядной версии Windows»
Управление оперативной памятью (ОП) является одной из важнейших задач любой операционной системы. Особую значимость вопросы управления памятью приобретают в многозадачных операционных системах. Для решения этой проблемы желательно иметь специальные средства, которые можно использовать для распределения памяти, для контроля её состояния и использования, для анализа эффективности использования памяти процессами, для повышения производительности вычислительной системы на основе оптимизации файла подкачки. Изучению программных средств, направленных на решение перечисленных выше задач, применяемых в различных операционных системах, посвящены три лабораторных работы.
Виды памяти в ОС MS-DOS. Команда MEM и ее ключи. Работа с картой памяти. Команды управления памятью.
В зависимости от модификации персонального компьютера и состава его периферийного оборудования, распределение адресного пространства MS-DOS может несколько различаться. Тем не менее, размещение основных компонентов системы довольно строго унифицировано. Типичная схема использования адресного пространства компьютера приведена на рис. 1.1. Значения адресов на этом рисунке даны в шестнадцатеричной системе счисления. Первые 640 Кбайт адресного пространства с адресами от 00000h до 9FFFF11 (и, соответственно, с сегментными адресами от 0000h до 9FFFh) отводятся под основную оперативную память, которую еще называют стандартной (conventional). Начальный килобайт оперативной памяти занят векторами прерываний, которые обеспечивают работу системы прерываний компьютера, и включает 256 векторов по 4 байта каждый. Вслед за векторами прерываний располагается так называемая область данных BIOS, которая занимает всего 256 байт, начиная с сегментного адреса 40h.
Рис. 1.1. Типичное распределение адресного пространства в MS-DOS.
Сама BIOS (от Basic In-Out System, базовая система ввода-вывода) является частью операционной системы, хранящейся в постоянном запоминающем устройстве. Это запоминающее устройство (ПЗУ BIOS) располагается на системной плате компьютера и является, таким образом, примером встроенного, или "зашитого" программного обеспечения. В функции BIOS входит тестирование компьютера при его включении, загрузка в оперативную память собственно операционной системы MS-DOS, хранящейся на магнитных дисках, а также управление штатной аппаратурой компьютера - клавиатурой, экраном, дисками и прочим. В области данных BIOS хранятся разнообразные данные, используемые программами BIOS в своей работе. Так, здесь размещаются: - входной буфер клавиатуры, куда поступают коды нажимаемых пользователем клавиш; - адреса видеоадаптера, а также последовательных и параллельных портов; - данные, характеризующие текущее состояние видеосистемы (форма курсора и его текущее положение на экране, видеорежим, используемая видеостраница и проч.); - ячейки для отсчета текущего времени и т.д.
Область данных BIOS заполняется информацией в процессе начальной загрузки компьютера, а затем динамически модифицируется системой по мере необходимости. Многие прикладные программы, особенно, написанные на языке ассемблера, обращаются к этой области с целью чтения или модификации содержащихся в них данных. В области памяти, начиная с адреса 500h, располагается собственно операционная система MS-DOS, которая обычно занимает несколько десятков Кбайт. Программы MS-DOS, как и другие системные составляющие (векторы прерываний, область данных BIOS) записываются в память автоматически в процессе начальной загрузки компьютера. Вся оставшаяся память до границы 640 Кбайт свободна для загрузки любых системных или прикладных программ. Как правило, в начале сеанса в память загружают резидентные программы (русификатор, антивирусные программы). При наличии резидентных программ объем свободной памяти уменьшается. Оставшиеся 384 Кбайт адресного пространства между границами 640 Кбайт и 1 Мбайт, называемые старшей, или верхней (upper) памятью, первоначально были предназначены для размещения постоянных запоминающих устройств (ПЗУ). Практически под ПЗУ занята только небольшая часть адресов, а остальные используются в других целях. Часть адресного пространства старшей памяти отводится для адресации к графическому и текстовому видеобуферам графического адаптера. Графический адаптер представляет собой отдельную микросхему или даже отдельную плату, в состав которой входит собственное запоминающее устройство (видеопамять). Это запоминающее устройство не имеет никакого отношения к оперативной памяти компьютера, однако, его схемы управления настроены на диапазоны адресов A0000h...AFFFFh и B8000h...BFFFFh, входящих в общее с памятью адресное пространство процессора. Поэтому любая программа может обратиться по этим адресам и, например, записать данные в видеобуфер, что приведет к появлению на экране некоторого изображения. Если видеосистема находится в текстовом режиме, а запись осуществляется по адресам текстового видеобуфера, на экране появятся изображения тех или иных символов (букв, цифр, различных знаков). Если же перевести видеосистему в графический режим, и записывать данные в графический видеобуфер, то на экране появятся отдельные точки или линии. Можно также прочитать текущее содержимое ячеек видеобуфера. В самом конце адресного пространства, в области адресов F0000h...FFFFFh, располагается ПЗУ BIOS - постоянное запоминающее устройство, о котором уже говорилось выше. Часть адресного пространства, начиная с адреса C0000h, отводится еще под одно ПЗУ - так называемое ПЗУ расширений BIOS для обслуживания графических адаптеров и дисков. В состав компьютера, наряду со стандартной памятью (640 Кбайт), входит еще расширенная (extended) память, максимальный объем которой может доходить до 4 Гбайт. Эта память располагается за пределами первого мегабайта адресного пространства и начинается с адреса 100000h. Реально на машине может быть установлен не полный объем расширенной памяти, а лишь несколько десятков Мбайт или даже меньше. Поскольку функционирование расширенной памяти подчиняется "спецификации расширенной памяти" (Extended Memory Specification, сокращенно XMS), то и саму память часто называют XMS-памятью. Доступ к расширенной памяти осуществляется в защищенном режиме, поэтому для MS-DOS, работающей только в реальном режиме, расширенная память недоступна. Однако в современные версии MS-DOS включается драйвер HIMEM.SYS, поддерживающий расширенную память, т.е. позволяющий ее использовать, хотя и ограниченным образом. Конкретно в расширенной памяти можно разместить электронные диски (с помощью драйвера RAMDRIVE.SYS) или дисковые кэш-буферы (с помощью драйвера SMARTDRV.SYS). Первые 64 Кбайт расширенной памяти, точнее, 64 Кбайт - 16 байт с адресами от l00000h до l0FFEFh, носят специальное название область старшей памяти (High MemoryArea, HMA). Эта область замечательна тем, что хотя она находится за пределами первого мегабайта, к ней можно обратиться в реальном режиме работы микропроцессора, если определить сегмент, начинающийся в самом конце мегабайтного адресного пространства, с сегментного адреса FFFFh, и разрешить использование адресной линии А20. Первые 16 байт этого сегмента заняты ПЗУ, область же со смещениями 0010h...FFFFh можно в принципе использовать под программы и данные. MS-DOS позволяет загружать в НМA (директивой файла CONFIG.SYS DOS=HIGH) значительную часть самой себя, в результате чего занятая системой область стандартной памяти существенно уменьшается. Старшую память обслуживает тот же драйвер HIMEM.SYS, поэтому загрузка DOS в HMA возможна, только если установлен драйвер HIMEM.SYS. Как видно из приведенного выше рисунка, часть адресного пространства верхней памяти, не занятая расширениями BIOS и видеобуферами, оказывается свободной. Эти свободные участки можно использовать для адресации к расширенной памяти (конечно, не ко всей, а лишь к той ее части, объем которой совпадает с общим объемом свободных адресов старшей памяти). Отображение расширенной памяти на свободные адреса старшей памяти выполняет драйвер EMM386.EXE, а сами участки старшей памяти, "заполненные" расширенной, называются блоками верхней памяти (Upper Memory Blocks, UMB). MS-DOS позволяет загружать в UMB устанавливаемые драйверы устройств, а также резидентные программы. Загрузка системных программ в UMB освобождает от них стандартную память, увеличивая ее транзитную область. Загрузка в UMB драйверов осуществляется директивой файла CONFIG.SYS DEVICEHIGH (вместо директивы DEVICE), а загрузка резидентных программ - командой MS-DOS LOADHIGH. На оптимально сконфигурированном компьютере системными компонентами заняты лишь около 20...25 Кбайт основной памяти, а вся остальная память в объеме около 620 Кбайт может использоваться для загрузки прикладных программ.
Для исследования оперативной памяти в состав MS-DOS включена программа MEM.EXE. Получить сведения об особенностях использования этой команды можно, запустив команду с ключом /f (рис 1.2).
Рис. 1.2. Сведения об особенностях использования команды mem.
Команда mem практически во всех случаях выводит на экран карту памяти (рис. 1.3).
Рис. 1.3. Пример карты памяти в MS-DOS
Порядок выполнения работы.
Распределение памяти статическими и динамическими разделами, знакомство с модель управления оперативной памятью. Изучение результатов выделения памяти по принципу «первый подходящий» и «наиболее подходящий», сравнение результатов и подготовка выводов.
Мультипрограммный режим предполагает одновременное нахождение в памяти нескольких задач. Самая простая схема распределения памяти между задачами сводится к разделению свободной памяти на несколько непрерывных разделов (partition) по числу задач. Каждый раздел характеризуется началом и длиной. Это разбиение может быть статическим (фиксированным) или динамическим. При статическом разбиении на этапе генерации ОС происходит разделение оперативной памяти на фиксированное число разделов, либо по мере необходимости это делает оператор системы. Пример статического разбиения представлен на рис. 2.1.
Рис. 2.1. Статическое распределение ОП
В каждом разделе в каждый момент времени может находиться одна программа. Поэтому к каждому разделу применимы все методы, применяемые в однопрограммных системах, в том числе организация оверлейных структур. При недостаточном объёме памяти для размещения заданного количества разделов применяется свопинг (swapping). При этом задача, которая ожидает окончания операции ввода/вывода, может быть выгружена из оперативной памяти во внешнюю, а на ее место может быть загружена задача с большим приоритетом или задача, готовая к выполнению и находящаяся в очереди. Свопинг предусматривает выгрузку задачи целиком, а не ее отдельной части (как и в оверлейных структурах). Недостатком такой организации распределения памяти является фрагментация - часть памяти раздела, порой значительная, не используется и её использование не представляется возможным. Снижение потерь ОП возможно путём формирование разделов под конкретную задачу, то есть использованием вместо статических динамических разделов. В этом случае специальный планировщик ведёт список адресов свободной ОП. При появлении новой задачи диспетчер памяти просматривает список адресов свободной памяти и размещает новую задачу одним из трёх методов: 1) в первый подходящий участок – в этом случае список участков упорядочивается по адресам, диспетчер памяти просматривает этот список и выделяет задаче раздел в той области памяти, которая первой подойдёт по объёму. В среднем необходимо просмотреть половину списка; 2) в самый подходящий участок – аналогичен предыдущему, но список участков упорядочивается по возрастанию их объема. Самый маленький фрагмент свободной оперативной памяти, в котором не удаётся разместить программу, попадает в начало списка и не будет использоваться. Такой метод, в целом, не эффективен; 3) в самый неподходящий участок – в этом случае список участков упорядочивается по убыванию объёма. Заполняется самый большой фрагмент оперативной памяти. Оставшаяся после размещения в нём программы часть ещё может быть использована в дальнейшем. Такой метод, как оказалось, является самым эффективным из трёх. Распределение динамическими разделами не исключает фрагментации. Причём при большом числе задач фрагментация довольно значительна. Для уменьшения фрагментации ОП используется уплотнение памяти или перемещение задач в начало или конец памяти с одновременной корректировкой списков свободных адресов. Недостаток уплотнения – потеря времени на уплотнение и приостановка вычислений на время уплотнения. Для исследований особенностей распределения памяти динамическими разделами рассмотрим программу «Моделирование работы ОП ЭВМ». Общий вид окна программы представлен на рис. 2.2. Рис. 2.2 Общий вид окна программы «Моделирование работы ОП ЭВМ»
В центре окна находится основная рабочая область программы «Окно команды» (рис 2.3): Рис. 2.3 Окно команды программы «Моделирование работы ОП ЭВМ»
При помощи переключателей выбирается одна из следующих команд: ADD - добавь память существующему процессу; NEW - создай новый процесс; DEL - удали процесс;
При выборе одной из команд активируются соответствующие ей поля ввода исходных данных, при вводе изменяется команда в окне текущей команды (рис 2.4).
Рис. 2.4 Работа в режиме «окно команды»
К трём командам указанным выше командам относится кнопка «Выполни». Когда произведён выбор нужной команды и введены значения, то эта кнопка отправляет команду на исполнение. Обработчик исполнения проверит введённые аргументы, проверит возможность выполнения запрашиваемой операции, если проверки пройдены, то выполнит операцию, если произошла ошибка, то программа скажет в появившемся сообщении, по какой причине команду выполнить нельзя и удержит эту команду. В виде отдельных кнопок реализованы следующие команды: FREE - объедини свободные участки памяти, находящиеся по соседству; CLEAN - удали из таблицы безполезные записи. Команды можно вводить только в ручном режиме. При вводе входных данных осуществляется смысловая проверка информации. Под окном команды находится окно выбора режима (рис. 2.5). Ручной режим позволяет вводить команду за командой, при необходимости записывая всю последовательность выполняемых команд в специальный файл.
Рис. 2.5. Окно выбора режима
Режим записи активируется при нажатии на кнопку «Запись». При этом откроется окно (рис 2.6), предлагающее сохранить набранную последовательность команд в файл специального формата.COMT. Рис. 2.6. Окно сохранения файла с выполненной последовательностью команд
Авторежим позволяет запускать ранее сохранённые.COMT скрипты на исполнение. Программа содержит две варианта авторежима – полностью автоматический и пошаговый. В полностью автоматическом режиме пользователь является просто наблюдателем. Программа открывает скрипт и последовательно выполняет команду за командой с определённой задержкой, которая регулируется через настройки(задержка нужна для быстрых процессоров, чтобы можно было проследить за выполнением скрипта). При пошаговом исполнении пользователь получает возможность решать, когда исполнить следующую команду. Также можно выполнить несколько команд пошагово, а затем переключиться на полностью автоматический режим. Прежде чем запускать.COMT скрипт пользователь должен загрузить его при помощи кнопки «Файл» (рис. 2.7):
Рис. 2.7. Подготовка к загрузке.COMT скрипта в режиме «Авторежим»
Пользователю будет предложено выбрать один из доступных программе файлов, хранящих.COMT скрипт (рис. 2.8):
Рис. 2.8. Окно выбора файла для загрузки.COMT скрипта
Если файл успешно загрузился и активировался пользователю будет выдано информационное сообщение, подобное представленному на рис. 2.9, а кнопка «Файл» окрасится в зеленый цвет (рис. 2.10).
Рис. 2.9. Информационное сообщение о результатах загрузки.COMT скрипта
Рис. 2.10. Вид окна «Режим» после успешной загрузки.COMT скрипта
После полной отработки.COMT скрипта программа переводится в ручной режим (рис 2.11): Рис. 2.11. Информационное сообщение о завершении работы в авторежиме
Не рекомендуется выходить из программы или останавливать её работу во время исполнения скрипта авторежима!!!
В левой части окна программы расположено окно «История команд» (рис 2.12). Рис. 2.12. Вид окна «История команд» (вариант).
Область окно поделена на три части. В середине окна расположена строка набираемой (ручной режим работы) или выполняющейся (авторежим) команды. Выше расположена область истории выполненных команд с указанием дополнительной информацией об их выполнении (данные о процессе, которому выделяется память, размер запроса, строка в таблице оперативной памяти, соответствующая выполненной операции). Стоит обратить внимание на конструкцию «*** SIZE:A+B ***», A – это запрашиваемый процессом размер участка памяти, B - разница между размером выделенного раздела ОП и величиной запроса на выделение памяти (рис. 2.13).
Рис. 2.13. Информация о выделении раздела памяти, размер которого превышает размер запроса
В нижней части области истории команд указан список команд, являющихся частью.COMT скрипта и которые планируются к выполнению.
В правой части основного окна программы отображается таблица оперативной памяти (ТОП), отражающая информацию о распределении памяти между процессами (рис. 2.14). Рис. 2.14. Таблица оперативной памяти. Вид «ТОП»
Таблица может быть представлена в одном из четырех видов, перечень которых приведен в нижней части области «Таблица» (рис. 2.14). Кнопка выбора, соответствующая текущему виду представления данных, окрашена в зеленый цвет. Основной вид представления данных – «таблица распределения оперативной памяти» (ТОП). В этом случае выводится информация о динамических разделах, на которые в момент отображения поделена оперативная память. Каждая строка таблицы описывает один из разделов. Кроме номера раздела и служебной информации, строка содержит четыре информационных поля: объем раздела, номер процесса, которому выделен раздел, указатель на следующий участок памяти, выделенный процессу, указатель на предыдущий участок памяти, выделенный процессу. Таким образом, вид «ТОП» отображает К двунаправленных связных списков, каждый из которых объединяет разделы, выделенные одному из К процессов, в общее адресное пространство процесса. Еще один список образуют свободные участки памяти, для которых значение в поле «номер процесса» равно 0. Вид представления данных «Команды» отображает перечень команд, в результате выполнения которых возникло текущее состояние карты памяти (рис. 2.15). Рис. 2.15. Таблица оперативной памяти. Вид «Команды»
Вид представления данных «Список процессов» отображает информацию об объемах памяти, выделенной каждому из процессов, и общий размер свободной памяти (рис. 2.16). Рис. 2.16. Таблица оперативной памяти. Вид «Список процессов»
Вид представления данных «Процесс» отображает информацию об участках памяти, выделенной выбранному процессу (рис. 2.17). Рис. 2.17. Таблица оперативной памяти. Вид «Процесс»
В середине верхней части основного окна программы отображается область «Карта памяти», отражающая информацию о распределении памяти в графической форме и описание условных обозначений, использующихся для описания карты (рис. 2.18).
Рис. 2.18. Область экрана «Карта памяти»
Информация, отображаемая на карте памяти, тесно связана с содержимым области «Таблица». Так, если область «Таблица» представлена в виде «ТОП», то при выборе какой-либо строки таблицы на карте памяти подсвечиваются все участки памяти, принадлежащие данному процессу. При этом красным цветом будет подсвечен только тот участок памяти, который описывается выбранной строкой, а остальные участки, принадлежащие тому же процессу выделяются розовым цветом (рис.2.19). Рис. 2.19. Отображение строки таблицы в режиме «ТОП» на карте памяти
Если таблица распределения оперативной памяти предствалена в виде «Список процессов», то при выборе строки таблицы все участки памяти выбранного процесса будут подсвечен красным цветом (рис. 2.20). Рис. 2.20. Отображение строки таблицы в режиме «Список процессов» на карте памяти
Еще одной областью основного окна программы является строка основное меню, содержащая три пункта: файл, сервис, справка. Пункт меню Файл содержит опции сохранения и загрузки таблицы ТОП, а также пункт завершения работы с программой (рис. 2.21). Для таблиц разработан специальный.TABL формат. В файлах данного типа хранится не только таблица ТОП, но и служебная информация. При подгрузке таблиц функция сохранения команд деактивируется.
Рис. 2.21. Пункт меню Файл и его опции
Пункт меню Сервис содержит две опции: Настройки и Сброс памяти (рис. 2.22). Рис. 2.22. Пункт меню Сервис и его опции
При выборе пункта Настройки на экран будет выведено окно настроек (рис 2.23), в котором можно поменять принцип поиска свободной памяти, принцип работы со списком свободных элементов и установить величину задержки для автоматического режима. Нажатие кнопки «Выход» применяет настройки.
Рис. 2.23. Окно пункта Настройки
При выборе пункта Сброс памяти происходит полная очистка памяти и восстанавливается начальное состояние программы. Сброс памяти требуется, когда необходимо запустить новый скрипт или загрузить другую таблицу.
Порядок выполнения работы.
Распределение памяти в Windows 9x и в Windows NT. Монитор ресурсов Windows 7. Изучение пунктов и вкладок, связанных с памятью. Использование монитора ресурсов Windows 7 для наблюдения за распределением памяти. Увеличение объема файла подкачки (виртуальной памяти). Проверка памяти средствами Windows.
Дата добавления: 2015-04-29; Просмотров: 1149; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |