Семафоры

Семафор состоит из счетчика СЧ с целыми значениями и очереди ожидания. При инициализации семафора счетчик принимает начальное значение , а очередь пуста. Семафор может управляться только двумя примитивами P и V, которые являются неделимыми; значения счетчика и очередь ожидания недоступны даже для чтения.

Когда некий процесс выполняет примитив P:

· СЧ:=СЧ-1;

· если СЧ0, то процесс продолжает работу;

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

Когда какой-либо процесс выполняет примитив V:

· СЧ:=СЧ+1;

· если СЧ>0, то процесс продолжает работу;

если СЧ0, то один процесс удаляется из очереди ожидания и получает разрешение продолжить работу; процесс, который обратился к операции V, тоже может продолжать работу.

 

Информационно-вычислительная система фигурирует в исполняемой программе в виде множества объектов. Эти объекты и связанные с ними операции специфицированы в используемом языке. Для того чтобы практически использовать описанную таким образом информационно-вычислительную систему, необходимо каждому объекту поставить в соответствие его конкретное представление в виде некоторой записанной в памяти информации, периферийных устройств и т.д. Работа системы представляется в этом случае действиями, которые изменяют состояние указанных представлений.

Для обозначения объектов, составляющих систему, в программе используются имена. Имя объекта представляет собой информацию, выполняющую двойную функцию: с одной стороны, оно служит для идентификации обозначаемого объекта, т.е. для его выделения среди других объектов; с другой - является «путем доступа» к объекту, т.е. подвержено интерпретации, после которой можно осуществлять действия над объектом. Примерами имен являются идентификаторы, обозначающие переменные и процедуры в языке программирования или файлы в командном языке.

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

Общим термином связь мы будем обозначать установление соответствия между объектом программы и его конкретным представлением. В конечном счете связь выражается соответствием с привлечением идентификаторов и адресов. Такое соответствие часто устанавливается последовательно: от идентификатора к адресу переходят через некоторую последовательность отношений - так называемую цепь доступа.