Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС-ЛР-05-2012.doc
Скачиваний:
6
Добавлен:
15.08.2019
Размер:
1.09 Mб
Скачать

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 изменяются.

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