Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia (1).docx
Скачиваний:
23
Добавлен:
01.03.2025
Размер:
187.86 Кб
Скачать
      1. Семафоры

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

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

  • СЧ:=СЧ-1;

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

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

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

  • СЧ:=СЧ+1;

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

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

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

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

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

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

    1. Состав цепи доступа

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

Отношение, устанавливающее соответствие между именем объекта и представлением объекта, будем называть отношением обозначения. Совершенно необязательно, чтобы объект, находящийся в отношении обозначения, был конечным звеном в цепи доступа. Он может быть, в свою очередь, интерпретирован как имя, обозначающее другой объект. Цепь доступа может представлять, таким образом, композицию некоторого числа отношений обозначения (Рис. 5 .3). Объект, который играет роль звена в цепи доступа, называется также меткой. Примерами меток являются указатели в языке Паскаль или дескрипторы.

Композиция нескольких отношений обозначения снова является отношением обозначения. Отсюда можно вывести два следствия:

  • имя цепи доступа обозначает не только конечный член этой цепи (представление), но и все промежуточные члены (метки);

  • если некоторая цепь доступа образована, можно получить доступ к представлению, начиная с имени любой из промежуточных меток.

Рис. 5.3. Пример цепи доступа

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]