Читайте также:
|
|
Средства межпроцессного взаимодействия. Сигнальные средства связи.
Сигнал – средство связи, передающее минимум информации (вплоть до 1 бита). Адресат должен знать что означает данный сигнал, иначе сигнал будет пропущен. Адресат может проигнорировать сигнал. В ОС есть набор сигналов с известным значением и конкретной ожидаемой реакцией, а также несколько пользовательских сигналов, которые программист может использовать для своего усмотрения.
Средства межпроцессного взаимодействия. Канальные средства связи.
PIPE (англ.) – труба. Предназначен для передачи большого объема данных между двумя процессами. На поток передаваемых данных не накладывается никакая структура.
1) Программные каналы (PIPE) – создаются в памяти и адресуются адресам ячейки памяти. Они не имеют никакого наименования, месторасположения и т.д., поэтому, могут использоваться только генеалогически связанными процессами, которым известны адрес PIPE в памяти. Используются при организации конвейеров. Содержат встроенные средства синхронизации. При попытке чтения из пустого канала процесс блокируется. Поэтому все процессы конвейера работают параллельно, производя последовательную обработку данных.
2) Именованные каналы (FIFO) – это каналы, которые располагаются в памяти и отражены в ФС файлами специального типа (FIFO). Файл имеет стандартное для ФС имя и путь, по которому к данному именованному каналу может обратиться любой процесс. На диске данный файл отсутствует, являясь отражением области памяти.
Сообщение – это средство связи определенной структуры, включающее заголовок и тело данных. В заголовке могут содержаться адрес, тип сообщения и другие, обязательные и необязательные поля.
Синхронизация параллельных процессов. Критические ресурсы. Критический участок.
Критический ресурс – это ресурс или данные разделяемые между несколькими процессами, за обладание которыми состязаются несколько процессов. Такие процессы находятся в состоянии гонки.
Критический участок – это участок кода программы, в котором производится работа с критическим ресурсом.
while (true) {
prolog
critical section
epilog
remainder section }
4. Cинхронизация параллельных процессов. Понятие взаимного исключения.
Взаимоисключение – это прием, обеспечивающий монопольное взаимодействие одного процесса с критическим ресурсом. Если с критическим ресурсом работает один процесс, то доступ других процессов к этому ресурсу блокируется.
Синхронизация параллельных процессов. Условия Бернстайна.
Активность – набор атомарных (неделимых) операций.
Набор активностей называется детерминированным, если из определенных входных данных при псевдопараллельном выполнении этих активностей всегда получаются определенные выходные. Недетерминированный набор активностей не может использоваться в вычислительных системах.
Условия детерминированности Бернстайна:
Набор активностей детерминирован, если входные данные одной активности не пересекаются с выходными данными другой, а также выходные данные активностей не пересекаются.
Условия Бернстайна слишком жесткие, поскольку описываются невзаимодействующие процессы или активности. Поэтому, для обеспечения детерминированности набора активностей или процессов используются методы синхронизации.
Дата добавления: 2015-08-13; просмотров: 272 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Это уже было | | | Требования, предъявляемые к алгоритмам организации взаимодействия процессов. |