Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив WinRAR / лекции / Операционные системы и среды-лекции учя.doc
Скачиваний:
170
Добавлен:
12.02.2015
Размер:
488.45 Кб
Скачать

Механизм контроля доступа

Каждый пользователь и каждая группа пользователей обычно имеет символьное имя, а также уникальный числовой идентификатор. При выполнении процедуры логического входа в систему пользователь сообщает своё символьное имя и пароль, а операционная система определяет соответствующие числовые идентификаторы пользователя и групп, в которые он входит. Все идентификационные данные, в том числе имена и идентификаторы пользователей и групп, пароли пользователей, а также сведения о вхождения пользователя в группы хранятся в специальном файле (файл /etc/passwd в UNIX) или специальной базе данных (в Windows NT).

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

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

- Создание файла

- Уничтожение файла

- Открытие файла

- Закрытие файла

- Чтение файла

- Запись в файл

- Дополнение файла

- Поиск в файле

- Получение атрибутов файла

- Установка новых значений атрибутов

- Переименование

- Выполнение файла

- Чтение каталога

- Смена владельца

- Изменение прав доступа

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

Восстанавливаемость файловых систем Причины нарушения целостности файловых систем

Восстанавливаемость файловой системы - это свойство, которое гарантирует, что в случае отказа питания или краха системы, когда все данные оперативной памяти безвозвратно теряются, все начатые файловые операции будут либо успешно завершены, либо отменены безо всяких отрицательных последствий для работоспособности файловой системы.

Любая операция над файлом (создание, удаление, запись, чтение и т. д.) может быть представлена в виде некоторой последовательности подопераций. Последствия сбоя питания или краха ОС зависят от того, какая операция ввода - вывода выполнялась в этот момент, в каком порядке выполнялись подоперации и до какой подоперации продвинулось выполнение операции к этому моменту.

Рассмотрим, например, последствия сбоя при удалении файла в файловой системе FAT. Для выполнения этой операции требуется пометить как недействительную запись об этом файле в каталоге, а также обнулить все элементы FAT, которые соответствуют кластерам удаляемого файла. Предположим, что сбой питания произошёл после того, как была объявлена недействительной запись в каталоге и обнулено несколько, (но не все) элементов FAT, занимаемых удаляемых файлом. В этом случае после сбоя файловая система сможет продолжать нормальную работу, за исключением того, что несколько последних кластеров удалённого файла будут теперь «вечно» помечены занятыми. Хуже было бы, если бы операция удаления начиналась с обнуления элементов FAT, а корректировка каталога происходила бы позднее. Тогда при возникновении сбоя между этими подоперациями содержимое каталога не соответствовало бы действительному состоянию файловой системы файл как будто существует, а на самом деле его нет. Не исправленная запись в каталоге содержит адрес кластера, который уже объявлен свободным и может быть назначен другому файлу: это может привести к разного рода коллизиям.

Некорректность файловой системы может возникать не только в результате насильственного прерывания операций ввода - вывода, выполняемых непосредственно с диском, но и в результате нарушения работы дискового КЭШа. Кэширование данных с диска предполагает, что в течение некоторого времени результаты операций ввода - вывода никак не сказываются на содержимом диска — все изменения происходят с копиями блоков диска, временно хранящимися в буферах оперативной памяти. В этих буферах оседают данные из пользовательских файлов и служебная информация файловой системы, такая как каталоги, индексные дескрипторы, списки свободных занятых и поврежденных блоков и т. п.

Для согласования содержимого КЭШа и диска время от времени выполняется запись всех модифицированных блоков, находящихся в КЭШе, на диск. Выталкивание блоков на диск может выполняться либо по инициативе менеджера дискового КЭШа, либо по инициативе приложения. Менеджер дискового КЭШа вытесняет блоки из КЭШа в следующих случаях:

- Если необходимо освободить место в КЭШе для новых данных > Если к менеджеру поступил запрос, от какого либо приложения или модуля ОС на запись указанных в блоке запросов на диск

- При выполнении регулярного, периодического сброса всех модифицированных блоков КЭШа на диск, (как это происходит, например, в результате работы системного вызова syns в ОС UNIX).

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

Несмотря на то, что период полного сброса КЭШа на диск обычно выбирается весьма коротким (порядка 10-30 секунд), всё равно остаётся высокая вероятность того, что при возникновении сбоя содержимое диска не в полной мере будет соответствовать действительному состоянию файловой системы - копии некоторых блоков с обновлённым содержимым система может не успеть переписать на диск. Для восстановления некорректных файловых систем, использующих кэширование диска, в ОС предусматриваются специальные утилиты, такие как fsck для файловых систем s5/uf, Scandisk для FAT или CHKDSK. для файловой системы HPFS. Однако объём несоответствий может быть настолько большим, что восстановление файловой системы после сбоя с помощью стандартных системных средств, становится невозможным.

Выводы

- Основными задачами подсистемы ввода — вывода являются:

- Организация параллельной работы устройств ввода - вывода и процессора;

- Согласование скоростей обмена и кэширование данных;

- Разделение устройств и данных между процессами;

- Обеспечение удобного логического интерфейса между устройствами и остальной частью системы;

- Файл – это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Файлы хранятся в памяти, на зависящей от энергопитания, обычно - на магнитных дисках.

- Основные цели использования файла:

- Долговременное и надежное хранение информации, совместное использование информации.

- Файловая система позволяет программам обходится набором достаточно простых операций для выполнения достаточно простых операций над некоторым абстрактным объектом, представляющим файл.

- Современные файловые системы имеют иерархическую структуру, упрощающую именование файлов и их поиск

- Механизм контроля доступа к файлам позволяет администраторам много пользовательских ОС задавать для отдельных пользователей и групп пользователей набор операций, которые им разрешается выполнять над отдельным файлом или группой файлов, объединённых в каталог

56