Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Ответы на экзамен по ОП для ИСТ - файл 10.doc


Ответы на экзамен по ОП для ИСТ
скачать (4632 kb.)

Доступные файлы (16):

10.doc38kb.05.06.2009 10:19скачать
4.doc39kb.05.06.2009 10:53скачать
9.doc32kb.05.06.2009 11:01скачать
File0001-1.jpg500kb.06.06.2009 21:24скачать
File0001.jpg560kb.06.06.2009 21:23скачать
File0002.jpg176kb.06.06.2009 21:06скачать
File0003.jpg430kb.06.06.2009 21:20скачать
File0004.jpg149kb.06.06.2009 21:06скачать
File0005.jpg505kb.06.06.2009 21:26скачать
File0006.jpg237kb.06.06.2009 21:06скачать
File0007.jpg485kb.06.06.2009 21:25скачать
File0008-1.jpg326kb.06.06.2009 21:13скачать
File0008.jpg639kb.06.06.2009 21:25скачать
File0009.jpg227kb.06.06.2009 21:06скачать
File0010.jpg168kb.06.06.2009 21:06скачать
File0011.jpg381kb.06.06.2009 21:13скачать

содержание
Загрузка...

10.doc

Реклама MarketGid:
Загрузка...
10. Примитивы межпроцессорного взаимодействия. Семафор. Мьютекс.
Ситуации, когда приходится процессам взаимодействовать:

• Передача информации от одного процесса другому

• Контроль над деятельностью процессов (например: когда они борются за один ресурс)

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

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

Вводится понятия двух примитивов.

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

wakeup - системный запрос, в результате которого блокированный процесс будет запущен.

 



Применение примитивов

 

Основное преимущество - это отсутствие активного ожидания..

Проблема заключается в следующем, если спулер пуст, то wakeup срабатывает в пустую.
Семафоры - переменные для подсчета сигналов запуска, сохраненных на будущее.

Были предложены две операции down и up (аналоги sleep и wakeup).

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

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

Мьютексы — это один из вариантов семафорных механизмов для организации взаимного исключения. Они реализованы во многих ОС, их основное назначение — организация взаимного исключения для потоков из одного и того же или из разных процессов.

Мьютексы — это простейшие двоичные семафоры, которые могут находиться в одном из двух состояний — отмеченном или неотмеченном (открыт и закрыт соответственно). Когда какой-либо поток, принадлежащий любому процессу, становится владельцем объекта mutex, последний переводится в неотмеченное состояние. Если задача освобождает мьютекс, его состояние становится отмеченным.
Примитивы межпроцессного взаимодействия – механизмы, позволяющие управлять взаимодействием процессов, в частности (главная задача) управлять доступом процессов в критическую секцию.

К базовым примитивам относят семафоры.

Семафор – переменная, принимающая неотрицательные целые значения, для которой определены две операции: увеличение на единицу и уменьшение на единицу. Если при вызове операции уменьшения семафор уже равен нулю, то процесс, который вызвал эту операцию, блокируется на этом шаге (на вызове) до тех пор, пока семафор не примет положительное значение. Операции уменьшения и увеличения реализуются ОС или средой выполнения программы и неделимы.

Мьютекс – семафор, принимающий только два значения: 0 или 1.

Необходим пример.


Скачать файл (4632 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru