Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
А2_Zabolotnikov_9373.docx
Скачиваний:
25
Добавлен:
20.06.2023
Размер:
30.48 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра «Информационные системы»

Реферат2

по дисциплине «Системы реального времени»

Тема: Диспетчеризация задач

Дата представления реферата на проверку: 04.03.2023

Студент гр. 9373

Заболотников Максим

zabolotnikovmaxim@yandex.ru

Преподаватель

Сидельников В.В.

Санкт-Петербург

2023

СОДЕРЖАНИЕ

1

Задачи – потоки и процессы……………………………………………..

3

2

Диспетчеризация задач. Вытеснение. Time slicing…………………….

4

3

Состояния задачи. События, вызывающие смену состояний…………

7

4

Очереди задач. Приоритетное управление……………………………..

9

5

Статические и динамические алгоритмы………………………………

10

Список использованных источников………………………………………

13

  1. Задачи – потоки и процессы

Когда говорят о понятии "задача" в терминологии операционных систем, то имеет смысл дать определения таким понятиям, как "процесс" и "поток". Процесс является более масштабным представлением задачи, поскольку обозначает независимый модуль программы или весь исполняемый файл с его адресным пространством, состоянием регистров процессора, счетчиком команд, кодом процедур и функций. Поток – это составная часть процесса, которая обозначает последовательность исполняемого кода. Каждый процесс содержит как минимум один поток, при этом максимальное количество потоков в пределах одного процесса в большинстве ОС ограничено только объемом оперативной памяти вычислительного комплекса. Потоки, которые принадлежат одному процессу, разделяют его адресное пространство, поэтому они могут легко обмениваться данными, а время, за которое процессор переходит от выполнения команд одного потока к выполнению команд другого, оказывается значительно меньше, чем время переключения между процессами. В связи с этим, в приложениях реального времени параллельно выполняемые задачи стараются максимально компоновать в виде потоков, выполняющихся в пределах одного процесса. [1]

  1. Диспетчеризация задач. Вытеснение. Time slicing

Диспетчеризация задач – это определение очерёдности получения процессами, находящимися в состоянии готовности, ресурсов процессора с целью выполнения этих процессов. Диспетчеризация задачи связана с её переводом из состояния готовности в состояние выполнения (счёта). Диспетчеризация для конкретного процесса может выполняться многократно, т. е. этот процесс может несколько раз переходить из состояния готовности в состояние выполнения и обратно на интервале своего существования. Так как на одном процессоре одновременно могут выполняться команды только одной задачи, диспетчеризация предполагает создание и модификацию очереди готовых к выполнению задач (процессов).

Выделяют две общие группы методов диспетчеризации. Первая группа методов диспетчеризации применяется к потокам, которые разделяют процессор и имеют одинаковый приоритет, т. е. их важность с точки зрения системы одинакова:

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

  2. Карусельная многозадачность (round robin). При этом методе диспетчеризации в системе задается специальная константа, определяющая продолжительность непрерывного выполнения потока, так называемый квант времени выполнения – time slice. Таким образом, выполнение потока может быть прервано либо окончанием его работы, либо блокированием в ожидании ресурса или события, либо завершением кванта времени (того самого time slice). После этого управление передается следующему в очередности потоку. По окончании времени выполнения последнего потока управление передается первому потоку, находящемуся в состоянии готовности. Получается, что выполнение каждого потока разбито на последовательность временных циклов.

Вторая группа методов диспетчеризации связана с необходимостью распределения временных ресурсов процессора между потоками, имеющими разный приоритет. В таких случаях для потоков с равным приоритетом используется один из указанных выше методов диспетчеризации, а передача управления между потоками с разным приоритетом осуществляется одним из следующих методов:

  1. Если в состояние готовности переходят два потока с разными приоритетами, процессорное время передается тому, у которого более высокий приоритет. Данный метод называется приоритетной многозадачностью, но его использование в таком виде связано с рядом сложностей. Если в системе находятся группа потоков с высоким приоритетом и группа потоков с низкими приоритетом, при карусельной многозадачности с приоритетным обслуживанием потоки из второй группы могут быть не обслужены никогда.

  2. Адаптивная многозадачность (широко применяется в интерфейсных системах). Суть метода заключается в том, если какой-то поток не обслуживается дольше определённого времени, его приоритет повышается на единицу. По выполнении потока или по истечении кванта времени, его приоритет возвращает исходное значение. Благодаря такому подходу, очередь более приоритетных потоков не может полностью заблокировать выполнение менее приоритетных потоков.

  3. В задачах реального времени предъявляются специфические требования к методам диспетчеризации, поскольку передача управления потоку должна определяться критическим сроком его обслуживания (deadline-driven scheduling). В наибольшей степени этому требованию соответствует вытесняющая приоритетная многозадачность. Суть этого метода заключается в том, что, как только поток с более высоким, чем у активного потока, приоритетом переходит в состояние готовности, активный поток вытесняется (т. е. из активного состояния принудительно переходит в состояние готовности) и управление передается более приоритетному потоку. [2]