Лабораторная работа №3.

Задание

Разработать планировщик периодических процессов по алгоритму RMS (см. лекции). На входе программы - файл input.txt следующей структуры:
рассчетное_время
название_процесса1 периодичность_запуска1 время_работы1
название_процесса2 периодичность_запуска2 время_работы2
...
название_процессаN периодичность_запускаN время_работыN
На выходе программы - файл output.txt следующей структуры:
Название_первого_запускаемого_процесса номер_периода время_запуска время_прерывания оставшееся_время_работы
Название_второго_запускаемого_процесса номер_периода время_запуска время_прерывания оставшееся_время_работы
...
Время прерывания последнего процесса должно быть равно рассчетному времени.
Если планирование по алгоритму RMS невозможно в принципе, файл output.txt должен содержать только фразу "Planning error".
Если планирование по алгоритму RMS завершилось неудачей, то файл должен содержать план работы процессов до неудачного момента и завершаться словом "Error".

Например:
input.txt output.txt
110
a 30 10
b 40 15
c 50 5
a 1 0 10 0
b 1 10 25 0
c 1 25 30 0
a 2 30 40 0
b 2 40 55 0
c 2 55 60 0
a 3 60 70 0
b 3 80 90 5
a 4 90 100 0
b 3 100 105 0
c 3 105 110 0
110
a 30 30
b 40 15
c 50 5
Planning error
110
a 30 15
b 40 15
c 50 5
a 1 0 15 0
b 1 15 30 0
a 2 30 45 0
b 2 45 60 0
Error