- •«Основы построения операционных систем»
- •Содержание.
- •Текст задания
- •План работ
- •Анализ предметной области
- •Описание алгоритма
- •4.1 Исходные данные
- •4.2 Выходные результаты работы
- •4.3 Глобальные переменные
- •4.4 Описание модулей
- •4.4.1 Процессор (Cpu.H cpu.Cpp)
- •Тестирование ос
- •1) Процессор
- •2 Устройство ввода
- •3 Устройство вывода
- •4 Канал ввода
- •5 Канал вывода
- •6 Память
- •7 Очереди
- •8 Событие
- •Руководство пользователя.
- •Способ запуска:
- •Методика задания входных параметров:
- •Описание результатов работы:
- •Проведение моделирования
- •Заключение
- •Распределение памяти фиксированными разделами
- •Распределение памяти разделами переменной величины
- •Перемещаемые разделы
1) Процессор
Процессор в бесконечном цикле анализирует состояние каналов и в зависимости от состояния памяти активирует или нет канал ввода/вывода. Если процессор не занят, и есть заявки, ожидающие счета, то он меняет свое состояние на «занят» и выполняет заявку.
Была выполнена проверка корректности работы процессора, т. е. правильность анализа состояния каналов и своевременность обращения процессора к каналам. Для этого искусственно были получены условия, при которых:
а) свободен канал и существуют свободные разделы памяти.
При этом процессор активизирует канал для ввода заявки и помечает память как занятую каналом ввода.
б) канал вывода свободен и есть разделы памяти готовые для вывода.
При этом процессор должен активизировать канал для печати заявки
в) рассматривался случай, когда процессор не занят и есть заявки ожидающие счета.
При этом процессор меняет свое состояние на «занят» и выполняет заявку.
Ожидаемые результаты в ходе тестирования были получены, следовательно можно сделать вывод о правильности работы этого модуля.
2 Устройство ввода
Цикл устройства ввода имеет две точки входа: считывание данных и ожидание. Устройство считывает данные, увеличивает время работы и переходит в режим ожидания до тех пор, пока данные не передадутся по каналу ввода в память.
Данный модуль тестировался на предмет корректного увеличения времени и перехода в режим ожидания. Так же это устройство после ввода данных должно устанавливать флаг просмотра очереди текущих событий заново.
В результате тестирования ожидаемые результаты были получены, из чего можно заключить, что данный модуль работает корректно.
3 Устройство вывода
Аналогично устройству ввода работает и устройство вывода, с той разницей, что оно находится в режиме ожидания до тех пор, пока не поступят данные через канал вывода из памяти. После вывода данных устройство увеличивает счетчик программ полностью обработанных в системе. Затем устанавливается флаг просмотра очереди текущих событий заново и раздел памяти, занимаемый заявкой, освобождается.
Предмет тестирования аналогичен предыдущему. Также была проверена правильность работы со счетчиком программ (своевременное его увеличение).
Исходя из совпадения ожидаемых результатов и практической проверки, можно утвердить корректность работы данного модуля.
4 Канал ввода
Канал ввода отслеживает состояние всех устройств ввода и передает данные с устройства, закончившего ввод заявки, при этом приоритет имеют устройства с меньшим номером, т.е. с большим приоритетом. После завершения пересылки данных посылает сигнал пометить раздел памяти как готовый для счета на процессоре.
Данный модуль проверялся на согласованность с устройствами ввода. Было произведено тестирование считывания данных с одного и нескольких устройств, и проверена работа согласно приоритетам. Также обязательным пунктом тестирования стала проверка состояния раздела памяти после завершения пересылки данных.
Правильность работы модуля была подтверждена практикой.
