24518

Назначение и использование семафоров

Доклад

Информатика, кибернетика и программирование

Пусть буферный пул состоит из N буферов каждый из которых может содержать одну запись рис. Для решения задачи введем три семафора: e число пустых буферов; f число заполненных буферов; b блокирующая переменная двоичный семафор используемый для обеспечения взаимного исключения при работе с разделяемыми данными в критической секции. Использование семафоров для синхронизации потоков Здесь операции Р и V имеют следующее содержание: Ре если есть свободные буферы то уменьшить их количество на 1 если нет то перейти в состояние...

Русский

2013-08-09

46.4 KB

9 чел.

Вопрос 23. Назначение и использование семафоров.

§4.4.4Семафоры.

Семафор является средством управления доступом к разделяемому ресурсу со стороны выполняющихся параллельно потоков. Семафор – это специальная блокирующая переменная, которая может принимать только целые неотрицательные значения: 0; 1; 2; 3 и т. д. В частном случае, когда семафор может принимать только значения 0 и 1, он превращается в блокирующую переменную, называемую двоичным семафором.

Над семафором можно проводить только две операции, традиционно обозначаемые буквами V и Р:

V- операция (освобождение ресурса) – увеличение значения семафора на 1;

Р- операция (занятие ресурса) – уменьшение значения семафора на 1.

Пусть переменная S представляет собой семафор. Тогда операции V(S) и P(S) определяются следующим образом:

V(S) : переменная S увеличивается на 1 единым действием, если это возможно. Выборка, наращивание и запоминание S не могут быть прерваны. К переменной S нет доступа другим потокам во время выполнения этой операции.

P(S) : переменная S уменьшается на 1 единым действием, если это возможно. Если S=0 и ее невозможно уменьшить, оставаясь в области целых неотрицательных значений, поток, вызывающий операцию P, ждет, пока это уменьшение станет возможным. Успешная проверка и уменьшение S также является неделимой операцией.

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

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

Пусть буферный пул состоит из N буферов, каждый из которых может содержать одну запись (рис. 4.11). Потоки-писатели должны приостанавливаться, когда все буферы оказываются занятыми, и активизироваться при освобождении хотя бы одного буфера. Напротив, потоки-читатели должны приостанавливаться, когда все буферы пусты, и активизироваться при появлении хотя бы одной записи. Операции записи в буфер и считывания из буфера являются критическими секциями потоков-читателей и потоков-писателей.

Для решения задачи введем три семафора:

e – число пустых буферов;

f – число заполненных буферов;

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

V-освобождение

ресурса

Р-занятие ресурса

Рис. 4.11. Использование семафоров для синхронизации потоков

Здесь операции Р и V имеют следующее содержание:

Р(е) – если есть свободные буферы, то уменьшить их количество на 1, если нет, то перейти в состояние «ожидание»;

P(b) – если критическая секция доступна, то установить признак «занято» (b=0), если нет, то перейти в состояние «ожидание»;

V(b) – освободить критическую секцию (установить b=1);

V(f) – нарастить число занятых буферов.

Следует учитывать, что уменьшение количества свободных и увеличение числа занятых буферов – разные операции.

Поток-писатель, прежде всего, проверяет, имеются ли в пуле пустые буферы, используя семафор P(e). Если свободных буферов нет (е=0), то поток переводится в состояние ожидания. Если свободные буферы есть (е>0), то поток-писатель уменьшает их число и входит в критическую секцию (если это возможно, т.е. если b=1) для записи данных в буфер. После выхода из критической секции поток-писатель наращивает число занятых буферов V(f).

Поток-читатель действует аналогично, с той разницей, что он начинает работу с проверки наличия заполненных буферов – P(f), а после чтения данных наращивает количество свободных буферов – V(e).


 

А также другие работы, которые могут Вас заинтересовать

29170. Почерковедческая экспертиза 62 KB
  Следовательно объектами почерковедческой экспертизы являются рукописные документы фрагменты рукописных текстов краткие записи буквенные и цифровые подписи. Одним или разными лицами выполнены тексты подписи в различных документах либо отдельной части текста в одном документе например подписи от имени гна Иванова в накладной и расходном ордере или рукописный текст и подпись от имени гна Иванова Диагностические задачи связаны с решением вопросов: 1. Свободные образцы рукописи и подписи выполненные до начала производства по...
29172. Установление дистанции выстрела 56 KB
  Принято выделять 3 основных дистанции выстрела: 1 выстрел в упор Выстрел в упор происходит тогда когда дульный срез оружия касается преграды при производстве выстрела. В этом случае: может наблюдаться отпечаток дульного среза оружия штанцмарка на преграде теле человека дополнительные следы выстрела находятся внутри раневого канала. 2 выстрел с близкого расстояния В этом случае дополнительные факторы следы выстрела находятся вокруг входного отверстия.
29173. Криминалистическая регистрация 58.5 KB
  Виды учетов соответствующие им формы информационных карт а также порядок систематизации информации об объектах учета в рамках одного вида учета определяется МВД России. Криминалистическая регистрация насчитывает множество различных видов учетов. Оперативносправочные учеты чаще всего характерно наличие причинноследственной связи между объектом учета и событием преступлением. К оперативносправочным учетам относят учет: лиц подвергшихся аресту; лиц осужденных за совершение преступлений; лиц находящихся в розыске; лиц совершивших...
29174. Криминалистическое исследование документов 58.5 KB
  Исследование письма. Объектами криминалистического исследования письма являются письменная речь и почерк: 1 почерковедческое исследование; 2 автороведческое исследование. Техникокриминалистическое исследование.
29175. Автороведческое исследование документов 58.5 KB
  В письменной речи выделяют общие и частные языковые навыки. К общим языковым навыкам относят: стилистические навыки; синтаксические навыки; лексикофразеологические навыки; орфографические навыки; пунктуационные навыки. К частным признакам письменной речи относят устойчивые нарушения речи индивидуальные лексические грамматические навыки свойственные конкретному исполнителю.
29176. Криминалистическая габитоскопия 60 KB
  Криминалистически значимыми свойствами внешности человека являются ее неповторимость и относительная устойчивость так контуры лба лица форма головы и другие признаки лица обусловлены строением черепа. Все признаки внешности можно разделить на две группы: 1 собственные признаки; 2 сопутствующие признаки. форма отдельных частей тела головы лица шеи плеч груди спины рук ног; антропологические признаки раса национальность; функциональные динамические признаки осанка походка голос жестикуляция мимика и т. К...
29177. Криминалистика 26.5 KB
  4х звенная система: общие положения криминалистики теория идентификации трасология цели и задачи криминалистическая техника: общие и специальные положения криминалистическая фотография видеосъемка и звукозапись криминалистическая трасология криминалистическое исследование оружия криминалистическая габитоскописия криминалистическое исследование документов и учет криминалистическая тактика: общие и специальные положения версии и планирование расследование преступления тактика осмотра и освидетельствования тактика задержания...
29178. Криминалистическая идентификация 28.5 KB
  Научными основами идентификации являются: индивидуальная определенность объекта устойчивость признаков способность оставлять отображения в теории и практике различают 2 формы отображения: 1. идеальная только в памяти человека Трудности в установлении свойств объектов по их признакам проистекают из ограниченного объема информации отразившейся в средах неблагоприятных условий отражения свойств при следообразовании использования приемов маскировки и фальсификации признаков изменение свойств объекта со временем. Фрагментированные части...