- •Лабораторная работа № 5 моделирование процессов в операционной системе
- •1. Управление процессами
- •2. Синхронизация процессов
- •3. Планирование процессов
- •4. Вталкивание-выталкивание
- •5. Конфигурация вычислительной системы
- •6. Состояние процесса
- •7. Взаимодействие процессов в системе
- •8. Управление памятью (memory manager)
- •9. Управление файлами (File System). Семафорные операции
- •10. Пользовательские процессы
- •Порядок использования модели
- •1. Цель
- •2. Порядок использования модели
- •3. Общая организация моделируемой вычислительной системы
- •Общее задание для выполнения
- •Зависимость числа страничных сбоев от кванта процессорного времени
- •Оценка зависимости загрузки процессора от величины кванта времени
- •Индивидуальные задания для выполнения
3. Общая организация моделируемой вычислительной системы
В ходе функционирования модели в системе выполняются процессы трех классов, обладающих фиксированным приоритетом: системные задачи (задачи ядра), серверные процессы и пользовательские процессы. Выделение процессам ресурса ЦП осуществляется путем формирования циклических очередей (дисциплина RR) запросов. При этом процессы разных классов образуют различные очереди и планировщик каждый раз выбирает наиболее приоритетный процесс. Процессы, в ходе работы, формируют запросы к ресурсам. Взаимоисключение процессов при обращении к ресурсам осуществляется с помощью механизма семафоров. Для работы процессам также необходим ресурс оперативной памяти. Оперативная память в модели имеет страничную организацию. При нехватке первичной памяти для размещения всех процессов разделение происходит путем выталкивания не используемых страниц во вторичную память.
Задачи ядра.
Процессы этого класса являются составной частью ядра системы и обладают наивысшим приоритетом. Данная модель включает следующие задачи ядра:
Задачи, обслуживающие ресурсы (Принтер, Терминал, Винчестер, Дисковод). Когда происходит занятие или освобождение какого-либо ресурса систем вызывает соответствующую обслуживающую задачу. Длительность работы обслуживающих задач составляет один квант модельного времени.
Системные часы. Это задача, поддерживающая системное время. Система вызывает эту задачу каждые 10 квант модельного времени. Длительность работы системных часов составляет один квант.
System Task. Эта задача в реальной ОС обслуживает системные вызовы, то есть осуществляет взаимодействие между пользовательскими процессами и ядром. Однако в данной модели, для упрощения, взаимодействие осуществляется без ее участия
Процесс аппаратуры. Этот процесс протекает во время простоя процессора.
Серверные процессы.
Эти процессы являются посредниками, осуществляющими взаимодействие между пользовательскими процессами и задачами ядра. Эти процессы также как и пользовательские независимы от ядра системы, однако обладают преимуществами перед пользовательскими процессами. Серверные процессы могут непосредственно взаимодействовать с системой и работают с реальным адресным пространством. Серверные процессы имеют больший приоритет, чем пользовательские. В данной модели к серверным процессам относятся Менеджер памяти, осуществляющий вталкивание/выталкивание страниц памяти и Файловая система, обслуживающая доступ к ресурсам. Рассмотрим их подробнее.
Менеджер памяти.
Если объем оперативной памяти, необходимой процессам больше, чем имеющейся в вычислительной системе, необходимо иметь механизмы логического расширения физической памяти. В данной модели реализовано выделение страниц процессам по запросам. Пользовательские программы работают с логической памятью, которая отображается на физическую память постранично. Физическая память разделена на страницы одинакового размера, и каждой из страниц может соответствовать любая страница логической памяти. Физически процесс не обязательно работает с непрерывным блоком памяти, однако логически страницы памяти, с которыми работает процесс, остаются смежными. То есть такая форма замещения не оказывает влияния на адресное пространство программ. Логические страницы процессов, не поместившиеся в основную память, находятся во вторичной памяти, имеющей, как правило, значительно больший объем и меньшее быстродействие. Изначально в оперативную память загружаются только первые страницы процессов. Все остальные страницы загружаются впоследствии по запросам. В данной модели используется стратегия глобального вытеснения, то есть любой странице физической памяти может соответствовать любая страница любой задачи.
Страничным сбоем называется ситуация, когда процесс обращается к странице, находящейся во вторичной памяти. В этом случае выполняется загрузка этой страницы в основную оперативную память. Если оперативная память заполнена, необходимо выгрузить одну из страниц во внешнюю память. Заменяемая страница выбирается по одному из алгоритмов:
FIFO – заменяется страница, ранее всех загруженная в оперативную память.
LFU – заменяется страница, к которой за время ее нахождения в ОП было меньше всего обращений.
NUR – эталонная стратегия замещения, основанная на предсказании запросов процессов. Происходит замещение страницы памяти, к которой дольше всего не будет происходить обращений.
Менеджер памяти в данной модели вызывается при возникновении страничного сбоя и производит замену страницы согласно выбранному алгоритму. Длительность замещения одной страницы составляет четыре кванта модельного времени.
Файловая система.
В ходе работы пользовательские процессы формируют запросу к ресурсам. Для взаимоисключения при доступе к ресурсам в данной модели файловая система использует двоичные семафоры (в реальных ОС семафорные операции выполняются непосредственно ядром). Процесс файловой системы запускается на два кванта времени каждый раз, когда какой-либо процесс выполняет обращение к ресурсу. Каждый ресурс имеет свой семафор S, характеризующий его доступность следующим образом: S = 1 – ресурс свободен, S = 0 – ресурс занят процессом, S = - 1 – ресурс занят процессом и в системе есть процесс(ы), блокированные в ожидании доступа к ресурсу (файловая система содержит для этой цели очереди процессов, ожидающих ресурсов).
Если процесс обращается к какому-либо ресурсу, выполняется операция Р(S) над соответствующим семафором, уменьшающая S на 1. Если при этом значение S=1, процесс получает доступ к ресурсу, иначе - переводится в состояние ожидания.
При освобождении процессом ресурса выполняется операция V(S). Если при этом есть ожидающий освобождения ресурса процесс, то он получает доступ к ресурсу, в противном случае семафор устанавливается в 1.
Принтер и терминал являются неразделяемыми ресурсами. Такой ресурс процесс занимает на длительное время, при этом использует процессор и может занимать другие ресурсы. Дисковод и винчестер - неразделяемые ресурсы. Процесс занимает их на короткое время, и во время работы с ними не обращается к процессору и другим ресурсам. Наличие в системе неразделяемых ресурсов делает возможным возникновение тупиковой ситуации.
Пользовательские процессы
В данной модели может существовать до 10 пользовательских процессов. Пользовательские процессы - некоторые программы, не имеющие отношения системы, и запускаемые ее пользователем в своих целях (прикладные программы). Эти процессы имеют наименьший приоритет.
Адресное пространство каждого процесса состоит из трех сегментов: сегмент кода, сегмент данных и сегмент стека. Каждый пользовательский процесс характеризуется своим уникальным описателем - дескриптором. Дескриптор содержит следующие поля:
PC – указатель на операцию, выполняемую процессом в данный момент
SP – указатель на вершину стека
DP – указатель на данные
CodeSize – размер сегмента кода
DataSize – размер сегмента данных
StackSize – размер сегмента стека
В ходе работы процесса значения PC и SP изменяются.
Пользовательские процессы, при помощи генератора случайных чисел, формируют системные вызовы: запросы к памяти и ресурсам. В задачи операционной системы входит обслуживание этих запросов.