
Исследование процессов, алгоритмов выделения памяти и распределения ресурсов.
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования «Московский государственный университет приборостроения и информатики»
Кафедра ИТ-6 «Управление и моделирование систем» |
||
|
||
|
Утверждаю Зав. кафедрой ИТ-6 |
|
|
_____________ /Мацнев А.П./ |
|
|
«____» ____________ 200__ г. |
|
Для студентов специальности 230105 |
||
Методическое указание
по выполнению лабораторной работы №3 |
||
по дисциплине 1607 Операционные системы |
||
(шифр, наименование учебной дисциплины) |
||
Тема «Исследование процессов, алгоритмов выделения памяти и распределения ресурсов.» |
||
(наименование темы/названия лабораторной работы)
|
||
|
Рассмотрено на УМС кафедры ИТ-6 |
|
|
«30» августа 2006 г. Протокол УМС № 1 |
|
|
|
|
Москва, МГУПИ 2006 г. |
УДК ______
Изучение функций и механизмов работы с процессами и потоками: Методические указания по выполнению лабораторной работы по дисциплине «Операционные системы»
/Сост. А.А. Мерсов, – М.: МГУПИ, 2006г. –.. с.; ил.
Составитель
А.А. Мерсов
Рецензент
Профессор, кандидат технических наук А.П. Мацнев
Редактор А.А. Мерсов
Пособие предназначено для оказания методической помощи при выполнении лабораторной работы № 3 по Операционные системы
сп. 230105 «Программное обеспечение вычислительной техники и автоматизированных систем».
Целью лабораторной работы является ознакомление с функциями и механизмом работы с процессами и потоками.
Подписано в печать……... Объем …… п.л. Формат 60х84, 1/16. Тираж …… экз. Зак. .
Ротапринт «МГУПИ», ул.Стромынка, 19.
Оглавление
Общие указания к выполнению лабораторной работы 4
Цель работы 4
Постановка задачи 4
Последовательность выполнения 4
Методический пример 8
Отчет по лабораторной работе 23
Контрольные вопросы 24
Общие указания к выполнению лабораторной работы
Лабораторные работы выполняются на персональных компьютерах в операционной среде Windows 95-2000, ХР
Указания по технике безопасности совпадают с требованиями, предъявляемыми к пользователю ЭВМ. Другие опасные и вредные факторы отсутствуют.
Целью лабораторной работы является ознакомление с алгоритмами выделения памяти, исследованием процессов и распределением ресурсов.
Постановка задачи
Исследовать выделение ресурсов, памяти в соответствии с различными алгоритмами и входными данными по конкретному варианту задания полученному у преподавателя.
Последовательность выполнения
Для выполнения лабораторной работы «Исследование процессов, алгоритмов выделения памяти и распределения ресурсов.» необходимо:
Ознакомится с теоретическими основами функционирования модели
Ознакомится с работой модели
В соответствии с заданным вариантом осуществить моделирование и провести исследования, описанных в тестируемой модели(см.пример).
Работа считается выполненной только после осуществления моделирования, получения результатов, представления выводов и защиты ее у преподавателя.
Теоретические основы функционирования модели
Общая организация моделируемой вычислительной системы
В ходе функционирования модели в системе выполняются процессы трех классов, обладающих фиксированным приоритетом: системные задачи (задачи ядра), серверные процессы и пользовательские процессы. Выделение процессам ресурса CPU осуществляется путем формирования циклических очередей (дисциплина RR) запросов. При этом процессы разных классов образуют различные очереди и планировщик каждый раз выбирает наиболее приоритетный процесс. Процессы, в ходе работы, формируют запросы к ресурсам. Взаимоисключение процессов при обращении к ресурсам осуществляется с помощью механизма семафоров. Для работы процессам также необходим ресурс Оперативной памяти. Оперативная память в модели имеет страничную организацию. При нехватке первичной памяти для размещения всех процессов разделение происходит путем выталкивания не используемых страниц во вторичную память.
Задачи ядра.
Процессы этого класса являются составной частью ядра системы и обладают наивысшим приоритетом. Данная модель включает следующие задачи ядра:
Задачи, обслуживающие ресурсы. (Принтер, Терминал, Винчестер, Дисковод). Когда происходит занятие или освобождение какого-либо ресурса систем вызывает соответствующую обслуживающую задачу. Длительность работы обслуживающих задач составляет один квант модельного времени.
Системные часы. Это задача, поддерживающая системное время. Система вызывает эту задачу каждые 10 квант модельного времени. Длительность работы системных часов составляет один квант.
System Task. Эта задача в реальной ОС обслуживает системные вызовы, то есть осуществляет взаимодействие между пользовательскими процессами и ядром. Однако в данной модели, для упрощения, взаимодействие осуществляется без ее участия
Процесс аппаратуры. Этот процесс протекает во время простоя процессора.
Серверные процессы.
Эти процессы являются посредниками, осуществляющими взаимодействие между пользовательскими процессами и задачами ядра. Эти процессы также как и пользовательские независимы от ядра системы, однако обладают преимуществами перед пользовательскими процессами. Серверные процессы могут непосредственно взаимодействовать с системой и работают с реальным адресным пространством. Серверные процессы имеют больший приоритет, чем пользовательские. В данной модели к серверным процессам относятся Менеджер памяти, осуществляющий вталкивание/выталкивание страниц памяти и Файловая система, обслуживающая доступ к ресурсам. Рассмотрим их подробнее.
Менеджер памяти.
Если объем оперативной памяти, необходимой процессам больше, чем имеющейся в вычислительной системе, необходимо иметь механизмы логического расширения физической памяти. В данной модели реализовано выделение страниц процессам по запросам. Пользовательские программы работают с логической памятью, которая отображается на физическую постранично. Физическая память разделена на страницы одинакового размера, и каждой из страниц может соответствовать любая страница логической памяти. Физически процесс не обязательно работает с непрерывным блоком памяти, однако логически страницы памяти, с которыми работает процесс остаются смежными. То есть такая форма замещения не оказывает влияния на адресное пространство программ. Логические страницы процессов, не поместившиеся в основную память, находятся во вторичной памяти, имеющей, как правило, значительно больший объем и меньшее быстродействие. Изначально в оперативную память загружаются только первые страницы процессов. Все остальные страницы загружаются впоследствии по запросам. В данной модели используется стратегия глобального вытеснения, то есть любой странице физической памяти может соответствовать любая страница любой задачи.
Страничным сбоем называется ситуация, когда процесс обращается к странице, находящейся во вторичной памяти. В этом случае выполняется загрузка этой страницы в основную оперативную память. Если оперативная память заполнена, необходимо выгрузить одну из страниц во внешнюю память. Заменяемая страница выбирается по одному из алгоритмов:
FIFO – заменяется страница, ранее всех загруженная в оперативную память.
LFU – заменяется страница, к которой за время ее нахождения в ОП было меньше всего обращений.
NUR – эталонная стратегия замещения, основанная на предсказании запросов процессов. Происходит замещение страницы памяти, к которой дольше всего не будет происходить обращений.
Менеджер памяти в данной модели вызывается при возникновении страничного сбоя и производит замену страницы согласно выбранному алгоритму. Длительность замещения одной страницы составляет четыре кванта модельного времени.
Файловая система.
В ходе работы пользовательские процессы формируют запросу к ресурсам. Для взаимоисключения при доступе к ресурсам в данной модели файловая система использует двоичные семафоры (в реальных ОС семафорные операции выполняются непосредственно ядром). Процесс файловой системы запускается на два кванта времени каждый раз, когда какой-либо процесс выполняет обращение к ресурсу. Каждый ресурс имеет свой семафор S, характеризующий его доступность следующим образом: S = 1 – ресурс свободен, S = 0 – ресурс занят процессом, S=-1 – ресурс занят процессом и в системе есть процесс(ы), блокированные в ожидании доступа к ресурсу (файловая система содержит для этой цели очереди процессов, ожидающих ресурсов).
Если процесс обращается к какому-либо ресурсу, выполняется операция P(S) над соответствующим семафором, уменьшающая S на 1. Если при этом значение S=1, процесс получает доступ к ресурсу, иначе – переводится в состояние ожидания.
При освобождении процессом ресурса выполняется операция V(S). Если при этом есть ожидающий освобождения ресурса процесс, то он получает доступ к ресурсу, в противном случае семафор устанавливается в 1.
Принтер и терминал являются неразделяемыми ресурсами. Такой ресурс процесс занимает на длительное время, при этом использует процессор и может занимать другие ресурсы. Дисковод и винчестер – неразделяемые ресурсы. Процесс занимает их на короткое время, и во время работы с ними не обращается к процессору и другим ресурсам. Наличие в системе неразделяемых ресурсов делает возможным возникновение тупиковой ситуации.
Пользовательские процессы
В данной модели может существовать до десяти пользовательских процессов.
Пользовательские процессы – некоторые программы, не имеющие отношения системы, и запускаемые ее пользователем в своих целях (прикладные программы). Эти процессы имеют наименьший приоритет.
Адресное пространство каждого процесса состоит из трех сегментов: Сегмент кода, сегмент данных и сегмент стека. Каждый пользовательский процесс характеризуется своим уникальным описателем – дескриптором. Дескриптор содержит следующие поля:
PC – указатель на операцию, выполняемую процессом в данный момент
SP – указатель на вершину стека
DP – указатель на данные
CodeSize – размер сегмента кода
DataSize – размер сегмента данных
StackSize – размер сегмента стека
В ходе работы процесса значения PС и SP изменяются.
Пользовательские процессы, при помощи генератора случайных чисел, формируют системные вызовы: запросы к памяти и ресурсам. В задачи операционной системы входит обслуживание этих запросов.