Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ ВСЕ.docx
Скачиваний:
31
Добавлен:
16.04.2019
Размер:
1.69 Mб
Скачать

7.21. Назначение компонента диспетчер в z/os.

В z/OS компонент диспетчера отвечает за передачу управления единице работы

с наивысшим приоритетом, готовой к выполнению. Процессы диспетчера работают в следующем порядке:

1. Специальные «выходы». Представляют собой «выходы» на подпрограммы, имеющие высокий приоритет из-за особых условий в системе. Например, при отказе одного из процессоров в многопроцессорной системе вызывается процесс восстановления альтернативного CPU посредством специального «выхода» для восстановления работы, выполнявшейся на отказавшем процессоре.

2. SRB, имеющие глобальный приоритет.

3. Готовые адресные пространства в порядке приоритета.

Адресное пространство готово к выполнению, если оно загружено и не ожидает завершения какого-либо события. Приоритет адресного пространства определяется диспетчерским приоритетом, определяемым пользователем или инсталляцией. После выбора адресного пространства с наивысшим приоритетом z/OS (посредством диспетчера) сначала диспетчеризует SRB с локальным приоритетом, запланированные для этого адресного пространства, и затем TCB в этом адресном пространстве. Если в системе нет работы, готовой к выполнению, z/OS переходит в режим разрешенного ожидания до тех пор, пока новая работа не поступит в систему. Различные модели оборудования z/Series могут иметь от одного до 54 центральных процессоров (CP)1. Все CP могут выполнять инструкции одновременно. Диспетчерские приоритеты определяют, когда следует начать диспетчеризацию готовых к выполнению адресных пространств.

Адресное пространство может находиться в одной из четырех очередей:

• IN-READY – находится в основной памяти и ожидает диспетчеризации;

• IN-WAIT – находится в основной памяти, но ожидает завершения некоторого

события;

• OUT-READY – готово к выполнению, но выгружено из основной памяти;

• OUT-WAIT – выгружено из основной памяти и ожидает завершения некоторого события.

Только задачи в очереди IN-READY можно выбрать для диспетчеризации.

7.22. Синхронизация использования ресурсов. Организация очередей. Блокировка ресурсов.

В многозадачной многопроцессорной среде синхронизация использования ресурсов представляет собой метод координирования доступа к ресурсам, используемых несколькими приложениями. Программам, изменяющим данные, требуется исключительный доступ к этим данным. В противном случае, если несколько программ одновременно выполнят изменение одних и тех же данных, это может привести к повреждению данных. Программы, которым требуется только чтение данных, могут осуществлять одновременный доступ к одним и тем же данным. Наиболее распространенными методами являются организация очередей и блокировка. В z/OS организацией очередей управляет компонент глобальной синхронизации ресурсов и блокировкой управляет несколько программ управления блокировкой, входящих в супервизорный компонент.

Глобальная синхронизация ресурсов осуществляет синхронизацию доступа к ресурсам для защиты их целостности. В инсталляции две или больше систем z/OS могут быть связаны адаптерами канал-канал (CTC) для создания GRS-комплекса и синхронизации доступа к ресурсам, совместно используемым различными системами.

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

Организация очередей является средством запрашивания программой, выполняющейся в z/OS, управления ресурсами с последовательным многократным использованием. Если требуется внести изменения в ресурсы, программа должна запросить исключительное управление; если в ресурсы не требуется вносить изменений, программе следует запросить разделяемое управление, позволяющее осуществлять доступ совместно с другими программами, не требующими исключительного управления. Если ресурс недоступен, система приостанавливает выполнение запрашивающей программы до тех пор, пока ресурс не освободится. Когда программе больше не требуется управление ресурсом, она использует макрос DEQ для его освобождения.

Блокировка представляет собой именованное поле в памяти, указывающее, используется ли ресурс и кто его использует. В z/OS существует два типа блокировок: глобальные блокировки, предназначенные для ресурсов, связанных с несколькими адресными пространствами, и локальные блокировки, предназначенные для ресурсов, назначенных определенному адресному пространству. Глобальные блокировки накладываются для подпрограмм, не допускающих многократное или совместное использование, и различных ресурсов. Для того чтобы использовать ресурс, защищенный блокировкой, подпрограмма должна сначала запросить блокировку для этого ресурса. Если блокировка недоступна, то программа или процессор, запросившие блокировку, предпринимают действие, зависящее от того, используется ли спин-блокировка или отсроченная блокировка:

Если спин-блокировка недоступна, запрашивающий процессор продолжает проверять доступность блокировки до тех пор, пока другой процессор ее не освободит.

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

Для того чтобы избежать тупиковой ситуации, блокировки организованы в иерархию и процессор или подпрограмма может запросить только блокировки, расположенные выше по иерархии, чем блокировки, удерживаемые ей на данный момент.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]