- •«Основы построения операционных систем»
- •Содержание.
- •Текст задания
- •План работ
- •Анализ предметной области
- •4.4 Описание модулей
- •4.4.1 Процессор (Cpu.H cpu.Cpp)
- •Описание алгоритма
- •4.1 Исходные данные
- •4.2 Выходные результаты работы
- •4.3 Глобальные переменные
- •Тестирование ос
- •1) Процессор
- •2 Устройство ввода
- •3 Устройство вывода
- •4 Канал ввода
- •5 Канал вывода
- •6 Память
- •7 Очереди
- •8 Событие
- •Руководство пользователя.
- •Способ запуска:
- •Методика задания входных параметров:
- •Описание результатов работы:
- •Проведение моделирования
- •Заключение
- •Распределение памяти фиксированными разделами
- •Распределение памяти разделами переменной величины
- •Перемещаемые разделы
5 Канал вывода
Когда активизируется канал вывода, он просматривает состояние устройства вывода и активирует его, когда оно освободится. Увеличивается время работы канала и устанавливается флаг просмотра заново ОТС.
В данном модуле тестировалась правильность, и своевременность увеличение времени работы канала, путем передачи каналу вывода тестовых параметров. Также проверялась работа с флагом.
Исходя из проведенного эксперимента можно заключить, что модуль работает надежно.
6 Память
Память является пассивным устройством и хранит состояния разделов памяти, а так же возвращает по запросам других устройств количество свободных разделов, разделов готовых для счета и вывода.
Данный модуль тестировался на корректность взаимодействия с другими устройствами. Были созданы необходимые условия для проверки возвращения количества свободных разделов, разделов готовых для счета и для вывода.
Проведя тестирование, приходим к выводу, что модуль работает правильно.
7 Очереди
Очереди представлены в программе однонаправленными списками, с возможность добавления элемента в начало, сортированного добавления, удаления и.т.д. Информационным полем элемента списка является объект «событие». Для более удобно обращения со списками создан класс итератор.
Данный модуль тестировался на корректное добавление элемента в начало списка, на корректность работы функций удаления, сортированного добавления и др. Испытания проводились посредством загрузки в модуль необходимых параметров.
Соответствие полученных результатов тестирования ожидаемым доказывает корректность работы модуля.
8 Событие
Так как применяется модель событийного моделирования, необходим такой объект как «событие». Событие включает три поля: указатель на устройство, на котором оно должно произойти, локальное время и точка входа. По мере просмотра очереди текущих событий, монитор выбирает из события устройства и передает их главной процедуре необходимые параметры.
С помощью передачи модулю необходимых параметров и сравнения полученных результатов с ожидаемыми, можно сделать вывод, что модуль работает правильно.
При тестировании модулей были получены верные результаты, совпадающие с ожидаемыми. Это позволяет нам заключить, что каждый модуль программы отлажен и готов к работе.
В)
В конце было осуществлено комплексное тестирование системы:
Подготовка к тестированию:
Комплексная отладка включила в себя проведение трассировки. Задачей являлось показать сам процесс моделирования. Приводится результат каждой единицы моделирования. Так же подсчитываются выходные данные, которые впоследствии сравниваются с теоретическими данными.
Ниже приведены таблицы, по которым можно проследить весь процесс моделирования. В этих таблицах используются следующие обозначения:
L – Заявка загружается;
O – Заявка выводиться;
C – Заявка на процессоре;
S – Заявка простаивает;
Zi – номер заявки.
Были разработаны 2 теста простой и комплексный.
Первый тест: (простой)
Входные параметры:
Количество устройств ввода – 1;
Количество устройств вывода – 1;
Количество заявок – 1;
Время вода – 1 ед.;
Время вывода – 1 ед.;
Время работы каналов – не учитывается;
Время моделирования - 3 ед.;
№такта |
1 |
2 |
3 |
Z 1 |
L |
С |
O |
Теоретически рассчитанные результаты:
Загруженность Процессора = 33%;
Загруженность Устройства ввода №1 = 33%;
Загруженность Устройств вывода №1 = 33%;
Второй тест: (комплексный). Данный тест подобран таким образом, что он задействует все модули программы.
Входные параметры:
Количество устройств ввода – 3;
Количество устройств вывода – 3;
Количество заявок – 4;
Время ввода – 5 ед.;
Время вывода – 6 ед.;
Время работы каналов – не учитывается;
Время моделирования – 25 ед.
№такта |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
Z1 |
I |
I |
C |
X |
X |
X |
X |
X |
X |
X |
X |
C |
O |
O |
O |
O |
|
|
|
|
|
|
|
|
|
Z2 |
I |
I |
I |
C |
C |
X |
X |
C |
C |
C |
O |
O |
O |
O |
O |
|
|
|
|
|
|
|
|
|
|
Z3 |
X |
X |
X |
I |
I |
X |
C |
C |
C |
O |
O |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Z4 |
X |
X |
I |
I |
I |
I |
I |
X |
X |
X |
X |
X |
X |
X |
X |
C |
C |
C |
C |
C |
O |
O |
O |
O |
O |
Полученные теоретические результаты:
Время моделирования = 25;
Загруженность Процессора = 64%;
Загруженность Устройства ввода №1 = 28%;
Загруженность Устройства ввода №2 = 20%;
Загруженность Устройства ввода №3 = 19%;
Загруженность Устройств вывода №1 = 16%;
Загруженность Устройств вывода №2 = 40%;
Загруженность Устройств вывода №3 = 8%;
Проведенные исследования подтверждают правильность, надежность и корректность работы программы, т. к. экспериментально полученные данные подтвердили теоретические.
Г)
Для того, чтобы полностью убедиться в правильной работе программы в нее были загружены 2 примитивных теста, с известными входными и выходными параметрами. При совпадении выходных параметров (заранее известных и экспериментальных) можно окончательно заключить, что программа работает надежно (на заданных тестах).
1 тест. Исходные данные: одно устройстве ввода, одно устройство вывода, три раздела памяти, время передачи по каналам не учитывается, одинаковое время на ввод, вывод и счет заявки.
Результаты: Загрузка устройств ввода, вывода и процессора – 99%. Время нахождения заявок в системе совпадает со временем фаз ввода, вывода и счета.
2 тест. Исходные данные: одно устройство ввода, одно устройство вывода, три раздела памяти, время передачи по каналам не учитывается, постоянное время на ввод, вывод и счет заявки. Суммарное время на ввод, вывод и счет заявки совпадает со значениеми в тесте 1, но доля времени на ввод и вывод уменьшена, а на счет увеличена tввод<tсчет и 0<tвывод<tсчет). Результаты: Загрузка процессора < 100%, загрузка устройств ввода и вывода может быть от 0% до 100% но ни в коем случае не должна достигать 100%. Обязательно должно выполняться следующее условие: tввод+tвывод+tсчет<Т.
Благодаря вышеприведенным тестированиям, можно сделать заключение, что программа работает надежно, корректно и согласуется с теорией по части расчета выходных параметров в пределах наших проведенных тестов и ее можно использовать для исследований.
