49780
Анализ межпроцессных взаимодействий
Лабораторная работа
Информатика, кибернетика и программирование
Длительность работы обслуживающих задач составляет один квант модельного времени. Система вызывает эту задачу каждые 10 квант модельного времени. Длительность замещения одной страницы составляет четыре кванта модельного времени.
Русский
2014-01-08
645 KB
3 чел.
Лабораторная работа №6
Анализ межпроцессных взаимодействий
6. Литература ________________________________________________________ |
2 2 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 10 10 10 12 13 13 15 17 17 |
Разработка WinMOS представляет собой программную модель, отображающую собой следующие аспекты функционирования операционной системы:
2 Теоретические основы функционирования модели
2.1 Общая организация моделируемой вычислительной системы
В ходе функционирования модели в системе выполняются процессы трех классов, обладающих фиксированным приоритетом: системные задачи (задачи ядра), серверные процессы и пользовательские процессы. Выделение процессам ресурса CPU осуществляется путем формирования циклических очередей (дисциплина RR) запросов. При этом процессы разных классов образуют различные очереди и планировщик каждый раз выбирает наиболее приоритетный процесс. Процессы, в ходе работы, формируют запросы к ресурсам. Взаимоисключение процессов при обращении к ресурсам осуществляется с помощью механизма семафоров. Для работы процессам также необходим ресурс Оперативной памяти. Оперативная память в модели имеет страничную организацию. При нехватке первичной памяти для размещения всех процессов разделение происходит путем выталкивания не используемых страниц во вторичную память.
2.2 Задачи ядра.
Процессы этого класса являются составной частью ядра системы и обладают наивысшим приоритетом. Данная модель включает следующие задачи ядра:
2.3 Серверные процессы.
Эти процессы являются посредниками, осуществляющими взаимодействие между пользовательскими процессами и задачами ядра. Эти процессы также как и пользовательские независимы от ядра системы, однако обладают преимуществами перед пользовательскими процессами. Серверные процессы могут непосредственно взаимодействовать с системой и работают с реальным адресным пространством. Серверные процессы имеют больший приоритет, чем пользовательские. В данной модели к серверным процессам относятся Менеджер памяти, осуществляющий вталкивание/выталкивание страниц памяти и Файловая система, обслуживающая доступ к ресурсам. Рассмотрим их подробнее.
2.3.1 Менеджер памяти.
Если объем оперативной памяти, необходимой процессам больше, чем имеющейся в вычислительной системе, необходимо иметь механизмы логического расширения физической памяти. В данной модели реализовано выделение страниц процессам по запросам. Пользовательские программы работают с логической памятью, которая отображается на физическую постранично. Физическая память разделена на страницы одинакового размера, и каждой из страниц может соответствовать любая страница логической памяти. Физически процесс не обязательно работает с непрерывным блоком памяти, однако логически страницы памяти, с которыми работает процесс остаются смежными. То есть такая форма замещения не оказывает влияния на адресное пространство программ. Логические страницы процессов, не поместившиеся в основную память, находятся во вторичной памяти, имеющей, как правило, значительно больший объем и меньшее быстродействие. Изначально в оперативную память загружаются только первые страницы процессов. Все остальные страницы загружаются впоследствии по запросам. В данной модели используется стратегия глобального вытеснения, то есть любой странице физической памяти может соответствовать любая страница любой задачи.
Страничным сбоем называется ситуация, когда процесс обращается к странице, находящейся во вторичной памяти. В этом случае выполняется загрузка этой страницы в основную оперативную память. Если оперативная память заполнена, необходимо выгрузить одну из страниц во внешнюю память. Заменяемая страница выбирается по одному из алгоритмов:
FIFO заменяется страница, ранее всех загруженная в оперативную память.
LFU заменяется страница, к которой за время ее нахождения в ОП было меньше всего обращений.
NUR эталонная стратегия замещения, основанная на предсказании запросов процессов. Происходит замещение страницы памяти, к которой дольше всего не будет происходить обращений.
Менеджер памяти в данной модели вызывается при возникновении страничного сбоя и производит замену страницы согласно выбранному алгоритму. Длительность замещения одной страницы составляет четыре кванта модельного времени.
2.3.2 Файловая система.
В ходе работы пользовательские процессы формируют запросу к ресурсам. Для взаимоисключения при доступе к ресурсам в данной модели файловая система использует двоичные семафоры (в реальных ОС семафорные операции выполняются непосредственно ядром). Процесс файловой системы запускается на два кванта времени каждый раз, когда какой-либо процесс выполняет обращение к ресурсу. Каждый ресурс имеет свой семафор S, характеризующий его доступность следующим образом: S = 1 ресурс свободен, S = 0 ресурс занят процессом, S=-1 ресурс занят процессом и в системе есть процесс(ы), блокированные в ожидании доступа к ресурсу (файловая система содержит для этой цели очереди процессов, ожидающих ресурсов).
Если процесс обращается к какому-либо ресурсу, выполняется операция P(S) над соответствующим семафором, уменьшающая S на 1. Если при этом значение S=1, процесс получает доступ к ресурсу, иначе переводится в состояние ожидания.
При освобождении процессом ресурса выполняется операция V(S). Если при этом есть ожидающий освобождения ресурса процесс, то он получает доступ к ресурсу, в противном случае семафор устанавливается в 1.
Принтер и терминал являются неразделяемыми ресурсами. Такой ресурс процесс занимает на длительное время, при этом использует процессор и может занимать другие ресурсы. Дисковод и винчестер неразделяемые ресурсы. Процесс занимает их на короткое время, и во время работы с ними не обращается к процессору и другим ресурсам. Наличие в системе неразделяемых ресурсов делает возможным возникновение ткпиковой ситуации.
2.4 Пользовательские процессы
В данной модели может существовать до десяти пользовательских процессов.
Пользовательские процессы некоторые программы, не имеющие отношения системы, и запускаемые ее пользователем в своих целях (прикладные программы). Эти процессы имеют наименьший приоритет.
Адресное пространство каждого процесса состоит из трех сегментов: Сегмент кода, сегмент данных и сегмент стека. Каждый пользовательский процесс характеризуется своим уникальным описателем дескриптором. Дескриптор содержит следующие поля:
В ходе работы процесса значения PС и SP изменяются.
Пользовательские процессы, при помощи генератора случайных чисел, формируют системные вызовы: запросы к памяти и ресурсам. В задачи операционной системы входит обслуживание этих запросов.
3. Порядок использования модели
3.1 Аппаратные требования
3.2 Необходимые файлы
Для функционирования программы достаточно файла WinMOS.exe
3.3 Запуск модели
Для запуска модели необходимо запустить на исполнение файл WinMOS.exe
3.4 Работа с моделью
При запуске модели на экране появляется заставка. Для начала работы необходимо В главном меню выбрать пункт Моделирование\Моделирование… При этом на экране появляется диалог параметров моделирования.
3.4.1 Диалог параметров моделирования
Диалог параметров моделирования изображен на рис. 1
.
Рис. 1. Диалог параметров моделирования
С помощью диалога можно выполнять следующие действия:
- Размер кванта времени максимальное время, отводимое процессу на использование CPU. По истечении кванта времени CPU отдается другому процессу. Мин. значение =1. Значение по умолчанию =8. Макс. значение =20.
- Объем оперативной памяти - измеряется в страницах. Мин. значение =1. Значение по умолчанию =10. Макс. значение =20 .
- Стратегия замещения страниц алгоритм, используемый менеджером памяти для выбора замещаемой страницы. Доступные значения: FIFO,LFU, NUR. Значение по умолчанию =FIFO.
- Вид трассировки. При ручной трассировке работа системы выполняется по шагам. Для продвижения модельного времени на единицу вперед пользователь должен нажать клавишу пробел. При автоматической трассировке остановка моделирования происходит только при возникновении семафорной операции. Значение по умолчанию: ручная
- Задержка автоматической трассировки интервал времени в мс, через который происходит увеличение модельного времени при автоматической трассировке. Мин. значение =1. Значение по умолчанию =1. Макс. значение =5000.
- Добавление процесса. Для добавления пользовательского процесса в систему необходимо нажать кнопку “добавить”. При нажатии этой кнопки появляется диалог, позволяющий задать имя добавляемого процесса. По умолчанию процессам даются имена вида “Процесс X”.
- Удаление процесса. Для удаления процесса необходимо выделить его в списке процессов и нажать кнопку удалить
- Случайные запросы процессов. При установке этого флажка процессы будут заново формировать случайным образом список запросов к системе при каждом перезапуске моделирования. При снятии флажка список сформируется только один раз при запуске программы, и процессы каждый раз будут формировать одни и те же запросы. Это позволяет ставить чистые эксперименты, не делая скидку на случайность запросов процессов. По умолчанию флажок снят. Проверить одинаковость запросов процессов можно многократно запуская моделирование, и наблюдая состояние системы в фиксированный момент времени. (состояние системы должно быть одинаковым.)
- Увеличить вероятность тупика. При установке этого флажка список запросов процессов будет сформирован таким образом, что с большой вероятностью в системе возникнет тупиковая ситуация. По умолчанию флажок снят.
После нажатия кнопки “Начать моделирование” система переходит в режим моделирования.
3.4.2 Режим моделирования
Внешний вид программы в режиме моделирования изображен на рис. 2.
Рис. 2. Режим моделирования
Для удобства представления рабочая область программы разбита на окна, ограниченные синими прямоугольниками. Рассмотрим назначение и свойства каждого из них.
Окно “Процессы”
В этом окне отображается список процессов, выполняющихся в системе. Процесс, выполняющийся в данный момент на процессоре, выделен красным цветом. Активный процесс (процесс, состояние которого отображается в окне “Активный процесс”) выделен темно синей рамкой. Процессы можно активизировать путем нажатия мышкой на их названия в списке. Это позволяет в любой момент видеть состояние любого процесса. (по отношению к пользовательским процессам - дескриптор).
Окно “Активный процесс”
В этом окне отображается статус активного процесса (выделенного синей рамкой в окне “Процессы”). Статус включает в себя идентификатор (PID) процесса а также специфическую для процесса информацию. Для пользовательских процессов дескриптор, для менеджера памяти карту памяти. Для файловой системы- очереди к ресурсам.
Окно “Системная очередь”
В этом окне отображаются очереди процессов, ожидающих выделения им кванта CPU.
Окно “Состояние системы”
Это окно содержит информацию о загрузке процессора и текущем модельном времени.
Окно “Параметры модели”
Это окно содержит информацию о текущих параметрах модели.
Главное меню рабочего окна программы содержит пункты “Файл”, ”Моделирование” и ”Помощь”. В Подменю “Файл” содержится команда Выход, позволяющая выйти из системы. С помощью подменю “Помощь” можно узнать информацию о программе.
Подменю “Моделирование” содержит следующие пункты:
3.4.3 Режим просмотра результатов.
Внешний вид программы в режиме просмотра результатов изображен на рис. 3.
Рис. 3. Временная диаграмма режима просмотра результатов
В режиме результатов программа отображает график зависимости работы процессора от модельного времени, иными словами какой процесс использовал CPU в каждый конкретный момент времени. По оси x отложено модельное время. По оси y все находящиеся в системе процессы. С помощью кнопок “+” и “-” пользователь может осуществлять масштабирование графика. С помощью бегунка осуществляется навигация по графику. При закрытии диалога программа возвращается в режим моделирования.
4. Тестирование программы
Для проверки адекватности и надежности функционирования программы с ней был проведен ряд тестов.
4.1. Исследование результирующей временной диаграммы
Для оценки точности результирующей временной диаграммы сформируем таблицу событий происходящих в системе, и сравним ее с диаграммой. Для тестирования возьмем следующие параметры системы: Число пользовательских процессов =3. Объем ОП = 10 страниц. Длительность кванта: 5. ДО = NUR.
|
TM Событие 1 Процесс 10 вызвал страничный сбой 10 В очереди появился процесс “Системные часы” 21 В очереди появился процесс “Системные часы” 22 Процесс 10 вызвал страничный сбой 32 В очереди появился процесс “Системные часы” 33 Процесс 11 вызвал страничный сбой 40 Процесс 12 вызвал страничный сбой 45 В очереди появился процесс “Системные часы” 48 Процесс 10 вызвал страничный сбой 56 В очереди появился процесс “Системные часы” 69 В очереди появился процесс “Системные часы” 69 Процесс 10 обратился к ресурсу Дисковод 76 Процесс 11 обратился к занятому ресурсу Дисковод 80 В очереди появился процесс “Системные часы” 89 Процесс 12 вызвал страничный сбой 94 В очереди появился процесс “Системные часы” 99 Процесс 12 обратился к ресурсу “Винчестер” 105 В очереди появился процесс “Системные часы” 115 В очереди появился процесс “Системные часы” 122 Процесс 10 передает ресурc “Дисковод” процессу 11 125 В очереди появился процесс “Системные часы” 129 Процесс 10 обратился к занятому ресурсу “Винчестер” |
4.2 Оценка качества модели
Для оценки качества модели необходимо выяснить зависимость выходных параметров от входных и сопоставить полученные результаты с теоретическими положениями. Входными параметрами в данной модели являются: число пользовательских процессов, объем оперативной памяти, стратегия замещения страниц и длительность кванта времени. Выходные параметры: количество страничных сбоев, загрузка процессора и время завершения. Получим зависимости выходных параметров от входных и попытаемся объяснить полученные результаты.
4.3 Число страничных сбоев
4.3.1 Зависимость числа страничных сбоев от числа страниц ОП и алгоритма замещения страниц
Для оценки этой зависимости построим в одних осях графики зависимости числа страничных сбоев от числа страниц при использовании различных ДО. Для объективности выполним тестирование при разных значениях числа пользовательских процессов
(Табл. 1 а, b, c)
Табл. 1а. Результаты тестирования числа страничных сбоев
(квант времени = 8,число процессов =2)
Число страниц |
Процент сбоев |
||
FIFO |
LFU |
NUR |
|
5 |
27 |
31 |
17 |
10 |
11 |
9 |
8 |
15 |
7 |
7 |
7 |
20 |
7 |
7 |
7 |
Табл. 1b. Результаты тестирования числа страничных сбоев
(квант времени = 8, число процессов =6)
Число страниц |
Процент сбоев |
||
FIFO |
LFU |
NUR |
|
5 |
56 |
57 |
35 |
10 |
39 |
34 |
16 |
15 |
21 |
20 |
11 |
20 |
12 |
12 |
7 |
Табл. 1c Результаты тестирования числа страничных сбоев
(квант времени = 8, число процессов =10)
Число страниц |
Процент сбоев |
||
FIFO |
LFU |
NUR |
|
5 |
80 |
79 |
44 |
10 |
52 |
47 |
26 |
15 |
35 |
34 |
17 |
20 |
25 |
25 |
12 |
Рис. 4а. Зависимость числа страничных сбоев от объема ОП. Параметры тестирования: квант времени = 8, число процессов =2
Рис. 4b. Зависимость числа страничных сбоев от объема ОП. Параметры тестирования: квант времени = 8, число процессов =6
Рис. 4c. Зависимость числа страничных сбоев от объема ОП. Параметры тестирования: квант времени = 8, число процессов =6
Из графиков (рис. 4 а,b,c) можно сделать следующие выводы:
4.3.2 Зависимость числа страничных сбоев от кванта процессорного времени
Предположительно число страничных сбоев не зависит от кванта времени, однако эту гипотезу необходимо проверить. Была оценена зависимость числа страничных сбоев от параметра моделирования квант времени при установках системы: 5 пользовательских процессов. (табл. 2)
Табл. 2. Результаты тестировния зависимости числа сбоев от кванта времени
(объем ОП = 10, ДО LFU.)
Квант времени |
Процент сбоев |
1 |
27 |
5 |
28 |
8 |
28 |
10 |
25 |
15 |
25 |
20 |
25 |
Рис. 5. Зависимость числа сбоев от кванта времени
Выявилось слабое уменьшение числа страничных сбоев при больших значениях кванта времени. (рис. 5). Видимо, это связано с увеличением времени непрерывного нахождения каждого процесса на процессоре, сопровождающегося обращениями к одним и тем же страницам памяти, и как следствие некоторым уменьшением хаотичности запросов к страницам памяти, что приводит к уменьшению числа страничных сбоев.
4.4 Загрузка процессора
Загрузка процессора параметр, изменяющийся во времени, поэтому оценивалась зависимость ZCPU(TM). Это очень важный показатель, характеризующий качество работы системы в целом.
4.4.1 Оценка зависимости загрузки процессора от алгоритма замещения страниц
Для оценки этой зависимости построим в одних осях графики зависимости загрузки процессора от времени при использовании различных ДО, на которых предполагается зафиксировать три интервала.
1 Интервал нарастания загрузки. В это время пользовательские процессы представляются системе и начинают формировать запросы. Процессор постепенно загружается до возможного максимума
2 Интервал максимума. В течение этого интервала происходит основная работа. Процессор предоставляется процессам по очереди. Загрузка процессора на этом этапе максимальна
3 Интервал убывания. Убывание происходит, запросы пользовательских процессов уже обработаны, и процессы не нуждаются более в процессоре. Чем раньше наступает этот этап, тем лучше работает система.
Для объективности выполним тестирование при разных значениях числа пользовательских процессов (Табл. 3 а,b,c)
Табл. 3а. Результаты тестирования загрузки процессора во времени
(квант времени = 8, число процессов= 8, Объем ОП= 10)
TM |
Загрузка CPU |
||
FIFO |
LFU |
NUR |
|
50 |
16 |
16 |
16 |
100 |
36 |
36 |
42 |
200 |
39 |
39 |
50 |
400 |
45 |
46 |
51 |
600 |
45 |
45 |
54 |
800 |
47 |
46 |
54 |
1000 |
46 |
46 |
49 |
1200 |
45 |
45 |
50 |
1400 |
46 |
45 |
52 |
1600 |
47 |
47 |
48 |
1800 |
43 |
43 |
43 |
2000 |
38 |
38 |
38 |
2200 |
35 |
35 |
35 |
2400 |
32 |
32 |
32 |
2600 |
29 |
29 |
28 |
Табл. 3b. Результаты тестирования загрузки процессора во времени
(квант времени = 8, число процессов= 3, Объем ОП= 10)
TM |
Загрузка CPU |
||
FIFO |
LFU |
NUR |
|
20 |
20 |
20 |
20 |
50 |
46 |
46 |
46 |
100 |
56 |
56 |
56 |
200 |
36 |
36 |
36 |
400 |
44 |
46 |
47 |
600 |
42 |
48 |
42 |
800 |
45 |
46 |
49 |
1000 |
42 |
42 |
42 |
1200 |
35 |
35 |
35 |
1400 |
30 |
30 |
30 |
1600 |
26 |
26 |
26 |
Рис. 6а. Зависимость загрузки CPU от модельного времени. Параметры тестирования: квант времени = 8, число процессов= 8,
Объем ОП= 10
Рис. 6б. Зависимость загрузки CPU от модельного времени. Параметры тестирования: квант времени = 8, число процессов= 3,
Объем ОП= 10
Из графиков зависимостей можно сделать следующие выводы:
4.4.2 Оценка зависимости загрузки процессора от величины кванта времени
Для оценки этой зависимости построим в одних осях графики зависимости загрузки процессора от времени при различных значениях кванта времени. Конфигурация системы при тестировании: 5 пользовательских процессов, ДО FIFO, объем памяти 5 страниц. (Табл. 4.)
Табл. 4. Результаты тестирования зависимости загрузки процессора
от величины кванта времени
TM |
Загрузка |
|||
K=1 |
K=7 |
K=14 |
K=20 |
|
30 |
16 |
16 |
16 |
16 |
60 |
43 |
41 |
41 |
41 |
100 |
42 |
41 |
40 |
40 |
200 |
34 |
35 |
36 |
36 |
400 |
42 |
47 |
49 |
42 |
600 |
44 |
47 |
52 |
46 |
800 |
46 |
49 |
54 |
49 |
1000 |
46 |
46 |
49 |
46 |
1200 |
46 |
49 |
51 |
48 |
1400 |
47 |
48 |
48 |
48 |
1600 |
46 |
47 |
47 |
46 |
1800 |
42 |
42 |
42 |
42 |
2000 |
38 |
38 |
38 |
38 |
Средняя загрузка |
Рис. 7. Зависимость загрузки CPU от модельного времени
На графике (рис. 7) видны области нарастания, максимума и спада загрузки процессора, однако зависимость загрузки процессора от кванта времени не наглядна. Для наглядности вычислим среднюю загрузку процессора за время работы системы для каждого значения кванта времени (см. табл. 4), и построим график зависимости средней загрузки процессора от длительности кванта. (рис. 8)
Рис. 8. Зависимость загрузки CPU от длительности кванта времени
Из графика можно сделать следующие выводы:
5. Выводы
В результате работы была спроектирована и реализована модель многозадачной операционной системы WinMOS, основанная на прототипе CoolMOS разработчика Zha. Новая программа обладает следующими преимуществами перед своим предшественником:
Тестирование программы дало хорошие результаты, сочетающиеся с теоретическими предположениями, что дает возможность использовать ее при выполнении лабораторных работ.
6. Литература
1. Многозадачная операционная система. Моделирование функций. Методические указания. / Л. А. Коршикова, В. В. Спицына. Новосибирск: НГТУ, 1997.
2. Многозадачные операционные системы управления памятью. Методические
указания. /Л. А. Коршикова. Новосибирск: НГТУ, 2001.
3. Проблема тупиков и методы борьбы с ними. Реферат. / Т. В. Одинцова - Новосибирск: НГТУ, 2002.
А также другие работы, которые могут Вас заинтересовать | |||
7251. | Проектирование и расчет систем автоматики | 34.85 MB | |
Проектирование и расчет систем автоматики В пособии рассмотрены принципы проектирования систем автоматики, применяемой в горной промышленности. Основное внимание уделено технике проектирования структурных, функциональных и принципиальных схем автома... | |||
7252. | Основные принципы разработки управляющих программ для оборудования с ЧПУ | 245 KB | |
Основные принципы разработки управляющих программ для оборудования с ЧПУ Общие принципы построения программ Под ЧПУ оборудования понимают управление при помощи программ, заданных в алфавитно-числовом коде. При обработке на станках с ЧПУ инструмент п... | |||
7253. | Цифровое вещание. Основные параметры систем спутникового телевизионного вещания | 270 KB | |
Цифровое вещание 1. Основные параметры систем спутникового телевизионного вещания. Существуют два вида спутниковой связи, используемых для ТВ-вещания: фиксированная спутниковая служба и радиовещательная спутниковая служба. Фиксированная спутниковая ... | |||
7254. | Детали машин. Конспект лекций. Основные требования к конструкции деталей машин | 2.83 MB | |
Настоящий конспект лекций по курсу Детали машин следует рассматривать как краткое изложение программных вопросов курса, облегчающее усвоение учебного материала и подготовку к экзаменам. Конспект изложен на базе основных учебников Д.Н.... | |||
7255. | Генератор прямоугольных импульсов | 287.87 KB | |
Задание на расчет Построить генератор прямоугольных импульсов (ГПИ) с видом характеристики типа меандр. Амплитуда сигнала стандартная для транзисторно-транзисторной логики (ТТЛ). Установленная частота ступенями: 100Гц 1... | |||
7256. | Конструирование мехатронных модулей главного движения металлорежущих станков | 281 KB | |
Рассмотрены вопросы разработки структур, кинематических схем и конструкций мехатронных модулей главного движения станков с компьютерным управлением, даны рекомендации по выполнению отдельных этапов проектирования. Предназначены для студентов, обучаю... | |||
7257. | Связь науки и техники на примере развития вычислительных средств | 178.61 KB | |
Введение. Наука играет огромную роль в развитии человеческого общества. Она пронизывает все сферы нашей деятельности как материальной, так и духовной и по праву является неотъемлемым звеном социально-политического развития страны. В литературе им... | |||
7258. | Расчет цифрового радиоприёмника по исходным данным: | 786 KB | |
1. Задание. Произвести расчёт цифрового радиоприёмника по следующим исходным данным: Приёмник работает с ФМ сигналом на частоте F0=22 МГц. Необходимо обеспечить перестройку по 19 каналам. Скорость цифрового потока в последовательном коде V: 7000 бит... | |||
7259. | Книга. Сто великих сокровищ | 1.84 MB | |
Сто великих сокровищ. История человечества столь удивительна и разнообразна, что всякая ее достопримечательность потрясает наше сознание. Любой драгоценный предмет имеет очень интересную судьбу, порой таинственную и загадочную. История каж... | |||