Контрольная работа по предмету "Информатика, программирование"


Реализация управления процессами и ресурсами многопрограммных операционных систем на уровне диспетчеризации

Государственный
комитет Российской Федерации по высшему образованию



Московский
государственный институт электроники и математики



Кафедра систем
автоматизации проектирования



















Отчёт по лабораторным
работам



“Реализация управления
процессами и ресурсами многопрограммных операционных систем на уровне
диспетчеризации”



по дисциплине



“Системы программирования и
алгоритмизации вычислений”





Исполнитель: студент
Гамов А.В.



Руководитель: Витушкин
П.И.





















Москва 2002







Отчёт по лабораторной
работе 1



 



Задание на лабораторную работу





Осуществить
формирование средств представления процессов и механизмов управления их
состоянием на уровне диспетчеризации.



Необходимо
разработать алгоритм и написать программу, имитирующую работу простейшей ОС
(“система”) – которая должна выполнять следующие действия:



-           
формирование
дескрипторов процессов, вводимых в “систему”.



-           
определение
состояний, в котором находятся все известные “системе” процессы.



-           
Формирование
и ведение списочных структур (“очередей”) дескрипторов на основании их
состояний, приоритетов и используемой дисциплины диспетчеризации.



При
формировании дескриптора необходимо осуществить ввод следующей информации:



-           
имя
процесса (символьная строка, содержащая не более 8 символов).



-           
приоритет
процесса (целое число в диапазоне 0-255).



-           
объём
ОП (целое число в диапазоне 032767).



-           
перечень
внешних и периферийных устройств [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:\MadSOFT\Lab.OS\Laba1\1.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:\MadSOFT\Lab.OS\Laba1\1.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=1012023



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:\MadSOFT\Lab.OS\Laba3\3.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=1012023



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:\MadSOFT\Lab.OS\Laba3\3.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)Все
процессы получают доступ к ресурсам. И ресурсы освобождаются.



Не сдавайте скачаную работу преподавателю!
Данную контрольную работу Вы можете использовать для выполнения своих заданий.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :