11Алгоритмы планирования процессов fcfs, Round Robin, sjf, их сравнение, преимущества, недостатки.
FIFO (First In Fist Out, FCFS First Come First Serve) Первый пришел — первым обслужен» Процессы ставятся в очередь по мере поступления. Преимущества: Простата Справедливость (как в очереди покупателей, кто последний пришел, тот оказался в конце очереди) Недостатки: Процесс, ограниченный возможностями процессора может затормозить более быстрые процессы, ограниченные устройствами ввода/вывода. Прямой порядок выполнения (оказался неэффективным — процессы долго находятся в состоянии готовности). Прямой порядок выполнения (более эффективный чем первый). Циклическое планирование RR (Round Robin) Самый простой алгоритм планирования и часто используемый. Каждому процессу предоставляется квант времени процессора. Когда квант заканчивается процесс переводится планировщиком в конец очереди. При блокировке процессор выпадает из очереди. Преимущества: Простота Справедливость (как в очереди покупателей, каждому только по килограмму) Недостатки: Если частые переключения (квант — 4мс, а время переключения равно 1мс), то происходит уменьшение производительности. Если редкие переключения (квант — 100мс, а время переключения равно 1мс), то происходит увеличение времени ответа на запрос. Модификацией алгоритма FCFS является алгоритм, получивший название Round Robin (Round Robin – это вид детской карусели в США) или сокращенно RR. По сути дела, это тот же самый алгоритм, только реализованный в режиме вытесняющего планирования. Можно представить себе все множество готовых процессов организованным циклически – процессы сидят на карусели. Карусель вращается так, что каждый процесс находится около процессора небольшой фиксированный квант времени, обычно 10 – 100 миллисекунд. Пока процесс находится рядом с процессором, он получает процессор в свое распоряжение и может исполняться. На производительность алгоритма RR сильно влияет величина кванта времени. Рассмотрим тот же самый пример с порядком процессов p0, p1, p2 для величины кванта времени, равной 1. Время ожидания для процессаp составит 5 единиц времени, для процесса p1 – тоже 5 единиц, для процесса p2 – 2 единицы. В этом случае среднее время ожидания получается равным (5 + 5 + 2)/3 = 4 единицам времени. Среднее полное время исполнения составит (18 + 9 + 3)/3 = 10 единиц времени. Shortest-Job-First (SJF) Кратчайшая задача — первая Преимущества: Уменьшение оборотного времени Справедливость (как в очереди покупателей, кто без сдачи проходит в перед) Недостатки: Длинный процесс занявший процессор, не пустит более новые краткие процессы, которые пришли позже (в случае невытесняющего). SJF-алгоритм краткосрочного планирования может быть как вытесняющим, так иневытесняющим. При невытесняющем SJF-планировании процессор предоставляется избранному процессу на все необходимое ему время, независимо от событий, происходящих в вычислительной системе. При вытесняющем SJF-планировании учитывается появление новых процессов в очереди готовых к исполнению (из числа вновь родившихся или разблокированных) во время работы выбранного процесса.
10.02.2015 82.94 Кб 16 Философия постмодернизма.doc
24.05.2015 45.19 Кб 203 Финансы реф.docx
21.12.2018 391.17 Кб 7 Часть билетов по ИТУ.doc
25.09.2019 589.32 Кб 5 шпора 1-40 выч мат.docx
23.09.2019 171.52 Кб 12 шпора базы данных.doc
20.04.2019 135.15 Кб 22 шпоры ос 1-50.docx
04.08.2019 185.86 Кб 7 шпоры по ОС 21-30.doc
19.04.2019 36.44 Кб 3 шпоры по ос 41-50.docx
22.04.2019 357.55 Кб 7 Шпоры по физике.docx
22.04.2019 369.17 Кб 6 Шпоры по физике.docx
16.09.2019 346.62 Кб 4 шпоры1.doc
Ограничение
Для продолжения скачивания необходимо пройти капчу:
2.2.1 Первый пришел — первый обслуживается FIFO. First come — First served (FCFS)
FCFS является наиболее простой стратегтей планирования процессов и заключается в том, что процессор передается тому процессу, который раньше всех других его запросил.
Когда процесс попадает в очередь готовых процессов, process control block присоединяется к хвосту очереди.
Среднее время ожидания для стратегии FCFS часто весьма велико и зависит от порядка поступления процессов в очередь готовых процессов.
Стратегии FCFS присущ так называемый “эффект конвоя”. В том случае, когда в компьютере имеется один большой процесс и несколько малых, то все процессы собираются в начале очереди готовых процессов, а затем в очереди к оборудованию. Таким образом, “эффект конвоя” приводит к снижению загруженности как процессора, так и периферийного оборудования.
Делись добром 😉
- Введение
- 1. Управление процессами
- 1.1 Понятие Процесса. Состояния процесса.
- 1.2 Планирование процессов. Понятие очереди
- 2. Планирование процессора
- 2.1 Критерии планирования процессора
- 2.2 Стратегии планирования процессора
- 2.2.1 Первый пришел — первый обслуживается FIFO. First come — First served (FCFS)
- 2.2.2 Стратегия SJF (Shortest job first).
- 2.2.3 Приоритетное планирование
- 2.2.4 “Карусельная” стратегия планирования. RR (Round Robin)
- 2.2.5 Планирование с использованием многоуровневой очереди (Multilevel queue scheduling)
- 2.2.6 Программирование с использованием многоуровневой очереди с обратными связями (multilevel feedback queue sheduling)
- 3. Алгоритмизация и программирование методов «RR» и «SPT»
- 3.1 Алгоритм стратегии планирования SPT (Shortest-processing-task-first.)
- 3.2 Программная реализация метода SPT (Shortest-processing-task-first)
- 3.3 Алгоритм стратегии планирования . RR (Round Robin)
- 3.4 Программная реализация метода RR (Round Robin)
- 3.5 Результаты расчетов и их сопоставление
- Заключение
Похожие главы из других работ:
IDEF-моделирование мандатного разграничения доступа
2.1 Первый уровень функциональной модели
На входе функционального блока «Разграничение доступа» (А0) — «параметры пользователя», необходимая для последующего ее преобразования, на выходе — «отказ в запросе» и «выполнение запроса» (см. рисунок 1).
WEB-сайт: структура и способы создания
1.2 Первый в мире сайт
Первый в мире сайт info.cern.ch появился в 1991 году. Его создатель, Тим Бернерс-Ли, опубликовал на нём описание новой технологии World Wide Web, основанной на протоколе передачи данных HTTP, системе адресации URI и языке гипертекстовой разметки HTML.
Архитектура современных процессоров
1. 8086: первый процессор для ПК
8086 стал первым процессором x86 — Intel к тому времени уже выпустила модели 4004, 8008, 8080 и 8085. Этот 16-битный процессор мог работать с 1 Мбайт памяти по внешней 20-битной адресной шине. Тактовая частота, выбранная IBM (4,77 МГц) была довольно низкой.
Вычислительные алгоритмы симплекс-метода
Первый алгоритм симплекс метода
Приведём описание алгоритма применительно к ЗЛП, записанной в канонической форме с односторонними ограничениями: Пусть известен начальный опорный план с базисом , т.е. — базисные компоненты, — небазисные компоненты.
Информационно-поисковые и информационно-справочные системы в обучении информатике
2.3.1 Первый закон Зипфа
Все созданные человеком тексты построены по единым правилам. Тексты описывается законами Зипфа (G.K. Zipf). Зипф предположил, что слова с большим количеством букв встречаются в тексте реже коротких слов. Основываясь на этом постулате.
История Intel
2. Первый шаг Intel
Первый процессор был выпущен 15 ноября 1971 года. Он был разработан фирмой Intel и назывался Intel 4004. Рабочая частота этого процессора составляла всего 108 кГц (0,108 МГц!). Процессор содержал 2 300 транзисторов и производился по 10-микронной технологии.
Организация и методика проведения турнира программистов в школе
2.2 Первый шаг — создание оргкомитета
Может быть, это и громко сказано — «оргкомитет», особенно когда речь идет всего лишь о соревновании в рамках одного учреждения образования и/или турнире среди обучающихся 2 — 3 учреждений, но какую-то группу лиц.
Подбор видеокарты для дизайнерского моделирования
1. История развития видеокарт. Первый акселлератор
Сегодня разница между словами видеокарта и видеоакселератор нивелировалась, и эти слова стали синонимами. Так было не всегда. Давайте вернемся на десяток лет назад и посмотрим на видеоиндустрию того времени.
Разработка веб-сервиса «Записная книжка»
2.3.2 Первый спринт
Основной задачей первого спринта является разработка технического задания для проекта.
Сборка персонального компьютера для школы №120
3. Первый этап — установка комплектующих на материнскую плату
Рис.2 (Материнская плата) Рис.3 (Процессор) Рис.4 (Оперативная память) Рис.5 (Родиатор с куллером) Положите материнскую плату на стол, подложив под нее какой-нибудь нескользящий достаточно упругий материал вроде картона или полиэтилена.
Системы обнаружения атак
1.1 Первый этап реализации атак
Первый этап реализации атак — это сбор информации об атакуемой системе или узле. Он включает такие действия как определение сетевой топологии, типа и версии операционной системы атакуемого узла, а также доступных сетевых и иных сервисов и т.п.
Создание подсистемы «WebList» для виртуального бизнес-проекта «Proffis»
1.6.1 Первый способ реализации — PHP-клиент
Структура базы знаний БОСЭС ДБВ1х1: ПрС/С «Защита с нападением»
2.2 Первый иерархический уровень базы знаний
На первом иерархическом уровне происходит активизация Пр С/С, соответствующей сложившейся внешней обстановке. Правила сопоставления текущей внешней ситуации, которая представляется ситуационным вектором SV(ТБС-Пр С/С).
Теория и практика языков программирования
2.1 Первый этап развития
Первые ЭВМ, созданные человеком, имели небольшой набор команд и встроенных типов данных, но позволяли выполнять программы на машинном языке. Машинный язык (МЯ) — единственный язык, понятный ЭВМ.
Эволюция операционных систем
1.1 Первый период (1945 -1955)
Известно, что компьютер был изобретен английским математиком Чарльзом Бэбиджем в конце восемнадцатого века. Его «аналитическая машина» так и не смогла но настоящему заработать.
Round Robin (RR)
Модификацией алгоритма FCFS является алгоритм, получивший название Round Robin (Round Robin — это вид детской карусели в США) или сокращенно RR. По сути дела, это тот же самый алгоритм, только реализованный в режиме вытесняющего планирования.
Можно представить себе все множество готовых процессов организованным циклически — процессы сидят на карусели. Карусель вращается так, что каждый процесс находится около процессора небольшой фиксированный квант времени, обычно 10-100 миллисекунд (см. рис. 3.4). Пока процесс находится рядом с процессором, он получает процессор в свое распоряжение и может исполняться.
положенный в начале очереди, и устанавливает таймер для генерации прерывания по истечении определенного кванта времени.
При выполнении процесса возможны два варианта:
• Время непрерывного использования процессора, необходимое процессу (остаток текущего CPU burst), меньше или равно продолжительности кванта времени. Тогда процесс по своей воле освобождает процессор до истечения кванта времени, на исполнение поступает новый процесс из начала очереди, и таймер начинает отсчет кванта заново.
• Продолжительность остатка текущего CPU burst процесса больше, чем квант времени. Тогда по истечении этого кванта процесс прерывается таймером и помещается в конец очереди процессов, готовых к исполнению, а процессор выделяется для использования процессу, находящемуся в ее начале.
Первым для исполнения выбирается процесс ро- Продолжительность его CPU burst больше, чем величина кванта времени, и поэтому процесс исполняется до истечения кванта, т. е. в течение 4 единиц времени. После этого он помещается в конец очереди готовых к исполнению процессов, которая принимает вид pi, рг, ро- Следующим начинает выполняться процесс рь Время его исполнения совпадает с величиной выделенного кванта, поэтому процесс работает до своего завершения. Теперь очередь процессов всостоянии готовность состоит из двух процессов — рг и ро. Процессор выделяется процессу рг. Он завершается до истечения отпущенного ему процессорного времени, и очередные кванты отмеряются процессу ро — единственному не закончившему к этому моменту свою работу. Время ожидания для процесса ро (количество символов «Г» в соответствующей строке) составляет 5 единиц времени, для процесса Р1 — 4 единицы времени, для процесса рг — 8 единиц времени. Таким образом, среднее время ожидания для этого алгоритма получается равным (5 + 4 + 8)/3 = 5,6 (6) единицам времени. Полное время выполнения для процесса ро (количество непустых столбцов в соответствующей строке) составляет 18 единиц времени, для процесса Р1 — 8 единиц, для процесса рг — 9 единиц. Среднее полное время выполнения оказывается равным (18 + 8 + 9)/3 = 11,6 (6) единицам времени.
Легко увидеть, что среднее время ожидания и среднее полное время выполнения для обратного порядка процессов не отличаются от соответствующих времен для алгоритма РСРБ и составляют 2 и 6 единиц времени соответственно.
При очень больших величинах кванта времени, когда каждый процесс успевает завершить свой CPU burst до возникновения прерывания по времени, алгоритм RR вырождается в алгоритм FCFS. При очень малых величинах создается иллюзия того, что каждый из п процессов работает на собственном виртуальном процессоре с производительностью ~ 1/п от производительности реального процессора. Правда, это справедливо лишь при теоретическом анализе при условии пренебрежения временами переключения контекста процессов. В реальных условиях при слишком малой величине кванта времени и, соответственно, слишком частом переключении контекста накладные расходы на переключение резко снижают производительность системы.
Планирование процессов
Существует достаточно большой набор разнообразных алгоритмов планирования , которые предназначены для достижения различных целей и эффективны для разных классов задач. Многие из них могут использоваться на нескольких уровнях планирования . В этом разделе мы рассмотрим некоторые наиболее употребительные алгоритмы применительно к процессу кратковременного планирования .
First-Come, First-Served (FCFS)
Простейшим алгоритмом планирования является алгоритм, который принято обозначать аббревиатурой FCFS по первым буквам его английского названия – First-Come, First-Served (первым пришел, первым обслужен). Представим себе, что процессы, находящиеся в состоянии готовность, выстроены в очередь. Когда процесс переходит в состояние готовность, он, а точнее, ссылка на его PCB помещается в конец этой очереди. Выбор нового процесса для исполнения осуществляется из начала очереди с удалением оттуда ссылки на его PCB . Очередь подобного типа имеет в программировании специальное наименование – FIFO 1 Надо отметить, что аббревиатура FCFS используется для этого алгоритма планирования вместо стандартной аббревиатуры FIFO для механизмов подобного типа для того, чтобы подчеркнуть, что организация готовых процессов в очередь FIFO возможна и при других алгоритмах планирования (например, для Round Robin – см. раздел » Round Robin ( RR )»). , сокращение от First In, First Out (первым вошел, первым вышел).
Такой алгоритм выбора процесса осуществляет невытесняющее планирование . Процесс, получивший в свое распоряжение процессор, занимает его до истечения текущего CPU burst . После этого для выполнения выбирается новый процесс из начала очереди.
| Процесс | p0 | p1 | p2 |
|---|---|---|---|
| Продолжительность очередного CPU burst | 13 | 4 | 1 |
Преимуществом алгоритма FCFS является легкость его реализации, но в то же время он имеет и много недостатков. Рассмотрим следующий пример. Пусть в состоянии готовность находятся три процесса p0 , p1 и p2 , для которых известны времена их очередных CPU burst . Эти времена приведены в таблице 3.1. в некоторых условных единицах. Для простоты будем полагать, что вся деятельность процессов ограничивается использованием только одного промежутка CPU burst , что процессы не совершают операций ввода-вывода и что время переключения контекста так мало, что им можно пренебречь.
Если процессы расположены в очереди процессов, готовых к исполнению, в порядке p0 , p1 , p2 , то картина их выполнения выглядит так, как показано на рисунке 3.2. Первым для выполнения выбирается процесс p0 , который получает процессор на все время своего CPU burst , т. е. на 13 единиц времени. После его окончания в состояние исполнение переводится процесс p1 , он занимает процессор на 4 единицы времени. И, наконец, возможность работать получает процесс p2 . Время ожидания для процесса p0 составляет 0 единиц времени, для процесса p1 – 13 единиц, для процесса p2 – 13 + 4 = 17 единиц. Таким образом, среднее время ожидания в этом случае – (0 + 13 + 17)/3 = 10 единиц времени. Полное время выполнения для процесса p0 составляет 13 единиц времени, для процесса p1 – 13 + 4 = 17 единиц, для процесса p2 – 13 + 4 + 1 = 18 единиц. Среднее полное время выполнения оказывается равным (13 + 17 + 18)/3 = 16 единицам времени.
Рис. 3.2. Выполнение процессов при порядке p0,p1,p2
Если те же самые процессы расположены в порядке p2 , p1 , p0 , то картина их выполнения будет соответствовать рисунку 3.3. Время ожидания для процесса p0 равняется 5 единицам времени, для процесса p1 – 1 единице, для процесса p2 – 0 единиц. Среднее время ожидания составит (5 + 1 + 0)/3 = 2 единицы времени. Это в 5 (!) раз меньше, чем в предыдущем случае. Полное время выполнения для процесса p0 получается равным 18 единицам времени, для процесса p1 – 5 единицам, для процесса p2 – 1 единице. Среднее полное время выполнения составляет (18 + 5 + 1)/3 = 8 единиц времени, что почти в 2 раза меньше, чем при первой расстановке процессов.
Рис. 3.3. Выполнение процессов при порядке p2, p1, p0
Как мы видим, среднее время ожидания и среднее полное время выполнения для этого алгоритма существенно зависят от порядка расположения процессов в очереди. Если у нас есть процесс с длительным CPU burst , то короткие процессы, перешедшие в состояние готовность после длительного процесса, будут очень долго ждать начала выполнения. Поэтому алгоритм FCFS практически неприменим для систем разделения времени – слишком большим получается среднее время отклика в интерактивных процессах .
Round Robin (RR)
Модификацией алгоритма FCFS является алгоритм, получивший название Round Robin ( Round Robin – это вид детской карусели в США) или сокращенно RR . По сути дела, это тот же самый алгоритм, только реализованный в режиме вытесняющего планирования . Можно представить себе все множество готовых процессов организованным циклически – процессы сидят на карусели. Карусель вращается так, что каждый процесс находится около процессора небольшой фиксированный квант времени , обычно 10 – 100 миллисекунд (см. рис. 3.4.). Пока процесс находится рядом с процессором, он получает процессор в свое распоряжение и может исполняться.
Рис. 3.4. Процессы на карусели
Реализуется такой алгоритм так же, как и предыдущий, с помощью организации процессов, находящихся в состоянии готовность, в очередь FIFO. Планировщик выбирает для очередного исполнения процесс, расположенный в начале очереди, и устанавливает таймер для генерации прерывания по истечении определенного кванта времени . При выполнении процесса возможны два варианта.
- Время непрерывного использования процессора, необходимое процессу (остаток текущего CPU burst ), меньше или равно продолжительности кванта времени . Тогда процесс по своей воле освобождает процессор до истечения кванта времени , на исполнение поступает новый процесс из начала очереди, и таймер начинает отсчет кванта заново.
- Продолжительность остатка текущего CPU burst процесса больше, чем квант времени . Тогда по истечении этого кванта процесс прерывается таймером и помещается в конец очереди процессов, готовых к исполнению, а процессор выделяется для использования процессу, находящемуся в ее начале.
Рассмотрим предыдущий пример с порядком процессов p0 , p1 , p2 и величиной кванта времени равной 4 . Выполнение этих процессов иллюстрируется таблицей 3.2. Обозначение «И» используется в ней для процесса, находящегося в состоянии исполнение, обозначение «Г» – для процессов в состоянии готовность, пустые ячейки соответствуют завершившимся процессам. Состояния процессов показаны на протяжении соответствующей единицы времени, т. е. колонка с номером 1 соответствует промежутку времени от 0 до 1 .
| Время | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| p0 | И | И | И | И | Г | Г | Г | Г | Г | И | И | И | И | И | И | И | И | И |
| p1 | Г | Г | Г | Г | И | И | И | И | ||||||||||
| p2 | Г | Г | Г | Г | Г | Г | Г | Г | И |
Первым для исполнения выбирается процесс p0 . Продолжительность его CPU burst больше, чем величина кванта времени , и поэтому процесс исполняется до истечения кванта , т. е. в течение 4 единиц времени. После этого он помещается в конец очереди готовых к исполнению процессов, которая принимает вид p1 , p2 , p0 . Следующим начинает выполняться процесс p1 . Время его исполнения совпадает с величиной выделенного кванта , поэтому процесс работает до своего завершения. Теперь очередь процессов в состоянии готовность состоит из двух процессов, p2 и p0 . Процессор выделяется процессу p2 . Он завершается до истечения отпущенного ему процессорного времени, и очередные кванты отмеряются процессу p0 – единственному не закончившему к этому моменту свою работу. Время ожидания для процесса p0 (количество символов «Г» в соответствующей строке) составляет 5 единиц времени, для процесса p1 – 4 единицы времени, для процесса p2 – 8 единиц времени. Таким образом, среднее время ожидания для этого алгоритма получается равным (5 + 4 + 8)/3 = 5,6(6) единицы времени. Полное время выполнения для процесса p0 (количество непустых столбцов в соответствующей строке) составляет 18 единиц времени, для процесса p1 – 8 единиц, для процесса p2 – 9 единиц. Среднее полное время выполнения оказывается равным (18 + 8 + 9)/3 = 11,6(6) единицы времени.
Легко увидеть, что среднее время ожидания и среднее полное время выполнения для обратного порядка процессов не отличаются от соответствующих времен для алгоритма FCFS и составляют 2 и 8 единиц времени соответственно.
На производительность алгоритма RR сильно влияет величина кванта времени . Рассмотрим тот же самый пример с порядком процессов p0 , p1 , p2 для величины кванта времени , равной 1 (см. табл. 3.3.). Время ожидания для процесса p0 составит 5 единиц времени, для процесса p1 – тоже 5 единиц, для процесса p2 – 2 единицы. В этом случае среднее время ожидания получается равным (5 + 5 + 2)/3 = 4 единицам времени. Среднее полное время исполнения составит (18 + 9 + 3)/3 = 10 единиц времени.
| Время | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| p0 | И | Г | Г | И | Г | И | Г | И | Г | И | И | И | И | И | И | И | И | И |
| p1 | Г | И | Г | Г | И | Г | И | Г | И | |||||||||
| p2 | Г | Г | И |
При очень больших величинах кванта времени , когда каждый процесс успевает завершить свой CPU burst до возникновения прерывания по времени, алгоритм RR вырождается в алгоритм FCFS . При очень малых величинах создается иллюзия того, что каждый из n процессов работает на собственном виртуальном процессоре с производительностью ~ 1/n от производительности реального процессора. Правда, это справедливо лишь при теоретическом анализе при условии пренебрежения временами переключения контекста процессов . В реальных условиях при слишком малой величине кванта времени и, соответственно, слишком частом переключении контекста накладные расходы на переключение резко снижают производительность системы.