
- •Содержание
- •1. Введение и структура лабораторного практикума
- •2. Основные требования, предъявляемые к разрабатываемым программам
- •3. Краткие сведения о проблемной области выполняемых работ
- •Пассивные состояния
- •Активные состояния
- •Операции создания/удаления процессов
- •Операции планирования процессов
- •Операции диспетчеризации процессов
- •Удаление_п
- •Выполнение
- •Возобновление
- •4. Задания для лабораторных работ
- •4.1 Лабораторная работа № 1. ”Программная реализация средств представления и управления процессами в многопрограммных ос”
- •4.1.1. Формирование дескрипторов процессов
- •4.1.2. Определение состояний "поступивших" процессов
- •4.1.3. Формирование и ведение списков дескрипторов процессов
- •4.1.4. Принцип имитации развития процессов
- •4.1.5. Организация взаимодействия с "системой"
- •4.1.5.1. Описание состава и назначения команд пользователя "Система" должна выполнять следующие команды пользователя:
- •4.1.5.2. Основные требования к форме ввода команд "системы"
- •Формирование дескриптора
- •Протокол работы программы
- •4.1.6. Порядок выполнения л.Р. № 1
- •4.1.7. Требования к отчету по л.Р. № 1
- •4.1.8. Контрольные вопросы к л.Р. № 1
- •4.2. Лабораторная работа № 2. "Изучение дисциплин диспетчеризации процессов в многопрограммных ос".
- •4.2.1. Краткое описание схемы одноочередной круговой (циклической) диспетчеризации.
- •Конец … начало
- •З Конец … начало Выполнениеапуск Выбор Завершение
- •4.2.2. Краткое описание алгоритма многоочередной диспетчеризации для операцииИстечение_кванта.
- •Конец … начало
- •4.2.3. Имитация развития процессов при выполнении л. Р. № 2
- •4.2.4. Порядок выполнения л.Р. № 2
- •4.2.5. Требования к отчету по л.Р. № 2
- •4.2.6. Контрольные вопросы к л.Р. № 2
- •4.3. Лабораторная работа № 3. "Реализация дисциплин диспетчеризации процессов с учетом приоритетов".
- •4.3.1. Краткое описание схемы многоочередной диспетчеризации с учетом приоритета.
- •Выполнение
- •Конец … начало
- •4.3.2. Порядок выполнения л.Р. № 3
- •4.3.3. Требования к отчету по л.Р. № 3.
- •4.3.4. Контрольные вопросы к л.Р. № 3
- •4.4. Лабораторная работа № 4. "Реализация дисциплины диспетчеризации процессов с учетом запросов ввода/вывода"
- •4.4.1. Краткое описание схемы диспетчеризации процессов с учетом ввода/вывода и ее реализации.
- •4.4.2. Порядок выполнения и требования к отчету л.Р. № 4
- •4.4.3. Контрольные вопросы к л.Р. № 4
4.1.5.1. Описание состава и назначения команд пользователя "Система" должна выполнять следующие команды пользователя:
[1]. "Сформировать дескриптор процесса".
По этой команде "система" должна обеспечить запрос и ввод значений параметров дескриптора процесса, осуществляя проверку корректности вводимых величин (см. пункт 4.1.1.). В случае неверного ввода необходимо сформировать диагностическое сообщение и предоставить пользователю возможность повторить ввод. После завершения ввода значений, помещаемых в дескриптор процесса, эти данные, представляемые в программе, например, в виде записи, должны разместиться в соответствующем списке. "Система" должна для каждого поступившего процесса определить состояние на данный момент времени и разместить его в списке готовых или ожидающих процессов в соответствии с реализуемой дисциплиной диспетчеризации. Отметим, что процесс, соответствующий первому введенному дескриптору, будет находиться в состоянии выполнение.
[2]. "Завершить выполнение активного процесса".
Поскольку рассматриваемый принцип имитации не предусматривает какого-либо реального выполнения процессов в "системе", процесс из состояния выполнения выводится только по этой команде пользователя. В результате поступления такой команды выполняемый процесс переводится из активного состояния... и его дескриптор безвозвратно "уничтожается". Данная команда вызывает необходимость просмотра списков ожидания и готовности для определения процессов, которые в соответствии с реализуемой дисциплиной диспетчеризации должны быть переведены в состояние готовность, а также для определения процесса, которому будет выделен ЦП (т.е. процесса, который должен быть переведен в состояние выполнение). Подчеркнем, что при переформировании списков необходимо придерживаться принципа HPF=FCFS.
[3]. "Изменить приоритет процесса".
При поступлении данной команды "система" должна располагать информацией о том, у какого процесса должен быть изменен приоритет. При составлении программы необходимо в той или иной форме предусмотреть запрос имени процесса, в том случае, если это имя не указывается сразу при вводе команды. Запрос нового значения приоритета должен сопровождаться выводом старого (действующего до поступления команды) значения этой характеристики процесса. Рассматриваемая команда в отношении процесса, находящегося в состоянии выполнение, должна осуществлять только уменьшение приоритета, (но данный процесс при этом не должен изменять свое состояние), при запросе увеличения приоритета должно формироваться сообщение об ошибочных действиях пользователя. Выполнение описываемой команды может вызывать необходимость переформирование списков готовых и ожидающих процессов в соответствии с правилом HPF, однако состав как одного, так и другого списка не изменится.
В ходе выполнения лабораторной работы кроме описанных выше трех "управляющих" команд "системы" должны быть реализованы следующие информационные команды:
[4]. "Вывести имя выполняемого процесса",
[5]. "Вывести список имен готовых процессов",
[6]. "Вывести список имен ожидающих процессов",
[7]. "Вывести список имен всех процессов",
[8]. "Вывести дескриптор процесса".
Команды, вызывающие отображение списковых структур (NN-7), могут быть реализованы в виде одной команды, с параметрами, уточняющими запрашиваемое действие. Впрочем, допустимо любое другое эквивалентное решение. Команда № 8 – "Вывести дескриптор процесса" должна осуществлять запрос имени процесса, параметры которого подлежат отображению, в случае некорректного ввода имени следует сформировать соответствующее сообщение и предоставить возможность повторить ввод имени интересующего процесса, при отсутствии ввода (при нажатии только клавиши Enter) - вывести информацию об активном процессе.
Последнюю группу команд, подлежащих реализации в ходе выполнения первой лабораторной работы, составляют "служебные" команды:
[9]. "Формировать протокол работы",
[10]. "Завершить работу с программой".
Формирование протокола работы осуществляется путем помещения в текстовый файл (дублирования) всех поступающих в "систему" команд пользователя и всей информации, выводимой в ответ на эти команды "системой" на экран видеотерминала. При выполнении команды № 9 необходимо произвести запрос имени файла протокола и открыть соответствующий файл, поместив в него идентификатор автора программы, дату работы и номер лабораторной работы. Повторный ввод этой команды в ходе одного сеанса работы с программой должен приводить к выдаче соответствующего диагностического сообщения. Последняя команда (№ 10) предназначена для корректного завершения работы Вашей программы; после ее поступления в "систему" в протокол работы необходимо занести информацию о количестве выполненных процессов и их имена, произвести закрытие файла протокола и закончить выполнение программы.