Файл: Курсовая работа по дисциплине операционнные системы Тема курсовой работы Исследование алгоритмов планирования многопоточных вычислительных процессов.doc
Добавлен: 29.11.2023
Просмотров: 93
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
-
СОЗДАНИЕ ПРЕДВАРИТЕЛЬНОГО СПИСКА ПРЕЦЕДЕНТОВ
Пользователь может следующее:
-
Вводить данные о системе, проектировать систему.
-
Выбирать алгоритм обслуживания процессов. -
Определять характеристики обслуживаемых процессов. -
Просматривать результаты обработки процессов. -
Просматривать диаграмму обслуживания процессов. -
Сохранять полученные результаты и диаграмму.
Теперь рассмотрим объекты, с которыми имеет дело пользователь. В данной системе это информация о процессах, данные о процессорах, результаты работы системы.
Обработка полученных данных и получение конечных результатов производится самой системой. Таким образом, система делает следующее:
-
Создает очередь процессоров (если их несколько). -
Передает процессорам данные о времени кванта, времени, затрачиваемом на смену контекста. -
Создает очередь процессов и передает каждому данные о времени прихода в систему, о времени обработки, приоритет. -
Запускает обработку по выбранному алгоритму. Получает результаты обработки.
2.3. УТОЧНЕНИЕ И ПРИСВОЕНИЕ ИМЕН ПРЕЦЕДЕНТА
-
Пользователь может осуществить ввод данных о системе (процессорах). -
Пользователь может осуществить выбор требуемого алгоритма. -
Пользователь может осуществить ввод данных о процессах. -
Пользователь может получить результаты обработки.
-
РАЗДЕЛЕНИЕ ПРЕЦЕДЕНТОВ
-
Пользователь может определить количество процессоров в системе. -
Пользователь может определить время смены контекста. -
Пользователь может определить время кванта. -
Пользователь может определить количество приоритетов. -
Пользователь может определить количество процессов в системе. -
Пользователь может определить время прихода каждого процесса. -
Пользователь может определить время обслуживания каждого процесса. -
Пользователь может определить приоритет каждого процесса. -
Пользователь может осуществить выбор требуемого алгоритма. -
Система может создать очередь процессоров. -
Система может передать сведения о времени кванта, времени, затрачиваемом на смену контекста процессорам. -
Система может создать очередь процессов. -
Система может передать сведения о времени прихода в систему, о времени обработки, приоритете процессам. -
Пользователь может получить результаты обработки.
-
ОБЪЕДИНЕНИЕ ПРЕЦЕДЕНТОВ
-
Пользователь может определить количество процессоров в системе. -
Пользователь может определить параметры системы (время смены контекста, время кванта, количество приоритетов). -
Пользователь может определить количество процессов в системе. -
Пользователь может определить параметры процессов (время прихода, время обслуживания, приоритет). -
Пользователь может осуществить выбор требуемого алгоритма. -
Система может инициализировать очередь процессоров. -
Система может инициализировать очередь процессов. -
Пользователь может получить результаты обработки.
-
КОНЕЧНЫЙ СПИСОК ПРЕЦЕДЕНТОВ
Пользователь
-
Определение количества процессоров в системе. -
Определение параметров системы. -
Определение количества процессов в системе. -
Определение параметров процессов. -
Определение алгоритма. -
Получение результатов работы системы. Система-
Инициализация очереди процессоров. -
Инициализация очереди процессов.
-
-
ОПРЕДЕЛЕНИЕ ПОСЛЕДОВАТЕЛЬНОСТИ СОБЫТИЙ ДЛЯ КАЖДОГО ПРЕЦЕДЕНТА
-
Определение количества процессоров в системе.
Ввод необходимого количества процессоров в систему (числом). Предпосылки - не требуются. Последствия - создание очереди процессоров. Альтернатива: окончание работы с системой.
-
Определение параметров системы. Ввод необходимых параметров системы, Предпосылки - не требуются. Последствия - инициализация процессоров. Альтернатива: окончание работы с системой. -
Определение количества процессов в системе.
Ввод необходимого количества процессов в систему (числом). Предпосылки: инициализация системы, Последствия: создание очереди процессов. Альтернатива: окончание работы с системой.
-
Определение параметров процессов. Ввод необходимых параметров процессов.
Предпосылки: инициализация системы, создание очереди процессов. Последствия: инициализация процессов. Альтернатива: окончание работы с системой.
-
Определение алгоритма. Выбор алгоритма обслуживания.
Предпосылки: инициализация системы, инициализация процессов. Последствия: обработка данных.
Альтернатива: обработка по алгоритму FIFO (по умолчанию).
-
Получение результатов работы системы. Просмотр результатов работы системы. Предпосылки: определение алгоритма, обработка данных. Последствия: получение результатов.
Альтернатива: инициализация системы с другими параметрами.
-
Инициализация очереди процессоров,
Получение данных о процессорах, Создание очереди процессоров, Передача процессорам данных. Предпосылки - ввод данных о процессорах. Последствия - инициализация системы. Альтернатива - нет.
-
Инициализация очереди процессов.
Получение данных о процессах, Создание очереди процессов, Передача процессам данных. Предпосылки - ввод данных о процессах. Последствия - инициализация процессов. Альтернатива - нет.
3.8. ДИАГРАММА ПРЕЦЕДЕНТОВ
3.9. ДИАГРАММА ПОСЛЕДОВАТЕЛЬНОСТИ СОБЫТИЙ
3.10. ДИАГРАММА СОТРУДНИЧЕСТВА
3.11. КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ
3.12. ОБЩИЕ ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ
-
Поскольку система создается в учебных целях, то необходимо, чтобы она представляла простой и удобный графический интерфейс (GUI - Graphical User Interface). -
Пользователю будет предложено ввести параметры системы, в которой он хочет работать: количество процессоров в системе, время, затрачиваемое на переключения контекста, количество приоритетов и время кванта (для алгоритма RoundRobin). После чего происходит инициализация данной системы. -
Далее ему будет необходимо определить алгоритм, по которому будут обрабатываться процессы. В системе будет реализовано четыре основных алгоритма: FIFO, LIFO, SJF и RoundRobin, особенности которых уже были описаны выше. Для удобства работы с системой предполагается, что у пользователя будет возможность изменить алгоритм обработки вплоть для начала работы системы (нажатия специальной клавиши), т.е. даже введя данные о системе и процессах, пользователь может изменить алгоритм. Он также может изменить алгоритм обработки и после начала обработки, но в этом случае данные о предыдущей обработке будут утеряны. -
Затем пользователь должен будет ввести параметры процессов для обработки. В системе предполагается использовать следующие параметры: время до начала процесса (или время прихода процесса в систему, в секундах, отсчет времени ведется от начала инициализации), время, необходимое для обработки процесса, приоритет процесса. Следует заметить, что приоритет используется лишь в алгоритме RoundRobin, но вводить его необходимо даже при работе с другими алгоритмами. Это связано с тем, что программа предполагает работу с различными алгоритмами без потери данных о системе и введенных процессах. Поэтому если пользователь после обработки алгоритмом FIFO, LIFO или SJF захочет посмотреть на результат работы алгоритма RR, а приоритет не будет введен, данная обработка не будет иметь смысла. -
После ввода всех необходимых сведений о системе пользователь может начать обработку процессов по выбранному алгоритму. -
После обработки на экран будут выведены сведения о результатах. Также предполагается вывод диаграммы обслуживания процессов. -
Для удобства анализа и сравнения должна быть возможность сохранения полученных данных в файл. -
После завершения обработки пользователь может изменить алгоритм обработки (для сравнения полученных данных). При изменении алгоритма обработки результаты прошлой обработки теряются. Для того чтобы пользователь мог сравнить полученные результаты, предусматривается запись в файл (см. предыдущий пункт). Пользователь также может изменить параметры системы, при этом данные о процессах не теряются и пользователь может по полученным результатам определить оптимальные параметры системы. При изменении данных о процессах не меняются все остальные данные, т.е. подобрав необходимую систему, есть возможность проверить ее на различных очередях.
4. Объектно-ориентированное проектирование и программирование
-
ПРОЕКТИРОВАНИЕ ВЫВОДА
В качестве результатов моделирования (выводимых данных) рассматриваются;
-
время ожидания каждого из процессов; -
время нахождения в системе каждого из процессов; -
среднее время ожидание процессов в системе; -
среднее время нахождения процессов в системе; -
время простоя каждого процессора; -
время работы каждого процессора; -
время, затраченное на смену контекста каждого процессора; -
среднее время простоя процессоров в системе; -
среднее время работы процессоров в системе; -
среднее время, затраченное на смену контекста в системе; -
диаграмма обслуживания процессов.
-
ПРОЕКТИРОВАНИЕ ВВОДА
Для правильного функционирования системы необходим ввод следующих данны:
-
количество процессоров -
время на смену контекста -
количество приоритетов -
время кванта -
количество процессов -
время прихода процесса в систему -
время обслуживания процесса -
приоритет процесса
ОПРЕДЕЛЕНИЕ ФУНКЦИОНАЛЬНЫХ СОСТАВЛЯЮЩИХ МОДЕЛИ
Систему составляют три основные сущности: Система, Процессор, Процесс. Основная обработка данных производится объектом Система. Система принимает данные о процессорах и процессах от пользователя, создает очереди процессоров и процессов, передает процессорам и процессам необходимые данные, осуществляет необходимую обработку данных. Объект Процессор содержит всю необходимую информацию (как исходную, так и вычисляемую) о процессорах. Объект Процесс содержит всю необходимую информацию (как исходную, так и вычисляемую) о процессах.
-
ПРОЕКТИРОВАНИЕ ОБРАБОТКИ ДАННЫХ
При инициализации системы процессы и процессоры формируются в очереди. Объект система начинает обработку этих очередей. В ходе обработки основной задачей является решить, какой процесс должен получить процессорное время, а также какой из процессоров должен это время выделить. Этот выбор зависит от алгоритма обслуживания. Так, при алгоритме FIFO достаточно перегруппировать процесс в очереди по времени прихода и обслуживать поочередно.
Для других алгоритмов задача существенно усложняется, так как в алгоритме LI] система должна брать процесс, пришедший последним. Но также нельзя брать процесс, который еще «не пришел», т.е. необходимо ввести некоторое процессорное Bf мя, с которым будут сравниваться времена прихода процессов в систему. Для удобства обработка будет вестись до тех пор, пока в очереди будут «не обслуженные» процесс. Для простоты в определение процесса необходимо будет ввести индикатор, который и будет говорить системе, обслуживался ли уже этот процесс, или еще нет.
Кроме того, предполагается, что система будет многопроцессорной. Поэтому на каждом шаге необходимо будет определить, какой из процессоров должен обслужить следующий процесс. Для этого в начале каждого шага очередь процессоров будет сортироваться процессорному времени, процессор с наименьшим процессорным временем и будет бр; следующий процесс. После того как определен процессор обслуживания, необходимо определить процесс для обслуживания. По-видимому, должна будет формироваться резервная очередь «пришедших» процессов, которая будет отсортирована по времени прихода процессора в систему. Из нее должен будет последний пришедший процесс.
Данная очередь формируется на основе сравнения времени прихода процесса в систему и процессорного времени отобранного процессора. Возможен случай, когда в очереди не идет не одного процесса, т.е. существует разрыв между временем прихода процесса и процессорным временем (процессор простаивал). В этом случае из общей очереди берется первый пришедший процесс, а время простоя процессора продвигается на величину разрыва, вместе со временем простоя продвигается и процессорное время. Поскольку в системе участвует несколько процессоров, и их процессорное время движется не синхронно, то возможно шествование процессов, которые уже «поступили» в один процессор, но еще не «поступи, в другой, во избежание возможных ошибок, на каждом шаге, для каждого процессора фомируется новая очередь «поступивших» процессов. В конце шага эта очередь очищается.
Отличие алгоритма SJF от описанного выше LIFO заключается в том, что обслуживаться должен не последний поступивший процесс, а процесс с наименьшей длинной. Таким образом обслуживание при алгоритме обслуживания SJF отличается ли в способе сортировке очереди «поступивших» процессов. Алгоритм RR имеет наибольшие отличия от всех остальных алгоритмов.