Идея задачи сводится к определению очередности выполнения программ в одном центральном процессоре. Программы выполняются последовательно в течении небольшого кванта времени. В течении этого промежутка времени программа занимает процессор монопольно, а по его окончании гарантированно передаст управление другой программе, ожидающей своей очереди.
В некоторых случаях, программа может выполнять специфические действия (например, осуществлять ввод-вывод данных на внешние устройства). Этот процесс, как правило, осуществляется особыми контроллерами, не связанными с центральным процессором. Программа в таком состоянии не использует центральный процессор в течении определенного времени и очередность выполнения переходит к оставшимся программам.
Программа, таким образом, может находиться в трех состояниях:
Готовность - программа готова к выполнению и ожидает своей очереди.
Выполнение - программа занимает центральный процессор и выполняет свои инструкции.
Блокировка - программа занята другими действиями и не может выполняться (выполняет ввод-вывод).
По заданию имеется таблица со следующими данными:
Имя задачи - название приложения;
Время появления задачи - точка времени, когда программа запускается, только с этого времени программа воспринимается планировщиком;
Продолжительность выполнения задачи - время выполнения программы.
Начало ввода-вывода - момент времени, когда начитается ввод-вывод (блокировка программы).
Окончание ввода-вывода - продолжительность процедуры ввода-вывода (продолжительность блокировки).
Примечание. В качестве временных интервалов задание подразумевает циклы выполнения программы. Таким образом, продолжительность выполнения программ будет в циклах процессора.
Начнем планировать выполнение программ