- •1.Классификация программного обеспечения. Функции операционных систем.
- •2.Примеры операционных систем. Требования, предъявляемые к операционной системе на примере операционной системы управления химическим реактором.
- •3.Механизмы выполнения программ: понятия активности, контекста активности, точки наблюдения.
- •4.Механизмы выполнения программ: стек выполнения, алгоритм вызова процедур.
- •Приоритет и маскировка прерываний
- •Общая организация ввода/вывода
- •Адресация периферийных устройств
- •Управление периферийными устройствами
- •Принципы работы канала ввода-вывода. Буферный ввод-вывод.
- •Организация простейшей ос для одного пользователя исходя из метода нисходящей декомпозиции (мнд)
- •Система управления файлами.
- •Машина ввода вывода.
- •Стратегия выбора буфера.
- •Далее 4 и 5 работа
- •Взаимодействие совокупности процессов
- •Синхронизация процессов
- •Блокировка памяти
- •Проверка и установка
- •Монитор Хоара
- •Семафоры
- •Состав цепи доступа
- •Структура представлений. Дескрипторы
Семафоры
Семафор состоит из счетчика СЧ с
целыми значениями и очереди ожидания.
При инициализации семафора счетчик
принимает начальное значение
,
а очередь пуста. Семафор может управляться
только двумя примитивами P
и V, которые являются
неделимыми; значения счетчика и очередь
ожидания недоступны даже для чтения.
Когда некий процесс выполняет примитив P:
СЧ:=СЧ-1;
если СЧ
0,
то процесс продолжает работу;если СЧ<0, то процесс блокируется и становится в очередь ожидания; он остается заблокированным до тех пор, пока примитив P, выполненный другим процессом, не освободит его.
Когда какой-либо процесс выполняет примитив V:
СЧ:=СЧ+1;
если СЧ>0, то процесс продолжает работу;
если
СЧ
0,
то один процесс удаляется из очереди
ожидания и получает разрешение продолжить
работу; процесс, который обратился к
операции V,
тоже может продолжать работу.
Информационно-вычислительная система фигурирует в исполняемой программе в виде множества объектов. Эти объекты и связанные с ними операции специфицированы в используемом языке. Для того чтобы практически использовать описанную таким образом информационно-вычислительную систему, необходимо каждому объекту поставить в соответствие его конкретное представление в виде некоторой записанной в памяти информации, периферийных устройств и т.д. Работа системы представляется в этом случае действиями, которые изменяют состояние указанных представлений.
Для обозначения объектов, составляющих систему, в программе используются имена. Имя объекта представляет собой информацию, выполняющую двойную функцию: с одной стороны, оно служит для идентификации обозначаемого объекта, т.е. для его выделения среди других объектов; с другой - является «путем доступа» к объекту, т.е. подвержено интерпретации, после которой можно осуществлять действия над объектом. Примерами имен являются идентификаторы, обозначающие переменные и процедуры в языке программирования или файлы в командном языке.
При реализации системы на машине составляющие ее объекты конкретизируются информацией, позволяющей физическим процессорам получить к ним доступ. Эта информация также представляется в виде имен, однако для физической локализации чаще всего используют в этом случае термин адрес. Речь может идти об адресах ячеек памяти, адресах процессоров или периферийных устройств, а также о номерах дорожки или сектора на диске.
Общим термином связь мы будем обозначать установление соответствия между объектом программы и его конкретным представлением. В конечном счете связь выражается соответствием с привлечением идентификаторов и адресов. Такое соответствие часто устанавливается последовательно: от идентификатора к адресу переходят через некоторую последовательность отношений - так называемую цепь доступа.
Состав цепи доступа
Рассмотрим теперь более подробно отношения, которые составляют цепь доступа. Напомним, что речь идет о том, чтобы перейти от некоторого идентификатора X, обозначающего объект, к конкретному представлению R этого объекта.
Отношение, устанавливающее соответствие между именем объекта и представлением объекта, будем называть отношением обозначения. Совершенно необязательно, чтобы объект, находящийся в отношении обозначения, был конечным звеном в цепи доступа. Он может быть, в свою очередь, интерпретирован как имя, обозначающее другой объект. Цепь доступа может представлять, таким образом, композицию некоторого числа отношений обозначения (Рис. 5 .3). Объект, который играет роль звена в цепи доступа, называется также меткой. Примерами меток являются указатели в языке Паскаль или дескрипторы.
Композиция нескольких отношений обозначения снова является отношением обозначения. Отсюда можно вывести два следствия:
имя цепи доступа обозначает не только конечный член этой цепи (представление), но и все промежуточные члены (метки);
если некоторая цепь доступа образована, можно получить доступ к представлению, начиная с имени любой из промежуточных меток.
Рис. 5.3. Пример цепи доступа
