Поддержка исполнения в мультипрограммной и мультипроцессорной средах



Поддержка исполнения параллельных вычислений реализуется:

– ядром операционной системы. Оно предоставляет сервисы, необходимые для параллельной обработки. В некоторых современных операционных сис­темах минимальную поддержку дает микроядро, а все остальное – систем­ные задачи;               

– системой времени исполнения в языке программирования, поддерживаю­щем параллелизм;

– пакетом для поддержки потоков. Предоставляет сервисы, необходимые для управления потоками (облегченными процессами) внутри тяжеловесного процесса.

Планирование задач

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

Алгоритмы планирования задач. Цель циклического алгоритма планирования – обеспечить справедливое вы­деление ресурсов. Задача ставится в очередь, поддерживающую принцип «первым пришел – первым обслужен» (FIFO).

Для систем реального времени циклическое планирование не годится. Задачам нужно назначать при­оритеты в соответствии с важностью выполняемых операций. Так, критичные по времени задачи обязательно должны уложиться в отведенные временные рамки. Поэтому для систем реального времени больше подходит алгоритм вытесняюще­го планирования с приоритетами. Каждой задаче назначается приоритет, и спи­сок готовых упорядочивается по значению этого приоритета. ЦП выделяется задаче с наивысшим приоритетом. Затем эта задача выполняется до тех пор, пока не приостановится сама либо не будет вытеснена задачей с большим приоритетом (которая только что возобновила работу). Задачам с одинаковыми приоритетами ЦП выделяется по циклическому алгоритму.

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

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

Вопросы ввода/вывода в операционной системе 

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

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

Если ввод/вывод управляется прерываниями, то при поступлении входных данных и завершении операции вывода генерируется прерывание. Есть множест­во способов, но наиболее распространены ввод/вывод с управлением от про­граммы и ввод/вывод, запускаемый программой. В первом случае прерывание обычно генерируется после чтения или записи каждого символа, во втором между устройством ввода/вывода и основной памятью помещается устройство прямого доступа к памяти (Direct Memory Access – DMA), управляющее передачей бло­ков данных между ними. По завершении передачи устройство DMA генерирует прерывание. . Когда используется ввод/вывод с опросом, прерывания отсутствуют. Поэто­му система должна периодически проверять устройство ввода, чтобы понять, не пришли ли новые данные, или устройство вывода, чтобы выяснить, завершилась ли операция.


Дата добавления: 2018-08-06; просмотров: 205; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!