Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРВ 2013.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
361.98 Кб
Скачать

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). Все потоки внутри данного процесса функционируют в одном и том же адресном пространстве.