Алгоритмы планирования процессов

Алгоритмы планирования процессов

Алгоритмы планирования процессов

Алгоритм планирования по ближайшему сроку завершения



=== Скачать файл ===




















Существует достаточно большой набор разнообразных алгоритмов планирования , которые предназначены для достижения различных целей и эффективны для разных классов задач. Многие из них могут использоваться на нескольких уровнях планирования. В этом разделе мы рассмотрим некоторые наиболее употребительные алгоритмы применительно к процессу кратковременного планирования. Простейшим алгоритмом планирования является алгоритм, который принято обозначать аббревиатурой 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 обществознание

Рассказы фильм 2010

Описание отделов магазина

Как сделать маленького робота из лего

Штукатурка стен газобетонасвоими руками видео

Интернет деньги украина

Айлана значение имени