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

9. Взаимодействие потоков.

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

Взаимоисключения (mutex, мьютекс) – это объект синхронизации, который устанавливается в особое сигнальное состояние, когда не занят каким-либо потоком. Только один поток владеет этим объектом в любой момент времени, отсюда и название таких объектов (mutually exclusive access – взаимно исключающий доступ) – одновременный доступ к общему ресурсу исключается. После всех необходимых действий мьютекс освобождается, предоставляя другим потокам доступ к общему ресурсу.

Семафоры представляют собой доступные ресурсы, которые могут быть приобретены несколькими потоками в одно и то же время, пока пул ресурсов не опустеет. Тогда дополнительные потоки должны ждать, пока требуемое количество ресурсов не будет снова доступно. Семафоры очень эффективны, поскольку они позволяют одновременный доступ к ресурсам.

События. Объект, хранящий в себе 1 бит информации «просигнализирован или нет», над которым определены операции «просигнализировать», «сбросить в непросигнализированное состояние» и «ожидать».

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

Условные переменные (condvars). Сходны с событиями, но не являются объектами, занимающими память – используется только адрес переменной

10. Классификация процессов.

Классификация процессов

1. по временным характеристикам различают интерактивные, пакетные процессы и процессы реального времени.

2. По генеалогическому признаку различают порождающее (родительские) и порожденные (дочерние) процессы.

3. По результативности различают эквивалентные, тождественные и равные процессы.

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

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

6. По связности различают процессы:

а) взаимосвязанные, которые имеют какую-то связь (пространственно-временную, управляющую, информационную);

б) изолированные – слабо связанные;

в) информационно-независимые

г) взаимодействующие

е) конкурирующие.

7. Порядок взаимосвязи

а) предшествования

б) приоритетности

в) взаимного исключения

11. Классификация ресурсов.

1. По возможности расширения свойств делятся на эластичные (допускающие виртуализацию) и жесткие (не допускающие виртуализации).

2. По времени существования: постоянные (доступны во все время процесса: и до, и после его работы) и временные.

3. По степени важности: основные и второстепенные (допускают альтернативное развитие процесса при их отсутствии).

4. По структуре: простые (не содержит составных элементов) и составные. Они различаются числом состояний: простой может быть только в двух состояниях – доступен или занят.

5. По характеру использования распределяемых ресурсов: потребляемые и воспроизводимые ресурсы (допускают многократное использование и освобождение).

6. По характеру использования: последовательно и параллельно используемые (используются несколькими процессами).