Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Краткое описание схемы диспетчеризации процессов с учетом ввода/вывода и ее реализации



Поступающий в Вашу "систему" процесс после того как его дескриптор сформируется (см. 3.1.1.) должен быть помещен в одно из активных состояний: выполнение, готовность, ожидание (см 3.1.2.). Напомним, что в состояние ожидание процесс может быть помещен:

– для л.р. № 1 - в том случае, если при его поступлении в "систему" нет свободных ресурсов, требуемых для его выполнения;

– для л.р. № 2 - по той же причине;

– для л.р. № 3 - по той же причине, а также в том случае, если в результате выполнения операции "Приоритетная_приостановка" готовый процесс, лишится (части) выделенных ему ресурсов в пользу более приоритетного, вновь поступившего выполняемого процесса.

В ходе выполнения л.р. № 4 необходимо реализовать схему диспетчеризации процессов, осуществляющую перевод процесса, находящегося в состоянии выполнение, в состояние ожидание в том случае, если в "систему" поступил запрос на выполнение операции ввода/вывода. Подобный запрос, по сути, является запросом какого-либо определенного ресурса ВС и вызывает выполнение операции "Запрос_ресурса", затем выполнение операции "Выделение_ресурса", что должно влечь за собой перевод данного процесса из состояния ожидание в состояние готовность. Отметим, что при такой дисциплине диспетчеризации для перевода вновь поступающего процесса в состояние готовность нет необходимости заранее выделять все необходимые ресурсы - действительно, ресурсы ВС, требуемые для выполнения операций ввода/вывода, рационально выделять тогда, когда они действительно понадобятся, а не сразу, после поступления нового процесса на уровень диспетчеризации (т.е. после выполнения операции планиования "Запуск"). Именно такой подход и позволяет реализовать рассматриваемую дисциплину диспетчеризации.

В принципе, источником запроса на ресурс ввода/вывода является выполняемый процесс. Учитывая, что как и в предыдущих работах практикума в л.р. № 4 процесс представлен в "системе" только своим дескриптором, и развитие каждого конкретного процесса осуществляется по ходу поступления команд пользователя, в состав последних (см. 3.1.5.1.) необходимо ввести дополнительную команду:

- "Выполнить операцию ввода-вывода", а дескриптор каждого процесса (см. 3.1.1.) необходимо дополнить полем, содержание количество операций ввода/вывода, осуществляе­мые данным процессом (значение этого поля дескриптора - целое число в диапазоне 0-1024 - должно формироваться в ходе выполнения команды пользователя "Сформировать дескриптор процесса").

Выполнение команды Вашей системы "Выполнить операцию ввода-вывода" должно приводить к тому. что, в отношении выполняемого процесса (единственного в каждый момент времени работы "системы" - поэтому имя процесса в команде указывать не надо) проводятся следующие действия:

- нализируется значение счетчика операций ввода/вывода -если оно равно 0, то формируется сообщение "системы":

для выполняемого процесса <имя_процесса> операции вв/выв. нет!»,

и команда "Выполнить операцию ввода-вывода" завершается;

- в противном случае, количество операций ввода/вывода в соответствующем поле дескриптора данного выполняемого процесса уменъшается на 1, процесс из состояния выполнение переводится в состояние ожидание, путем помещения его дескриптора в списковую структуру oжuдaния_ресурса_ввoдa/вывода в соответствии с дисциплиной HPF=FCFS.

Процесс, дескриптор которого располагается в данной списковой структуре, переводится в состояние готовность в том случае, если ему можно выделить требуемые ресурсы. Момент, когда это будет производиться, можно определить несколькими различными правилами.

Первый вариант. Проверка возможности перевода процессов из состояния ожидания_ресурса_ввода/вывода в состояние готовность осуществляется в ходе выполнения команды пользователя "Выполнить операцию ввода-вывода" как ее составная (завершающая) часть. При возможности выделения требуемого ресурса ввода/вывода какому-либо процессу, находящемуся в состоянии oжидaнuя_pecypca_ввода/вывода, при соблюдении принципа HPF=FCFS, для каждого такого процесса формируется сообщение:

Для процесса <имя_процесса> выделить ресурс <имя_ресурса>? д/н .

При положительном ответе (да, д) "система" выделяет требуемый ресурс, при отрицательном (любом другом) - выделение ресурса не производится, производится переход к другому процессу и/или выполнение команды "Выполнить операцию ввода-вывода" завершается.

Второй вариант. Действия, приведенные при описании первого варианта, производятся не как составная часть команды "Выполнить операцию ввода-вывода", а по специальной команде пользователя "Выделение ресурсов ввода/вывода", моделирующей выполнение операции диспетчеризации процессов "Выделение_ресурса" (см. 3.). При этом команда "Выполнить операцию ввода-вывода" должна получить название. "Запрос ресурсов ввода-вывода".

Третий вариант. Описанные выше действия производятся "автоматически" после поступления в систему любых, скажем, трех команд пользователя. Отдельная команда "Выделение ресурсов ввода/вывода" не вводится.

Четвертый вариант. Выполнение описанных действий по "выделению" ресурсов ввода-вывода инициируется от таймера. Разумеется, команда "Выделение ресурсов ввода/вывода" не вводится.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.