Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРВ complete edition епта.docx
Скачиваний:
17
Добавлен:
24.09.2019
Размер:
488.03 Кб
Скачать

59. Какие алгоритмы диспетчеризации/планирования потоков доступны в ос Neutrino?

В операционной системе QNX6 поддерживается несколько дисциплин планирования потоков: FIFO, карусельная (циклическая, round-robin, RR) и спорадическая**. Этот атрибут потока будет учитыватьсятолько, если микроядру приходится выбирать между потоками с одинаковым уровнем приоритета. Дисциплины планирования будут описаны дальше.

Дисциплина планирования FIFO

Если потоку задана дисциплина планирования FIFO (First In First Out, первый на входе, первый на выходе), то он может выполняться сколь угодно долго. Управление будет передано другому потоку только если поток будет вытеснен более приоритетным потоком, поток заблокируется или добровольно отдаст управление. При использовании этой дисциплины планирования, поток, который выполняет длительные математические вычисления, может полностью захватить процессор (т.е. не позволит выполняться потокам с тем же и более низким приоритетом).

Карусельная дисциплина планирования

Эта дисциплина планирования полностью аналогичная FIFO, за исключением того, что поток не выполняется «бесконечно», а работает только на протяжении определённого кванта времени (timeslice). По истечении кванта времени микроядро ставит процесс в конец очереди потоков, готовых к выполнению, и управление передаётся следующему потоку (на том же уровне приоритета). Если же на этом уровне приоритета нет других потоков в состоянии READY, то потоку выделяется ещё один квант времени.

Квант времени, который выделяется потокам с карусельной дисциплиной диспетчеризации для работы, может быть определён при помощи функции sched_rr_get_interval(). На самом деле квант времени (timeslice) ровно в четыре раза больше тактового интервала (ticksize). В свою очередь, тактовый интервал равен 1мс в системах с процессором 40МГц и выше и 10мс в системах с более медленным процессором***. Получается, что в привычных нам x86 компьютерах и ноутбуках квант времени равен 4мс.

Спорадическая дисциплина планирования

Как и в FIFO¬ планировании, поток, для которого применяется спорадическое планирование, выполняется до тех пор, пока он не блокируется или не будет вытеснен потоком с более высоким приоритетом. Кроме того, так же как и в адаптивном планировании, поток, для которого применяется спорадическое планирование, получает пониженный приоритет. Однако спорадическое планирование даёт значительно более точное управление потоком.

60. В чём разница между дисциплинами планирования rr и fifo?

Планирование по принципу FIFO (first-in-first-out)

Принцип FIFO, “первый пришедший обслуживается первым”, является наиболее простой дисциплиной планирования. ЦП предоставляется процессам в порядке их прихода в очередь готовности. После того, как процесс получает ЦП в свое распоряжение, он выполняется до завершения, т.е. это дисциплина планирования без переключения, поэтому ее не рекомендуют использовать в системах с разделением времени. Как правило, принцип FIFO редко используется самостоятельно в качестве основной дисциплины обслуживания, чаще он комбинируется с другими дисциплинами, например, диспетчирование процессов может выполняться согласно их приоритетам, однако процессы с одинаковыми приоритетами диспетчируются по принципу FIFO.

Циклическое планирование round robin (RR)

Планирование по принципу RR предполагает диспетчирование процессов по принципу FIFO, но каждый процесс получает временной квант, в течение которого он может использовать ресурсы ЦП. Если завершения процесса не происходит по истечении кванта времени, то этот процесс переводится в конец списка готовых к выполнению процессов, а ресурсы ЦП предоставляются следующему процессу из списка. Такой алгоритм планирования подходит, например, для работы с разделением времени, когда система должна гарантировать приемлемые времена ответа для всех интерактивных пользователей. Очевидно, если квант времени выбирается слишком большим, то система RR фактически вырождается в FIFO, т.к. каждому процессу выделяется достаточно времени для завершения. Если же квант времени выбирается слишком малым, то контекстные переключения начинают играть доминирующую роль, что в итоге ухудшает характеристики системы.