Разделы презентаций


Многозадачность

8. Многозадачность, ядро RTOS 2002 v.0.4Вызов сервисаСоздать_задачу(…)Программа ‘Х’Описание действия, выполняемых задачейСоздание дескриптораПриложение«Виртуальная машина» (Операционная система)адрес ‘X’адрес стека

Слайды и текст этой презентации

Слайд 18. Многозадачность, ядро RTOS

2002 v.0.4
8. Многозадачность, ядро RTOS

«Виртуальная

машина»:
Многозадачность
Надежная синхронизация


Задача_1

Задача_N

. . .

Приложение

API

Аппаратная платформа

«Объект»
(Внешняя среда)

Задача – работа, выполняемая машиной; задаче соответствует статическая программа, описывающая поведение машины
Приложение – совокупность задач, конкурирующих за ресурс (процессор, память, ввод/вывод)
API (Application Program Interface) – функции операционной системы, доступные из прикладной программы (сервисы операционной системы)

8. Многозадачность, ядро RTOS            2002 v.0.48.

Слайд 28. Многозадачность, ядро RTOS

2002 v.0.4


Вызов сервиса
Создать_задачу(…)

Программа ‘Х’

Описание
действия,


выполняемых
задачей

Создание дескриптора

Приложение

«Виртуальная машина» (Операционная система)



адрес ‘X’

адрес стека



Дескриптор задачи (ТСВ)

Динамическое создание задачи

8. Многозадачность, ядро RTOS            2002 v.0.4Вызов

Слайд 38. Многозадачность, ядро RTOS

2002 v.0.4



return


x:
Системный стек
Процедура обработки прерывания
«Основная»

программа


Событие i

Восстановление контекста, возврат из прерывания


Контекст «основной программы»
в точке x

x

Адрес P

Обработка прерывания

Вектор прерывания i-го события


Запоминание контекста, передача управления по адресу Р

Регистр указателя стека (SP)

Р:

return - инструкция возврата из процедуры обработки прерывания, автоматически восстанавливает контекст

8. Многозадачность, ядро RTOS            2002 v.0.4returnx:Системный

Слайд 48. Многозадачность, ядро RTOS

2002 v.0.4
Обработчик прерывания – при

каждом событии активизируется с адреса Р
Активизация задачи – должна производится с той точки, где она была приостановлена
Идея реализации переключения - по событию, требующему активизации новой задачи, обработчик прерывания:
обеспечивает запоминание контекста текущей задачи в ее стеке
из дескриптора новой задачи «достает» адрес стека
делает этот стек текущим
осуществляет возврат в соответствии с контекстом из нового стека

Переключение задач

8. Многозадачность, ядро RTOS            2002 v.0.4Обработчик

Слайд 58. Многозадачность, ядро RTOS

2002 v.0.4


Задача А
Задача B
x1:

x0:
y0:

События
s2
SP
s1:
s2:
Стек A
Стек

B

Переключение задач, пример



y1:






адрес программы ‘А’

адрес стека s1


адрес программы ‘В’

адрес стека s2

ТСВ А

ТСВ В


адрес возврата x1

Контекст А
в точке x1


адрес возврата у0

Контекст В
в точке у0

*

**

(Обработчики прерываний на рисунке не показаны)

8. Многозадачность, ядро RTOS            2002 v.0.4Задача

Слайд 68. Многозадачность, ядро RTOS

2002 v.0.4
Событие * :
Контекст задачи

(в том числе адрес возврата x1) помещается в «активный» стек A
Из ТСВ задачи В выбирается адрес стека s2 и помещается в регистр процессора SP – стек задачи В становится «активным»
Передача управления по адресу возврата из нового «активного» стека B - (y0)
Действия задачи B
Событие **:
Контекст задачи (в том числе адрес возврата y1) помещается в «активный» стек B
Из ТСВ задачи А выбирается адрес стека s1 и помещается в регистр процессора SP – «активным» становится стек задачи А
Передача управления по адресу (x1) из нового «активного» стека А с восстановлением контекста
Действия задачи А

Переключение задач, пример (2)

8. Многозадачность, ядро RTOS            2002 v.0.4Событие

Слайд 78. Многозадачность, ядро RTOS

2002 v.0.4
Инициирование переключения
События вызывают прерывания
Аппаратные

(interrupt)
сигналы от аппаратуры – готовность АЦП, таймер, нажатие кнопки на функцианальной клавиатуре ...
программные (trap)
обращение к функциям, реализующим API (системные вызовы) – создание задачи, завершение задачи, приостановка задачи, вызов семафорной операции ....

Прерывания инициируют переключение задач

8. Многозадачность, ядро RTOS            2002 v.0.4Инициирование

Слайд 88. Многозадачность, ядро RTOS

2002 v.0.4
Таймер
Обработчик прерывания

t
t

Дисциплины переключения (диспетчеризация

задач)

Time-slicing

Задача 1


t

Задача 2

t





Вытеснение (preempting)

Событие

Обработчик прерывания


t

t


Задача 1


t

Задача 2

t




При ограничениях жесткого реального времени не применяется !

8. Многозадачность, ядро RTOS            2002 v.0.4ТаймерОбработчик

Слайд 98. Многозадачность, ядро RTOS

2002 v.0.4


Диспетчеризация задач
Диспетчеризация -

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


адрес ‘X’

адрес стека



приоритет

Дескриптор задачи (TCB)

8. Многозадачность, ядро RTOS            2002 v.0.4

Слайд 108. Многозадачность, ядро RTOS

2002 v.0.4

create_task
suspend_task
create_timer
...
Управление задачами
Системные вызовы

(trap)

case of

Внешние прерывания

Прерывания от таймера

Возврат в задачу

Обработка
аппаратных
прерываний

Таймерные
сервисы

Ядро операционной системы

8. Многозадачность, ядро RTOS            2002 v.0.4create_tasksuspend_taskcreate_timer

Слайд 118. Многозадачность, ядро RTOS

2002 v.0.4
Состояния задачи
Blocked
Ready
Running
создание задачи
активизация
вытеснение
ресурс занят
ресурс

освободился


адрес ‘X’

адрес стека



приоритет

состояние

TCB

8. Многозадачность, ядро RTOS            2002 v.0.4Состояния

Слайд 128. Многозадачность, ядро RTOS

2002 v.0.4
Управление задачами
ОЧЕРЕДЬ ГОТОВЫХ
(Ready tasks)





ПЛАНИРОВЩИК
(Scheduler)

ИСПОЛНЯЕМАЯ
ЗАДАЧА
(Running

task)

Q1





Q2





Qn






ОЧЕРЕДИ БЛОКИРОВАННЫХ
(Blocked tasks)

ДИСПЕТЧЕР
(Dispatcher)


RQ

8. Многозадачность, ядро RTOS            2002 v.0.4Управление

Слайд 138. Многозадачность, ядро RTOS

2002 v.0.4
Планирование (scheduling) – определение

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

Планирование и диспетчеризация задач

8. Многозадачность, ядро RTOS            2002 v.0.4Планирование

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика