Государственный
комитет Российской Федерации по высшему образованию
Московский
государственный институт электроники и математики
Кафедра систем
автоматизации проектирования
Отчёт по лабораторным
работам
“Реализация управления
процессами и ресурсами многопрограммных операционных систем на уровне
диспетчеризации”
по дисциплине
Исполнитель: студент
Гамов А.В.
Руководитель: Витушкин
П.И.
Отчёт по лабораторной
работе 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 – удаление выполняемого процесса (дескриптора).
Алгоритм
модулей
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)
Осуществить
формирование средств представления процессов и механизмов управления их
состоянием на уровне диспетчеризации.
Заменить
принцип сортировки списков HPF=FCFS на HPF=SM=FCFS.
Создать
“Изменение кванта”.
Доработать
интерфейс программы.
Постановка
задачи
Дано:
дескриптор –
см. задание.
Требуется:
список1 или
дескриптор1 – выполняемый процесс.
список2 –
готовые процессы.
список3 –
ожидающие процессы.
Интерфейс.
Структура
программы
Назначение подпрограмм:
Newproc – формирование дескриптора
Delproc – удаление дескриптора
EditProc – редактирование дескриптора.
ReRun – проверка на возможность запуска другого более приоритетного
процесса или с равным приоритетом.
Findplace – проверяет возможность перевести процессы из состояния
ожидания в готовность или выполнение.
Sortproc – сортировка по HPF=FCFS.
Endproc – удаление выполняемого процесса (дескриптора).
!Timeproc – таймер
Алгоритм
модулей
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 – таймер
Алгоритм
модулей
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)Сложность реализации
поиска изменения состояния менее приоритетных процессов занявших ресурсы.
Изучение
диспетчеризации процессов с учётом выполнения операций ввода вывода,
алгоритмическая и программная реализация данной дисциплины диспетчеризации.
Учитывать
операции ввода вывода, поступаемые от выполняемого процесса.
Доработать
интерфейс программы.
Постановка
задачи
Дано:
дескриптор –
см. задание.
Требуется:
список1 или
дескриптор1 – выполняемый процесс.
список2 –
готовые процессы.
список3 –
ожидающие процессы.
Назначение подпрограмм:
Newproc – формирование дескриптора
Delproc – удаление дескриптора
EditProc – редактирование дескриптора.
ReRun – проверка на возможность запуска другого более приоритетного
процесса или с равным приоритетом.
Findplace – проверяет возможность перевести процессы из состояния
ожидания в готовность или выполнение.
Sortproc – сортировка по HPF=FCFS.
Endproc – удаление выполняемого процесса (дескриптора).
!Timeproc – таймер
Алгоритм
модулей
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)Все
процессы получают доступ к ресурсам. И ресурсы освобождаются.
Контрольная работа | Концепция информатизации Российской Федерации |
Контрольная работа | Причины агрессивного поведения. Методы работы с агрессивными детьми |
Контрольная работа | Алгоритм выбора и реализации предпринимательской идеи |
Контрольная работа | Современные методы арт-терапии |
Контрольная работа | Системы управления взаимоотношения с клиентами |
Контрольная работа | Учет материальных затрат в бухгалтерском учете |
Контрольная работа | Геополитическое положение России |
Контрольная работа | Особенности вознаграждения работников в организации |
Контрольная работа | Виды запасов |
Контрольная работа | Психоанализ |
Контрольная работа | Структура персонального компьютера. Основные и периферийные устройства, их характеристики и назначение |
Контрольная работа | Строительные растворы |
Контрольная работа | Обеспечительные меры в арбитражном процессе |
Контрольная работа | Стили современного русского литературного языка |
Контрольная работа | Логистика |