Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Контекстное переключение задач.



Контекст задачи – это набор дан­ных, содержащий всю необходимую информацию для возобновления вы­полнения задачи с того места, где она была ранее прервана. Часто контекст хранится в TCB и включает в себя такие данные, как счетчик команд, указатель стека, регистры CPU и FPU и т. п. Плани­ровщик задач в случае необходимости сохраняет контекст текущей активной задачи и восстанавливает контекст за­дачи, назначенной к исполнению. Та­кое переключение контекстов и явля­ется, по сути, основным механизмом ОС РВ при переходе от выполнения од­ной задачи к выполнению другой.

Если задача приостанавливается из-за блокировки или потому что ее вытес­нили, необходимо сохранить текущий контекст, то есть состояние процессора. Сюда относятся аппаратные регистры, счетчик команд задачи (который указыва­ет на следующую команду, подлежащую выполнению) и другая информация. Ког­да задача снова получит ЦП, контекст требуется восстановить. Эта последователь­ность операций называется контекстным переключением.

В мультипроцессорной среде с разделяемой памятью копия ядра обычно вы­полняется на каждом процессоре. Процессор выбирает задачу, находящуюся в на­чале списка готовых. Взаимно исключающий доступ к списку обеспечивает аппа­ратный семафор, который обычно реализуется с помощью команды Test and Set Lock (проверить и установить замок). Таким образом, одна и та же задача может в разные моменты времени исполняться на разных процессорах. В некоторых мультипроцессорных средах потоки одного многопоточного процесса могут па­раллельно выполняться на разных процессорах.



Стандарт POSIX.

Стандарт 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. Сервисы времени.

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

– часы и таймеры реального времени;

24. Стандарт POSIX. [2]

 

3. Сервисы управления памятью:

– захват памяти задачей (см. следующий раздел);

– файлы, проецируемые на память, и разделяемая память;

4. сервисы ввода/вывода:                                        

– синхронный ввод/вывод;                  

– асинхронный ввод/вывод. Этот сервис необходим для реализации пере­крытия между процессорными вычислениями и вводом/выводом.

Стандарт POSIX 1003.1с добавляет к POSIX спецификацию параллельных потоков, которые позволяют программе запускать несколько экземпляров проце­дуры, выполняемых в раздельных потоках управления (задачах). Исполняемая программа представляет собой тяжеловесный процесс, имеющий собственное ад­ресное пространство. Поток внутри него – это облегченный процесс.

В терминологии POSIX тяжеловесные процессы называются просто процес­сами, а облегченные процессы – потоками (thread). Все потоки внутри данного процесса функционируют в одном и том же адресном пространстве.


Поделиться:



Последнее изменение этой страницы: 2019-04-21; Просмотров: 232; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.013 с.)
Главная | Случайная страница | Обратная связь