Алгоритмы планирования процессов
Алгоритмы планирования процессовАлгоритм планирования по ближайшему сроку завершения
=== Скачать файл ===
Существует достаточно большой набор разнообразных алгоритмов планирования , которые предназначены для достижения различных целей и эффективны для разных классов задач. Многие из них могут использоваться на нескольких уровнях планирования. В этом разделе мы рассмотрим некоторые наиболее употребительные алгоритмы применительно к процессу кратковременного планирования. Простейшим алгоритмом планирования является алгоритм, который принято обозначать аббревиатурой FCFS по первым буквам его английского названия — First-Come, First-Served первым пришел, первым обслужен. Представим себе, что процессы, находящиеся в состоянии готовность, выстроены в очередь. Когда процесс переходит в состояние готовность, он, а точнее, ссылка на его PCB помещается в конец этой очереди. Выбор нового процесса для исполнения осуществляется из начала очереди с удалением оттуда ссылки на его PCB. Очередь подобного типа имеет в программировании специальное наименование — FIFO 1 Надо отметить, что аббревиатура FCFS используется для этого алгоритма планирования вместо стандартной аббревиатуры FIFO для механизмов подобного типа для того, чтобы подчеркнуть, что организация готовых процессов в очередь FIFO возможна и при других алгоритмах планирования например, для Round Robin — см. Такой алгоритм выбора процесса осуществляет невытесняющее планирование. Процесс, получивший в свое распоряжение процессор, занимает его до истечения текущего CPU burst. После этого для выполнения выбирается новый процесс из начала очереди. Преимуществом алгоритма FCFS является легкость его реализации, но в то же время он имеет и много недостатков. Пусть в состоянии готовность находятся три процесса p 0 , p 1 и p 2 , для которых известны времена их очередных CPU burst. Эти времена приведены в таблице 3. Для простоты будем полагать, что вся деятельность процессов ограничивается использованием только одного промежутка CPU burst , что процессы не совершают операций ввода-вывода и что время переключения контекста так мало, что им можно пренебречь. Если процессы расположены в очереди процессов, готовых к исполнению, в порядке p 0 , p 1 , p 2 , то картина их выполнения выглядит так, как показано на рисунке 3. Первым для выполнения выбирается процесс p 0 , который получает процессор на все время своего CPU burst , т. После его окончания в состояние исполнение переводится процесс p 1 , он занимает процессор на 4 единицы времени. И, наконец, возможность работать получает процесс p 2. Если те же самые процессы расположены в порядке p 2 , p 1 , p 0 , то картина их выполнения будет соответствовать рисунку 3. Время ожидания для процесса p 0 равняется 5 единицам времени, для процесса p 1 — 1 единице, для процесса p 2 — 0 единиц. Полное время выполнения для процесса p 0 получается равным 18 единицам времени, для процесса p 1 — 5 единицам, для процесса p 2 — 1 единице. Как мы видим, среднее время ожидания и среднее полное время выполнения для этого алгоритма существенно зависят от порядка расположения процессов в очереди. Если у нас есть процесс с длительным CPU burst , то короткие процессы, перешедшие в состояние готовность после длительного процесса, будут очень долго ждать начала выполнения. Поэтому алгоритм FCFS практически неприменим для систем разделения времени — слишком большим получается среднее время отклика в интерактивных процессах. Модификацией алгоритма FCFS является алгоритм, получивший название Round Robin Round Robin — это вид детской карусели в США или сокращенно RR. По сути дела, это тот же самый алгоритм, только реализованный в режиме вытесняющего планирования. Можно представить себе все множество готовых процессов организованным циклически — процессы сидят на карусели. Карусель вращается так, что каждый процесс находится около процессора небольшой фиксированный квант времени , обычно 10 — миллисекунд см. Пока процесс находится рядом с процессором, он получает процессор в свое распоряжение и может исполняться. Реализуется такой алгоритм так же, как и предыдущий, с помощью организации процессов, находящихся в состоянии готовность, в очередь FIFO. Планировщик выбирает для очередного исполнения процесс, расположенный в начале очереди, и устанавливает таймер для генерации прерывания по истечении определенного кванта времени. При выполнении процесса возможны два варианта. Рассмотрим предыдущий пример с порядком процессов p 0 , p 1 , p 2 и величиной кванта времени равной 4. Выполнение этих процессов иллюстрируется таблицей 3. Обозначение 'И' используется в ней для процесса, находящегося в состоянии исполнение, обозначение 'Г' — для процессов в состоянии готовность, пустые ячейки соответствуют завершившимся процессам. Состояния процессов показаны на протяжении соответствующей единицы времени, т. Первым для исполнения выбирается процесс p 0. Продолжительность его CPU burst больше, чем величина кванта времени , и поэтому процесс исполняется до истечения кванта , т. После этого он помещается в конец очереди готовых к исполнению процессов, которая принимает вид p 1 , p 2 , p 0. Следующим начинает выполняться процесс p 1. Время его исполнения совпадает с величиной выделенного кванта , поэтому процесс работает до своего завершения. Теперь очередь процессов в состоянии готовность состоит из двух процессов, p 2 и p 0. Процессор выделяется процессу p 2. Он завершается до истечения отпущенного ему процессорного времени, и очередные кванты отмеряются процессу p 0 — единственному не закончившему к этому моменту свою работу. Время ожидания для процесса p 0 количество символов 'Г' в соответствующей строке составляет 5 единиц времени, для процесса p 1 — 4 единицы времени, для процесса p 2 — 8 единиц времени. Полное время выполнения для процесса p 0 количество непустых столбцов в соответствующей строке составляет 18 единиц времени, для процесса p 1 — 8 единиц, для процесса p 2 — 9 единиц. Легко увидеть, что среднее время ожидания и среднее полное время выполнения для обратного порядка процессов не отличаются от соответствующих времен для алгоритма FCFS и составляют 2 и 8 единиц времени соответственно. На производительность алгоритма RR сильно влияет величина кванта времени. Рассмотрим тот же самый пример с порядком процессов p 0 , p 1 , p 2 для величины кванта времени , равной 1 см. Время ожидания для процесса p 0 составит 5 единиц времени, для процесса p 1 — тоже 5 единиц, для процесса p 2 — 2 единицы. При очень больших величинах кванта времени , когда каждый процесс успевает завершить свой CPU burst до возникновения прерывания по времени, алгоритм RR вырождается в алгоритм FCFS. Правда, это справедливо лишь при теоретическом анализе при условии пренебрежения временами переключения контекста процессов. В реальных условиях при слишком малой величине кванта времени и, соответственно, слишком частом переключении контекста накладные расходы на переключение резко снижают производительность системы. Есть курсы, которые я уже прошел. Мы ищем курсы, покупаем и публикуем их для вас бесплатно. Учеба Академии Учителя Рейтинг Вопросы Магазин. Курсы Школа Высшее образование Мини-МБА Профессиональная переподготовка Повышение квалификации Сертификации. Информация Глоссарий Дипломы Вопросы и ответы Студенты Рейтинг выпускников Мнения Литература Учебные программы. Администратор информационных систем , Архитектор программного обеспечения. Алгоритмы планирования Существует достаточно большой набор разнообразных алгоритмов планирования , которые предназначены для достижения различных целей и эффективны для разных классов задач. Процесс p 0 p 1 p 2 Продолжительность очередного CPU burst 13 4 1. Пользовательское соглашение Политика конфиденциальности Реклама на сайте Напишите нам.
Сколько ягод в 100 гр сублимированной клубники
Система права план с8 обществознание
Как сделать маленького робота из лего