Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Порядок выполнения и защиты курсовых работ.doc
Скачиваний:
6
Добавлен:
04.12.2018
Размер:
995.33 Кб
Скачать

4. Объектно-ориентированное проектирование и программирование

  1. Проектирование вывода

В качестве результатов моделирования (выводимых данных) рассматриваются;

    1. время ожидания каждого из процессов;

    2. время нахождения в системе каждого из процессов;

    3. среднее время ожидание процессов в системе;

    4. среднее время нахождения процессов в системе;

    5. время простоя каждого процессора;

    6. время работы каждого процессора;

    7. время, затраченное на смену контекста каждого процессора;

    8. среднее время простоя процессоров в системе;

    9. среднее время работы процессоров в системе;

    10. среднее время, затраченное на смену контекста в системе;

    11. диаграмма обслуживания процессов.

  1. Проектирование ввода

Для правильного функционирования системы необходим ввод следующих данны:

  1. количество процессоров

  2. время на смену контекста

  3. количество приоритетов

  4. время кванта

  5. количество процессов

  6. время прихода процесса в систему

  7. время обслуживания процесса

  8. приоритет процесса

ОПРЕДЕЛЕНИЕ ФУНКЦИОНАЛЬНЫХ СОСТАВЛЯЮЩИХ МОДЕЛИ

Систему составляют три основные сущности: Система, Процессор, Процесс. Основная обработка данных производится объектом Система. Система принимает данные о процессорах и процессах от пользователя, создает очереди процессоров и процессов, передает процессорам и процессам необходимые данные, осуществляет необходимую обработку данных. Объект Процессор содержит всю необходимую информацию (как исходную, так и вычисляемую) о процессорах. Объект Процесс содержит всю необходимую информацию (как исходную, так и вычисляемую) о процессах.

  1. Проектирование обработки данных

При инициализации системы процессы и процессоры формируются в очереди. Объект система начинает обработку этих очередей. В ходе обработки основной задачей является решить, какой процесс должен получить процессорное время, а также какой из процессоров должен это время выделить. Этот выбор зависит от алгоритма обслуживания. Так, при алгоритме FIFO достаточно перегруппировать процесс в очереди по времени прихода и обслуживать поочередно.

Для других алгоритмов задача существенно усложняется, так как в алгоритме LI] система должна брать процесс, пришедший последним. Но также нельзя брать процесс, который еще «не пришел», т.е. необходимо ввести некоторое процессорное Bf мя, с которым будут сравниваться времена прихода процессов в систему. Для удобства обработка будет вестись до тех пор, пока в очереди будут «не обслуженные» процесс. Для простоты в определение процесса необходимо будет ввести индикатор, который и будет говорить системе, обслуживался ли уже этот процесс, или еще нет.

Кроме того, предполагается, что система будет многопроцессорной. Поэтому на каждом шаге необходимо будет определить, какой из процессоров должен обслужить следующий процесс. Для этого в начале каждого шага очередь процессоров будет сортироваться процессорному времени, процессор с наименьшим процессорным временем и будет бр; следующий процесс. После того как определен процессор обслуживания, необходимо определить процесс для обслуживания. По-видимому, должна будет формироваться резервная очередь «пришедших» процессов, которая будет отсортирована по времени прихода процессора в систему. Из нее должен будет последний пришедший процесс.

Данная очередь формируется на основе сравнения времени прихода процесса в систему и процессорного времени отобранного процессора. Возможен случай, когда в очереди не идет не одного процесса, т.е. существует разрыв между временем прихода процесса и процессорным временем (процессор простаивал). В этом случае из общей очереди берется первый пришедший процесс, а время простоя процессора продвигается на величину разрыва, вместе со временем простоя продвигается и процессорное время. Поскольку в системе участвует несколько процессоров, и их процессорное время движется не синхронно, то возможно шествование процессов, которые уже «поступили» в один процессор, но еще не «поступи, в другой, во избежание возможных ошибок, на каждом шаге, для каждого процессора фомируется новая очередь «поступивших» процессов. В конце шага эта очередь очищается.

Отличие алгоритма SJF от описанного выше LIFO заключается в том, что обслуживаться должен не последний поступивший процесс, а процесс с наименьшей длинной. Таким образом обслуживание при алгоритме обслуживания SJF отличается ли в способе сортировке очереди «поступивших» процессов. Алгоритм RR имеет наибольшие отличия от всех остальных алгоритмов.

Обработка процессов здесь происходит не полностью, как во всех других алгоритмах, а по квантам (определенным промежуткам процессорного времени). Кроме того нужно выбирать не просто первый пришедший процесс, а также ориентироваться на приоритет процесса. Поэтому из общей очереди выбираются сначала процессы с наивысшим приоритетом, сравнивается время поступления и процессорное время, и или процесс «поступил», то к его времени обработки, а также ко времени процесс прибавляется время кванта. Как только время обработки процесса станет равным времени, требуемому на его обработку, можно считать процесс обработанным.

Кроме обработки, на каждом шаге обработки формируется диаграмма обработки процессов. Таким образом, объект система должен вести обработку процессов, а также реализовывать сортировки и проверки, требуемые для определенного алгоритма.