Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

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

Название: Реализация управления процессами и ресурсами многопрограммных операционных систем на уровне диспетчеризации
Раздел: Рефераты по информатике, программированию
Тип: лабораторная работа Добавлен 18:38:07 07 июля 2010 Похожие работы
Просмотров: 133 Комментариев: 2 Оценило: 1 человек Средний балл: 5 Оценка: неизвестно     Скачать

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

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

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

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

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

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

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

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

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

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

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

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений06:40:32 19 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
19:48:02 28 ноября 2015

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

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(150451)
Комментарии (1831)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru