Лабораторная работа: Реализация управления процессами и ресурсами многопрограммных операционных систем на уровне диспетчеризации
Структура программы
Назначение подпрограмм
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]}
всё
всё
Описание тестового примера
Так как в первой лабораторной не предволагается никаких дополнительных операции кроме запуска сортировки и завершения, то тест очень прост: