Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОПЕРАЦИОННЫЕ СИСТЕМЫ И ОБОЛОЧКИ.doc
Скачиваний:
325
Добавлен:
21.09.2019
Размер:
800 Кб
Скачать
☆

6.4.2. Защита файлов

Защита файлов осуществляется при помощи идентификатора пользователя и десяти

битов защиты – прав доступа. Права доступа подразделяются на три типа:

- чтение (read);

- запись (write);

- исполнение (execute).

Эти права доступа могут быть предоставлены трем классам пользователей:

- владельцу файла;

- группе, в которую входит владелец;

- всем прочим пользователям.

Атрибуты доступа определяют, что разрешено делать с данным файлом данной

категории пользователей.

При создании файла модифицируется не сам файл, а каталог, в котором появляются

новые ссылки на узлы. Удаление файла заключается u1074 в удалении ссылки. Право на

создание и удаление файла – это право на запись в каталог.

Право на выполнение каталога интерпретируется как право на поиск в нем,

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

данный каталог, даже тогда, когда каталог не разрешено читать и список всех его файлов

недоступен.

6.5. Межпроцессные коммуникации в unix

ОС UNIX в основе своей наиболее полно отвечает требованиям технологии «север –

клиент». Для построения программных систем, работающих по принципу модели «сервер

– клиент» в ОС UNIX существуют специальные механизмы, описанные ниже.

6.5.1. Сигналы

ОС UNIX, предоставляющая каждому пользователю виртуальный компьютер,

поддерживает систему прерываний, отвечающую стандартным требованиям:

- обработка исключительных ситуаций;

- средства обработки внешних и внутренних прерываний;

- средства управления системой прерываний.

Всем этим требованиям в ОС UNIX отвечает техника сигналов, которая не только

воспринимает и обрабатывает сигналы, но может их порождать и посылать на другие

машины (процессы). Сигналы могут быть:

- синхронными, когда сам процесс инициирует сигнал;

58

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

возникновение сигнала. Источником асинхронных прерываний может быть

ядро, когда оно контролирует состояние аппаратуры.

Сигнал – простейшая форма межпроцессого взаимодействия, которое используется

для передачи от одного процесса другому или ядра системы какому-либо процессу

уведомления о возникновении определенного события.

6.5.2. Семафоры

Семафор – переменная определенного типа, которая доступна параллельным

процессам для проведения над ней только двух операций:

- закрытия (P-операция);

- открытия (V-операция).

Семафор играет роль вспомогательного критического ресурса, так как операции P и

V неделимы при своем выполнении и взаимно исключают друг друга.

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

критического ресурса, а затем уже осуществляется допуск к критическому ресурсу или

отказ от него на некоторое время. При отказе доступа к критическому ресурсу

используется режим «пассивного ожидания», поэтому в состав механизма включаются

средства формирования и обслуживания очереди ожидающих процессов.

Основным достоинством семафорных операций является отсутствие состояния

«активного ожидания», что может существенно повысить эффективность работы

мультипрограммной вычислительной системы.

Операция P(S) проверяет текущее значение семафора S, и если оно меньше нуля, то

осуществляется переход к следующей за примитивом операции, иначе процесс снимается

на некоторое время с выполнения и переводится в состояние «пассивного ожидания». В

этом состоянии ожидающий процесс не проверяет семафор непрерывно, поэтому на

процессоре может выполняться другой полезный процесс.

Операция V(S) связана с увеличением значения семафора на единицу и переводом

одного или нескольких процессов в состояние готовности к выполнению.

Операции P(S) и V(S) выполняются операционной системой в ответ на запрос,

выданный некоторым процессом и содержащий имя семафора в качестве параметра.

Механизм семафоров, реализованный в ОС UNIX, является обобщением

классического механизма семафоров общего вида. Семафор в ОС UNIX состоит из

следующих элементов:

- значение семафора;

- идентификатор процесса, который хронологически последним работал с

семафором;

- число процессов, ожидающих увеличения значения семафора;

- число процессов, ожидающих нулевого значения семафора.

Для работы с семафорами имеются следующие три системные вызова:

- создание и получение доступа к набору семафоров;

- манипулирование значениями семафоров (синхронизация процессов на основе

использования семафоров);

- выполнение разнообразных управляющих операций над набором семафоров.