The design of the UNIX Operating System 1 страница



First-Come, First-Served (FCFS)

 

Простейшим алгоритмом планирования является алгоритм, который принято обозначать аббревиатурой FCFS по первым буквам его английского названия – First-Come, First-Served (первым пришел, первым обслужен). Представим себе, что процессы, находящиеся в состоянии готовность, выстроены в очередь. Когда процесс переходит в состояние готовность, он, а точнее, ссылка на его PCB помещается в конец этой очереди. Выбор нового процесса для исполнения осуществляется из начала очереди с удалением от-туда ссылки на его PCB. Очередь подобного типа имеет в программировании специальное наименование

 

– FIFO1), сокращение от First In, First Out (первым вошел, первым вышел).

 

Такой алгоритм выбора процесса осуществляет невытесняющее планирование . Процесс, получивший в свое распоряжение процессор, занимает его до истечения текущего CPU burst. После этого для выполне-ния выбирается новый процесс из начала очереди.

Таблица 3.1.

Процесс   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


Основы операционных систем 31

единиц времени, для процесса 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 практически неприменим для систем разделения времени – слишком большим получается среднее время отклика в интерактивных процессах.


Дата добавления: 2021-01-21; просмотров: 124; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!