Лабораторная работа: Реализация управления процессами и ресурсами многопрограммных операционных систем на уровне диспетчеризации
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: ()
Тест показывает все доступные действия над дескрипторами кроме увеличения уменьшения приоритета, но при этом происходят те же действия так как модуль работает независимо от действий, а использует только значения дескрипторов для сортировки и проверок.
При освобождение ресурсов процессы переходят из состояния ожидания в состояние готовности.
При изменение приоритета происходит проверка на возможность перевода данного процесса в состояние выполнения.