
- •1. Что такое функционирование в «Реальном масштабе времени»
- •2. Приведите примеры функционирования в реальном масштабе времени
- •3. Что такое время реакции системы
- •4. Что такое «жесткое» и «мягкое» реальное время.
- •5. Классификация опер-х систем реального времени.
- •6. Требования к осрв
- •7. Задачи, процессы, потоки
- •8. Основные свойства задач.
- •9. Планирование циклических задач, кооперативная многозадачность
- •10. Планирование в режиме разделения времени
- •11. Алгоритм планирования – приоритетная задача с вытеснением
- •12. Виды синхронизации задач
- •14. Синхронизация доступа задач к общему ресурсу
- •15. Семафоры
- •16. Критические секции, мутексы
- •17. Смертельный захват, инверсия во времени
- •18. Синхронизация задач с внешними событиями
- •19. Синхронизация во времени
- •20. Linux реального времени.
- •21. Операц-е системы реального времени и Windows
- •22. Операционная система qnx.
- •23. Контекстное переключение задач.
- •24. Стандарт posix.
23. Контекстное переключение задач.
Контекст задачи – это набор данных, содержащий всю необх-ую инф-ию для возобновления выполнения задачи с того места, где она была ранее прервана. Часто, контекст хранится в TCB(Task Control Block) и вкл-ет в себя такие данные, как счетчик команд, указатель стека, регистры CPU(central processing unit) и FPU(floating point unit) и т. п. Планировщик задач в случае необходимости сохраняет контекст текущей активной задачи и восстанавливает контекст задачи, назначенной к исполнению. Такое переключение контекстов и является, по сути, основным механизмом ОС РВ при переходе от выполнения одной задачи к выполнению другой.
Если задача приостанавливается из-за блокировки или потому что ее вытеснили, необходимо сохранить текущий контекст, то есть состояние процессора. Сюда относятся аппаратные регистры, счетчик команд задачи (который указывает на следующую команду, подлежащую выполнению) и другая инф-ия. Когда задача снова получит ЦП, контекст требуется восстановить. Эта последовательность операций называется контекстным переключением.
В мультипроцессорной среде с разделяемой памятью копия ядра обычно выполняется на каждом процессоре. Процессор выбирает задачу, находящуюся в начале списка готовых. Взаимно исключающий доступ к списку обеспечивает аппаратный семафор, который обычно реализуется с помощью команды Test and Set Lock (проверить и установить замок). Т.о., одна и та же задача может в разные моменты времени исполняться на разных процессорах. В некоторых мультипроцессорных средах потоки одного многопоточного процесса могут парал-но выполняться на разных процессорах.
24. Стандарт posix.
POSIX (Portable Operating System Interface Standard – стандарт переносимого интерфейса операц-ой системы) – это стандарт разработки прогр-го обеспечения операц-х систем, принятый IEEE. Обычно его наз-ют POSIX 1003. POSIX основан на опер-ой с-ме UNIX – наиб. распростр-ой переносимой ОС. POSIX 1003.1 определяет базовые сервисы опер-ой системы, POSIX 1003.b – расширения для режима реал. времени, а POSIX 1003.1с – расширения для параллельной обработки.
Как следует из названия, POSIX - это стандарт на сопряжение (интерфейс) м/у опер-й с-мой и прикладной программой. В тексте POSIX неоднократно подчерк-ся, что стандарт не выдвигает никаких требований к деталям реализации опер-й системы; его можно рассматривать как совокупность договоренностей м/у прикладными программистами и разработчиками опер-х систем.
Одним из важнейших свойств стандарта POSIX явл-ся то, что он определяет "стандартизованный программный интерфейс", которого должны придерживаться разработчики сложных программно-аппаратных систем.
Стандарт POSIX 1003.1 задает библиотечные функции, кот-е должна поддерживать любая POSIX-совместимая система UNIX, н-р, open, read и fork.
POSIX 1003.1b определяет стандартный интерфейс опер-ой с-мы реал. времени: системные вызовы, списки параметров и инф-ю о состоянии, возвращаемую каждым вызовом.
В стандарте POSIX 1003.1b указаны следующие сервисы:
1. Сервисы для упр-я парал-ми задачами. Следующие три сервиса предоставляют средства для обмена информацией между задачами и для синхронизации:
– двоичные семафоры;
– сигналы реального времени;
– передача сообщений. Этот сервис позволяет задаче с наивысшим приоритетом получать процессор по первому запросу, а значит, гарантирует быструю реакцию для наиболее критичных по времени задач;
– вытесняющее планирование с приоритетами;
2. Сервисы времени.
След-й сервис важен для реализации событий таймера с высоким разрешением и выполнения измерений в СРВ:
– часы и таймеры реального времени;
3. Сервисы управления памятью:
– захват памяти задачей;
– файлы, проецируемые на память, и раздел-ая память;
4. Сервисы ввода/вывода:
– синхронный ввод/вывод;
– асинхронный ввод/вывод. Этот сервис необходим для реализации перекрытия м/у процессорными вычислениями и вводом/выводом.
Стандарт POSIX 1003.1с добавляет к POSIX спецификацию парал-ых потоков, которые позволяют программе запускать несколько экземпляров процедуры, выполняемых в раздельных потоках управления (задачах). Исполняемая программа предст-ет собой тяжеловесный процесс, имеющий собственное адресное пространство. Поток внутри него – это облегченный процесс.
В терминологии POSIX тяжеловесные процессы называются просто процессами, а облегченные процессы – потоками (thread). Все потоки внутри данного процесса функционируют в одном и том же адресном пространстве.