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

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

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

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


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


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


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


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


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


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

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


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


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

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

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

Слов:2576
Символов:28879
Размер:56.40 Кб.