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

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 состоит из

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

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

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

семафором;

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

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

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

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

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

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

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