Реализация управления процессами и ресурсами многопрограммных операционных систем на уровне диспетчеризации
Определить состояние поступивших процессов и переместить их в подходящий список и выполнить соответствующую принципу HPF=FCFS сортировку и перестановку состояний если активные (занявшие нужные процессы ресурсы) ниже по приоритету. Государственный комитет Российской Федерации по высшему образованию Московский государственный институт электроники и математики Кафедра систем автоматизации… Читать ещё >
Реализация управления процессами и ресурсами многопрограммных операционных систем на уровне диспетчеризации (реферат, курсовая, диплом, контрольная)
Государственный комитет Российской Федерации по высшему образованию Московский государственный институт электроники и математики Кафедра систем автоматизации проектирования Отчёт по лабораторным работам
«Реализация управления процессами и ресурсами многопрограммных операционных систем на уровне диспетчеризации»
по дисциплине
«Системы программирования и алгоритмизации вычислений»
Исполнитель: студент Гамов А.В.
Руководитель: Витушкин П.И.
Москва 2002
Отчёт по лабораторной работе 1
Задание на лабораторную работу
Осуществить формирование средств представления процессов и механизмов управления их состоянием на уровне диспетчеризации.
Необходимо разработать алгоритм и написать программу, имитирующую работу простейшей ОС («система») — которая должна выполнять следующие действия:
— формирование дескрипторов процессов, вводимых в «систему».
— определение состояний, в котором находятся все известные «системе» процессы.
— Формирование и ведение списочных структур («очередей») дескрипторов на основании их состояний, приоритетов и используемой дисциплины диспетчеризации.
При формировании дескриптора необходимо осуществить ввод следующей информации:
— имя процесса (символьная строка, содержащая не более 8 символов).
— приоритет процесса (целое число в диапазоне 0−255).
— объём ОП (целое число в диапазоне 32 767).
— перечень внешних и периферийных устройств [DISK0,DISK1,TAPE0,TAPE1,PRINT, PLTTR] (не более трех для каждого процесса)
— имя файла если выбрано внешнее устройство хранения данных (символьная строка, содержащая не более 8 символов).
Определить состояние поступивших процессов и переместить их в подходящий список и выполнить соответствующую принципу HPF=FCFS сортировку и перестановку состояний если активные (занявшие нужные процессы ресурсы) ниже по приоритету.
Разработать интерфейс программы.
Постановка задачи
Дано:
дескриптор — см. задание.
Требуется:
список1 или дескриптор1 — выполняемый процесс.
список2 — готовые процессы.
список3 — ожидающие процессы.
Интерфейс.
Структура программы
Назначение подпрограмм
Newproc — формирование дескриптора
Delproc — удаление дескриптора
EditProc — редактирование дескриптора.
ReRun — проверка на возможность запуска другого более приоритетного процесса.
Findplace — проверяет возможность перевести процессы из состояния ожидания в готовность или выполнение.
Sortproc — сортировка по HPF=FCFS.
Endproc — удаление выполняемого процесса (дескриптора).
Алгоритм модулей
Sort — производится объектом TListView.
Newproc, Endproc, Delproc, Editproc — описания не требуется ?).
Findplace:
{определение ресурсов выделенных }
цикл от j:=0 до ListView1. Count-1
если {все ресурсы доступны} то
ListView2.Add:=ListView1.Items.Item[j-k];
Inc (k);
всё
{sortproc — вызывается объектами TlistView автономно при каждом изменении}
к.ц.
ReRun:
если ListView3.Items.Item[0]=nil то
если {приоритет выполняемого меньше приоритета ListView2.Items.Item[0]} то
{ListView3.Items.Item[0] меняется местами с ListView2.Items.Item[0]}
всё
всё
Описание тестового примера
Так как в первой лабораторной не предволагается никаких дополнительных операции кроме запуска сортировки и завершения, то тест очень прост:
NewProc:\ ID: FF name: proces1 priority:0 mem:512 device1: () device2: () device3: ()
NewProc:\ ID: FF name: proces2 priority:0 mem:512 device1: PRINT () device2: () device3: ()
NewProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: () device3: ()
StartEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: () device3: ()
EndEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: PLTTR () device3: ()
StartEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: PLTTR () device3: ()
EndEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: () device2: PLTTR () device3: ()
NewProc:\ ID: FE name: proces4 priority:1 mem:512 device1: PRINT () device2: PLTTR () device3: ()
DelProc:\ ID: FF name: proces2 priority:0 mem:512 device1: PRINT () device2: () device3: ()
DelProc:\ ID: FF name: proces3 priority:0 mem:512 device1: () device2: PLTTR () device3: ()
Тест показывает все доступные действия над дескрипторами кроме увеличения уменьшения приоритета, но при этом происходят те же действия так как модуль работает независимо от действий, а использует только значения дескрипторов для сортировки и проверок.
При освобождение ресурсов процессы переходят из состояния ожидания в состояние готовности.
При изменение приоритета происходит проверка на возможность перевода данного процесса в состояние выполнения.
Результаты тестового примера (протокол):
[LabOS]
autor_name=mad_daemon
autor_team=MadSOFT
autor_group=AP-31
lab_version=1.0.0.1
lab_type=module.OS
protocol_name=C:MadSOFTLab.OSLaba11.txt
protocol_date=10.09.02
protocol_time=20:19:12
[Protocol]
mess0=[10.09.02|20:19:26]NewProc:\ ID: FF name: proces1 priority:0 mem:512 device1: () device2: () device3: ()
mess1=[10.09.02|20:19:51]NewProc:\ ID: FF name: proces2 priority:0 mem:512 device1: PRINT () device2: () device3: ()
mess2=[10.09.02|20:20:07]NewProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: () device3: ()
mess3=[10.09.02|20:20:11]StartEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: () device3: ()
mess4=[10.09.02|20:20:32]EndEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: PLTTR () device3: ()
mess5=[10.09.02|20:25:31]StartEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: PLTTR () device3: ()
mess6=[10.09.02|20:25:33]EndEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: () device2: PLTTR () device3: ()
mess7=[10.09.02|20:25:53]NewProc:\ ID: FE name: proces4 priority:1 mem:512 device1: PRINT () device2: PLTTR () device3: ()
mess8=[10.09.02|20:26:43]DelProc:\ ID: FF name: proces2 priority:0 mem:512 device1: PRINT () device2: () device3: ()
mess9=[10.09.02|20:26:46]DelProc:\ ID: FF name: proces3 priority:0 mem:512 device1: () device2: PLTTR () device3: ()
[Close]
process_run=2
process_count=4
process_edit=2
process_del=2
process_end=0
protocol_mess=10
protocol_date=10.09.02
protocol_time=20:27:03
Ответы на контрольные вопросы
I группа
1)Сформулировать определение состояния процесса?
Определение состояний процессов, поступивших на уровень диспетчеризации осуществляется путём анализа требуемых процессу ресурсов и свободных ресурсов.
Если все ресурсы для данного процесса не включая ЦП можно выделить, то он переводится в состояние готовности, а если и ЦП свободен то процесс переводится в состояние выполнения. Иначе в ожидание его.
2)Охарактеризуйте причины изменения состояния процессов в ВС?
— Поступление процесса с более высоким приоритетом, либо изменение приоритета.
— Освобождение ресурса.
— Запрос ресурса.
— Окончание (удаление) процесса.
— Истечение кванта.
3)Что является причиной изменения процесса в разработанной вами «системе»?
— Поступление процесса с более высоким приоритетом, либо изменение приоритета.
(Down, Up, Edit)
— Освобождение ресурса.
(Edit)
— Удаление (завершение выполняемого) процесса.
(Ydalit, EndProc)
Отчёт по лабораторной работе 2
Задание на лабораторную работу
Осуществить формирование средств представления процессов и механизмов управления их состоянием на уровне диспетчеризации.
Заменить принцип сортировки списков HPF=FCFS на HPF=SM=FCFS.
Создать «Изменение кванта».
Доработать интерфейс программы.
Постановка задачи
Дано:
дескриптор — см. задание.
Требуется:
список1 или дескриптор1 — выполняемый процесс.
список2 — готовые процессы.
список3 — ожидающие процессы.
Интерфейс.
Структура программы
Назначение подпрограмм:
Newproc — формирование дескриптора
Delproc — удаление дескриптора
EditProc — редактирование дескриптора.
ReRun — проверка на возможность запуска другого более приоритетного процесса или с равным приоритетом.
Findplace — проверяет возможность перевести процессы из состояния ожидания в готовность или выполнение.
Sortproc — сортировка по HPF=FCFS.
Endproc — удаление выполняемого процесса (дескриптора).
!Timeproc — таймер
Алгоритм модулей
Sort — производится объектом TListView.
Newproc, Endproc, Delproc, Editproc — описания не требуется ?).
Findplace:
{определение ресурсов выделенных }
цикл от j:=0 до ListView1. Count-1
если {все ресурсы доступны} то
ListView2.Add:=ListView1.Items.Item[j-k];
Inc (k);
всё
{sortproc — вызывается объектами TlistView автономно при каждом изменении}
к.ц.
ReRun:
если ListView3.Items.Item[0]=nil то
если {абсолютный приоритет выполняемого меньше приоритета ListView2.Items.Item[0]} то
{ListView3.Items.Item[0] меняется местами с ListView2.Items.Item[0]}
всё
всё
так как сортировка производится методами винды и при этом обрабатываются
только строки из обного столбца, то добавлен столбец # в котором находится
HEX (255-приоритет)+HEX (память), что позволяет быстро сортировать
по принципу HPF=SM=FCFS.
Описание тестового примера
Так как в первой лабораторной не предволагается никаких дополнительных операции кроме запуска сортировки и завершения, то тест очень прост:
NewProc:\ ID: FF name: proces1 priority:0 mem:512 device1: () device2: () device3: ()
NewProc:\ ID: FF name: proces2 priority:0 mem:12 device1: PRINT () device2: () device3: ()
NewProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: () device3: ()
StartEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: () device3: ()
EndEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: PLTTR () device3: ()
StartEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: PLTTR () device3: ()
EndEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: () device2: PLTTR () device3: ()
NewProc:\ ID: FE name: proces4 priority:1 mem:512 device1: PRINT () device2: PLTTR () device3: ()
DelProc:\ ID: FF name: proces2 priority:0 mem:512 device1: PRINT () device2: () device3: ()
DelProc:\ ID: FF name: proces3 priority:0 mem:512 device1: () device2: PLTTR () device3: ()
Тест показывает все доступные действия над дескрипторами кроме увеличения уменьшения приоритета, но при этом происходят те же действия так как модуль работает независимо от действий, а использует только значения дескрипторов для сортировки и проверок.
При освобождение ресурсов процессы переходят из состояния ожидания в состояние готовности.
При изменение приоритета происходит проверка на возможность перевода данного процесса в состояние выполнения.
При нажатии на кнопку RunOS запускается таймер.
При нажатии на кнопку StopOS таймер останавливается.
Результаты тестового примера (протокол)
[LabOS]
autor_name=mad_daemon
autor_team=MadSOFT
autor_group=AP-31
lab_version=1.0.0.1
lab_type=module.OS
protocol_name=C:MadSOFTLab.OSLaba11.txt
protocol_date=10.09.02
protocol_time=20:19:12
[Protocol]
mess0=[10.09.02|20:19:26]NewProc:\ ID: FF name: proces1 priority:0 mem:512 device1: () device2: () device3: ()
mess1=[10.09.02|20:19:51]NewProc:\ ID: FF name: proces2 priority:0 mem:12 device1: PRINT () device2: () device3: ()
mess2=[10.09.02|20:20:07]NewProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: () device3: ()
mess3=[10.09.02|20:20:11]StartEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: () device3: ()
mess4=[10.09.02|20:20:32]EndEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: PLTTR () device3: ()
mess5=[10.09.02|20:25:31]StartEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: PRINT () device2: PLTTR () device3: ()
mess6=[10.09.02|20:25:33]EndEditProc:\ ID: FF name: proces3 priority:0 mem:512 device1: () device2: PLTTR () device3: ()
mess7=[10.09.02|20:25:53]NewProc:\ ID: FE name: proces4 priority:1 mem:512 device1: PRINT () device2: PLTTR () device3: ()
mess8=[10.09.02|20:26:43]DelProc:\ ID: FF name: proces2 priority:0 mem:512 device1: PRINT () device2: () device3: ()
mess9=[10.09.02|20:26:46]DelProc:\ ID: FF name: proces3 priority:0 mem:512 device1: () device2: PLTTR () device3: ()
[Close]
process_run=25
process_count=4
process_edit=2
process_del=2
process_end=0
protocol_mess=10
protocol_date=10.09.02
protocol_time=20:27:03
Ответы на контрольные вопросы
1)Для обработки пакетных данных потому — что схема одноочередной диспетчеризации для операции Истечение кванта происходит по принципу FCFS, то есть процесс который раньше попал в систему раньше получит ЦП, а если он ожидает ресурс, то он пропускает другие процессы с более малым требованием к времени получения ресурса.
2) Более быстрые переходы => большая эффективность, но при слишком малой размерности кванта времени будут тратиться большая часть работы ЦП на обработку списков процессов, а на не саму их работу => квант времени должен зависит от мощности ЦП.
От длина кванта зависит переход от процесса к процессу => если какому либо процессу потребуется ресурс при выполнение, то он перейдёт в состояние ожидания операции ввода вывода, если же длина кванта больше то он и перейдёт позже => все программы работающие с ресурсами будут не только притормаживаться из-за времени операции ввода вывода, но и [времени поступления процесса в готовые] - [истечение кванта2-истечение кванта1] * [программы перед ним].
3)Наиболее короткие процессы.
4) (-)Много время на обработку списка процессов.
(+)Более быстрое выполнение коротих процессов.
Отчёт по лабораторной работе 3
Задание на лабораторную работу
Изучение способов приоритетной диспетчеризации активных процессов и их программной реализации.
Добавить изменение состояния процессов с меньшим приоритетом, если его ресурсы требуются процессу с большим приоритетом.
Добавить приоритетную остановку.
Доработать интерфейс программы.
Постановка задачи
Дано:
дескриптор — см. задание.
Требуется:
список1 или дескриптор1 — выполняемый процесс.
список2 — готовые процессы.
список3 — ожидающие процессы.
Структура программы
Назначение подпрограмм:
Newproc — формирование дескриптора
Delproc — удаление дескриптора
EditProc — редактирование дескриптора.
ReRun — проверка на возможность запуска другого более приоритетного процесса или с равным приоритетом.
Findplace — проверяет возможность перевести процессы из состояния ожидания в готовность или выполнение.
Sortproc — сортировка по HPF=FCFS.
Endproc — удаление выполняемого процесса (дескриптора).
!Timeproc — таймер
Алгоритм модулей
Sort — производится объектом TListView.
Newproc, Endproc, Delproc, Editproc — описания не требуется ?).
Findplace:
{определение ресурсов выделенных }
цикл от j:=0 до ListView1. Count-1
если {все ресурсы доступны} то
ListView2.Add:= ListView1.Items.Item[j-k];
Inc (k);
иначе если {процессы которые используют требуемые ресурсы имеют меньший приоритет} то
ListView2.Add:= ListView1.Items.Item[j-k];
ListView1.Add:={процессы занявшие ресурсы}
Inc (k);
всё
всё
{sortproc — вызывается объектами TlistView автономно при каждом изменении}
к.ц.
ReRun:
если ListView3.Items.Item[0]=nil то
если {абсолютный приоритет выполняемого меньше приоритета ListView2.Items.Item[0]} то
{ListView3.Items.Item[0] меняется местами с ListView2.Items.Item[0]}
всё
всё
так как сортировка производится методами винды и при этом обрабатываются только строки из обного столбца, то добавлен столбец # в котором находится
HEX (255-приоритет)+HEX (память), что позволяет быстро сортировать
по принципу HPF=SM=FCFS.
Добавления только в Findplace.
Описание тестового примера
NewProc:\ ID: FF0200 name: proces1 priority:0 mem:512 device1: () device2: () device3: ()
NewProc:\ ID: FF01FF name: proces2 priority:0 mem:511 device1: PRINT () device2: () device3: ()
NewProc:\ ID: FE03E8 name: proces3 priority:1 mem:1000 device1: PRINT () device2: () device3: ()
NewProc:\ ID: FE03E8 name: proces4 priority:1 mem:1000 device1: () device2: PLTTR () device3: ()
DelProc:\ ID: FE03E8 name: proces3 priority:1 mem:1000 device1: PRINT () device2: () device3: ()
NewProc:\ ID: FD03E8 name: proces5 priority:2 mem:1000 device1: PRINT () device2: PLTTR () device3: ()
При освобождение ресурсов процессы переходят из состояния ожидания в состояние готовности.
При изменение приоритета происходит проверка на возможность перевода данного процесса в состояние выполнения.
При нехватке ресурсов проверяется возможность перевода процессов с более низким приоритетом в состояние ожидания.
Результаты тестового примера (протокол)
[LabOS]
autor_name=mad_daemon
autor_team=MadSOFT
autor_group=AP-31
autor_icq=1 012 023
autor_mail=mad_daemon@xakep.ru
autor_oldurl=http://netstorm.nm.ru
autor_tmpurl=http://saprophit.nm.ru
lab_version=1.0.0.3
lab_type=module.OS
protocol_name=C:MadSOFTLab.OSLaba33.txt
protocol_date=10.09.02
protocol_time=23:39:48
[Protocol]
mess0=[10.09.02|23:39:55]NewProc:\ ID: FF0200 name: proces1 priority:0 mem:512 device1: () device2: () device3: ()
mess1=[10.09.02|23:40:03]NewProc:\ ID: FF01FF name: proces2 priority:0 mem:511 device1: PRINT () device2: () device3: ()
mess2=[10.09.02|23:40:13]NewProc:\ ID: FE03E8 name: proces3 priority:1 mem:1000 device1: PRINT () device2: () device3: ()
mess3=[10.09.02|23:40:29]NewProc:\ ID: FE03E8 name: proces4 priority:1 mem:1000 device1: () device2: PLTTR () device3: ()
mess4=[10.09.02|23:40:37]DelProc:\ ID: FE03E8 name: proces3 priority:1 mem:1000 device1: PRINT () device2: () device3: ()
mess5=[10.09.02|23:40:52]NewProc:\ ID: FD03E8 name: proces5 priority:2 mem:1000 device1: PRINT () device2: PLTTR () device3: ()
[Close]
process_run=5
process_count=5
process_edit=0
process_del=1
process_end=0
protocol_mess=6
protocol_date=10.09.02
protocol_time=23:40:56
Ответы на контрольные вопросы
1)При относительном приоритете самый последний поступивший всегда попадает в 1-ю очередь.
При абсолютном если он выше выполняемого то он заканчивает выполняемый и становится на его место.
2) «Запуск» «Истечение кванта» «Изменение (Edit)»
3)Сложность реализации поиска изменения состояния менее приоритетных процессов занявших ресурсы.
Отчёт по лабораторной работе 4
Задание на лабораторную работу
Изучение диспетчеризации процессов с учётом выполнения операций ввода вывода, алгоритмическая и программная реализация данной дисциплины диспетчеризации.
Учитывать операции ввода вывода, поступаемые от выполняемого процесса.
Доработать интерфейс программы.
Постановка задачи
Дано:
дескриптор — см. задание.
Требуется:
список1 или дескриптор1 — выполняемый процесс.
список2 — готовые процессы.
список3 — ожидающие процессы.
Структура программы
Назначение подпрограмм:
Newproc — формирование дескриптора
Delproc — удаление дескриптора
EditProc — редактирование дескриптора.
ReRun — проверка на возможность запуска другого более приоритетного процесса или с равным приоритетом.
Findplace — проверяет возможность перевести процессы из состояния ожидания в готовность или выполнение.
Sortproc — сортировка по HPF=FCFS.
Endproc — удаление выполняемого процесса (дескриптора).
!Timeproc — таймер
Алгоритм модулей
Sort — производится объектом TListView.
Newproc, Endproc, Delproc, Editproc — описания не требуется ?).
Findplace:
{определение ресурсов выделенных }
цикл от j:=0 до ListView1. Count-1
если {все ресурсы доступны} то
ListView2.Add:= ListView1.Items.Item[j-k];
Inc (k);
иначе если {процессы которые используют требуемые ресурсы имеют меньший приоритет} то
ListView2.Add:= ListView1.Items.Item[j-k];
ListView1.Add:={процессы занявшие ресурсы}
Inc (k);
всё
всё
{sortproc — вызывается объектами TlistView автономно при каждом изменении}
к.ц.
ReRun:
если ListView3.Items.Item[0]=nil то
если {абсолютный приоритет выполняемого меньше приоритета ListView2.Items.Item[0]} то
{для ListView3.Items. Item[0] изменяется значение ввода вывода}
{если оно становится равно нулю то все
ресурсы у данного процесса убираются}
{ ListView3.Items. Item[0]меняется местами с ListView2.Items.Item[0]}
всё
всё
так как сортировка производится методами винды и при этом обрабатываются
только строки из обного столбца, то добавлен столбец # в котором находится
HEX (255-приоритет)+HEX (память), что позволяет быстро сортировать
по принципу HPF=SM=FCFS.
Описание тестового примера
NewProc:\ ID: FF0200 name: proces1 priority:0 mem:512 device1: () device2: () device3: ()inout:0
NewProc:\ ID: FF01FF name: proces2 priority:0 mem:511 device1: PRINT () device2: () device3: ()inout:10
NewProc:\ ID: FE03E8 name: proces3 priority:1 mem:1000 device1: PRINT () device2: () device3: ()inout:10
NewProc:\ ID: FE03E8 name: proces4 priority:1 mem:1000 device1: () device2: PLTTR () device3: ()inout:10
DelProc:\ ID: FE03E8 name: proces3 priority:1 mem:1000 device1: PRINT () device2: () device3: ()inout:10
NewProc:\ ID: FD03E8 name: proces5 priority:2 mem:1000 device1: PRINT () device2: PLTTR () device3: ()inout:9
При освобождение ресурсов процессы переходят из состояния ожидания в состояние готовности.
При изменение приоритета происходит проверка на возможность перевода данного процесса в состояние выполнения.
При нехватке ресурсов проверяется возможность перевода процессов с более низким приоритетом в состояние ожидания.
Операция ввода вывода происходит в момент истечения кванта.
Операция запрос ресурсов ввода вывода в меню изменить.
Для теста просто нужно запустить систему и ждать обнуления значения ввода вывода.
Результаты тестового примера (протокол)
[LabOS]
autor_name=mad_daemon
autor_team=MadSOFT
autor_group=AP-31
autor_icq=1 012 023
autor_mail=mad_daemon@xakep.ru
autor_oldurl=http://netstorm.nm.ru
autor_tmpurl=http://saprophit.nm.ru
lab_version=1.0.0.3
lab_type=module.OS
protocol_name=C:MadSOFTLab.OSLaba33.txt
protocol_date=10.09.02
protocol_time=23:39:48
[Protocol]
mess0=[10.09.02|23:39:55]NewProc:\ ID: FF0200 name: proces1 priority:0 mem:512 device1: () device2: () device3: ()inout:0
mess1=[10.09.02|23:40:03]NewProc:\ ID: FF01FF name: proces2 priority:0 mem:511 device1: PRINT () device2: () device3: ()inout:10
mess2=[10.09.02|23:40:13]NewProc:\ ID: FE03E8 name: proces3 priority:1 mem:1000 device1: PRINT () device2: () device3: ()inout:10
mess3=[10.09.02|23:40:29]NewProc:\ ID: FE03E8 name: proces4 priority:1 mem:1000 device1: () device2: PLTTR () device3: ()inout:10
mess4=[10.09.02|23:40:37]DelProc:\ ID: FE03E8 name: proces3 priority:1 mem:1000 device1: PRINT () device2: () device3: ()inout:10
mess5=[10.09.02|23:40:52]NewProc:\ ID: FD03E8 name: proces5 priority:2 mem:1000 device1: PRINT () device2: PLTTR () device3: ()inout:9
[Close]
process_run=5
process_count=5
process_edit=0
process_del=1
process_end=0
protocol_mess=6
protocol_date=10.09.02
protocol_time=23:40:56
Ответы на контрольные вопросы
1)[DISK0,DISK1,TAPE0,TAPE1,PRINT, PLTTR]: харды, стриммеры, принтетр, плотер.
2) _rerun; и две рекурсивные функции проверки.
3)Если новый процесс запрашивает ресурс то он с начало находится в состояние ожидания и лишь после операции выделения ресурса переход в состояние готовый.
4)Если к процессу применить операцию выделить ресурс то он переходит в состояние ожидания (дальше п.3).
5)В первой лабе нет удаления использования ресурса в результате выполнения всех команд ввода вывода => есть только одна возможность изменить состояние ждущего процесса (выполнить операцию выделить процесс) это удалить (а у меня и изменить) процесс.
6)(+)то что следующий процесс может использовать занятые устройства.
7)Все процессы получают доступ к ресурсам. И ресурсы освобождаются.