Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
спо шпоры.docx
Скачиваний:
21
Добавлен:
18.03.2015
Размер:
59.23 Кб
Скачать

19) Тупики при выполнении параллельных вычислительных процессов: причины возникновения, методы борьбы с тупиками.

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

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

Эта ситуация называется тупиком, дедлоком, или клинчем.

 Коффман, Элфик и Шошани сформулировали следующие четыре условия для возникновения тупиков.

1.   Условие взаимоисключения (Mutual exclusion).  Каждый ресурс выделен в точности одному процессу или доступен. Процессы требуют предоставления им монопольного управления ресурсами, которые им выделяются.

2.   Условие ожидания ресурсов (Hold and wait). Процессы удерживают за собой ресурсы, уже выделенные им, ожидая в то же время выделения дополнительных  ресурсов (которые при этом  обычно удерживаются другими процессами).

3.   Условие неперераспределяемости (No preemtion). Ресурс, данный ранее, не может быть принудительно забран у процесса. Освобождены они могут быть только процессом, который их удерживает.

 4.  Условие кругового ожидания (Circular wait).  Существует кольцевая цепь процессов, в которой каждый процесс удерживает за собой один/более ресурсов, требующихся другим процессам цепи.

Для тупика необходимо выполнение всех четырех условий.

Основные направления борьбы с тупиками:

  1. Игнорировать данную проблему

  2. Обнаружение тупиков

  3. Восстановление после тупиков

  4. Предотвращение тупиков за счет тщательного выделения ресурсов или нарушения одного из условий возникновения тупиков.

20) Интерфейс прикладного программирования

API подразделяют:

* API как интерфейс высокого уровня, принадлежащий к библиотекам RTL;

* API прикладных и системных программ, входящих в поставку операционной системы; * прочие интерфейсы API.

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

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

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

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

Существует несколько вариантов реализации API:

* реализация на уровне модулей операционной системы;

* реализация на уровне системы программирования;

* реализация на уровне внешней библиотеки процедур и функций.

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