Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции кошкин.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
667.65 Кб
Скачать

Защита пользователей.

При работе конкретного пользователя, у него возникает соблазн воспользоваться файлами другого пользователя. Т.е. существует необходимость регулирования определения такой процедуры. При этом следует установить три градации в доступе: 1) файл полностью закрыт. 2) разрешено чтение. 3) файл доступен пользователю. Помимо этого эта задача соприкасается с проблемами информационно безопасности. Наиболее известный способ ограничения доступа к другим файлам – матрица доступа. Поскольку матрица является сильно разреженной, она вырождается в последовательный список. Ведение такого списка – одна из обязанностей ОС. Другой подход связан с системными паролями. Программное обеспечение должно учитывать возможность запрета чтения/записи файла. Поэтому постоянно проводятся работы по закрытию файлов. В некоторых системах применяют главную таблицу паролей, содержимое которой храниться в зашифрованном виде. При передаче информации из вычислителя на ВУ стремятся исключить возможность ее чтения. Если меры безопасности приняты в самом системном блоке, то связь между системным блоком и терминалом открыта. Если канал использует телефонные линии, остро встает проблема защиты. В этой ситуации для защиты использую кодирование передаваемой информации. Причем, как аппаратно, так и программно. Проблема кодирования и декодирования сигналов на расстоянии на сегодня актуальна. Предпочтительнее решается программными путями.

Синхронизация процессов. (1) Синхронизация. Мониторы как инструмент синхронизации.

Любая процедура вычислителя состоит из отдельных вычислительных процессов. В условиях изменения переменных встает задача, как определить, назначить последовательность выполнения таких процессов. Рассматривая алгоритм вычислений, мы логически продвигаемся от одного действия к другому. Часто при этом не определяя условия, форму перехода. Считаем, что процессор сам как бы решает задачу выбора следующего действия. ОС должна однозначно определить эту последовательно, устанавливать логические отношения между процессами. Временные интервалы при этом становятся относительными. Определяется последовательность что и зачем, но не реальное время. Лишь в исключительных состояниях, когда система работает в реальном времени в определенных точках логическое время встречается с физическим. Синхронизация логическая встречается с синхронизацией физической. Задача логической синхронизации – установление определенных правил подходов, которые позволили бы однозначно выполнятся в памяти процессам. Синхронизация решает следующие задачи: 1) определяет порядок предыдущих событий и фиксирует некоторые точки процессов, контролируя их. 2) назначает условие разрешающие переход некоторых событий в определенные процессы. Эти точки называют точками синхронизации. У процесса выделяют активное состояние и состояние ожидания. Переход из активного состояния в состояние ожидания – блокировка. Обратный переход – пробуждение. Основанием для перехода выбирают некое запоминаемое событие, некую переменную имеющую два значения. Событие произошло, событие не произошло. Начальное значение этой переменной не произошло в случае – событие произошло. Все процессы ожидающие своей очереди могут перейти в активное состояние. Результат один – процесс может мешать другому, возникать взаимная блокировка. Следовательно, при переходе в активное состояние должен работать механизм взаимного исключения. Основание, инструментально, процедурами синхронизации процессов выдает монитор – это множество программных процедур использующих переменные состояния. Некоторые из этих процедур внешне доступны пользователям, другие не доступны. Для обращения к процедурам имеются точки входа. Набор таких программ достаточно разнообразен. Первой в этом ряду стоит программа инициализации, которая выполняется при запуске системы, при постановке монитора. Главное, что объединяет эти процедуры – все преобразования происходят при взаимном исключении. При этом большинство задач логической синхронизации сводят к небольшому числу типовых: 1) реализация доступа (регулирование) нескольких процессов к общему разделяемому ресурсу. 2) установление связи между процессами. 3) управление периферийными устройствами и буферами ввода-вывода. 4) временная синхронизация.

Первая задача решается по следующей схеме. Любой ресурс (ОЗУ, ВЗУ) выбирается через процедуру доступа. Любые другие попытки обнаруживаются и блокируются. Все процедуры доступа группируются водном мониторе. Наиболее простой случай, когда один ресурс с одним ограничением, сложнее если несколько ресурсов или несколько запросов. При этом правила: 1) одна 1 (например ВЗУ) может быть выделена только одному процессу. 2) эта единица выделяется если она свободна. 3) операция освобождения ресурсов выполняется для последних ресурсов полученных процессом. Т.е. если последний раз обратились к ВЗУ, то и это запоминающее устройство освобождается первым. 4) если запрос на выделение ресурсов не выполняется, этот запрос блокирует процесс.

Вторая задача может быть организована через общие переменные. Например, в двух процессах имеются одинаковые переменные. Из одного процесса значение этих переменных действительны в другом. Этот способ применяют не часто. Например, в ядре синхронизации. В обычной схеме один процесс посылает сообщение другому через буфер общей памяти. При этом операции обмена можно поставить связующими между двумя процессами. Для операции связи можно использовать разные подходы. На практике применяют два способа: 1) передача в «почтовый ящик» или буфер. 2) схема типа встречи. Когда передатчик блокируется до той поры, пока приемник не получит сообщение и ответить передатчику.

Третья задача. Монитор связан с каждым ВУ и готовый программно, требует обмена. Вызывающий процесс ожидает конца обмена по условию (переменная). Как правило, конец обмена намечается прерыванием – элемент процедуры синхронизации.

Четвертая задача используется в приложениях реального времени. Она основана на применении таймера. Два режима таймера: первый режим – прерывание по каждому импульсу; второй режим – использование внутреннего счетчика с неким начальным числом. Каждый сигнал таймера уменьшает сигнал содержимое счетчика на единицу. Прерывание по нулевому счетчику. Интервал времени – программируется, устанавливается начальное содержание. Основной недостаток мониторов – при ориентации на поиск некоего события вынуждены анализировать «1»; «0». При этом анализе в конкретных точках, событие может не проявиться в них. Если сигнал (переменный признак) не ждать, программа его пропустит.