Субъекты доступа – пользователи: Administrator, System, Guest и группы пользователей – User, Administrator, Account, Operators, Server Operators и т.д.
Поддерживает три класса операций доступа:
· Разрешения – это множество операций, которые могут быть определены для пользователей всех типов по отношении к объектам любого типа: файлам, каталогам и т.д. Разделяются на индивидуальные и стандартные.
· Права - определяются для пользователей типа группа на выполнение некоторых системных операций: установку системного времени, архивирование файлов, выключение компьютера.
· Возможности пользователя – определяются для отдельных пользователей на выполнение действий, связанных с формированием их операционной среды, например изменение состава главного меню программ, возможность пользоваться пунктом меню Выполнить и т. п.
Реестр
Начиная с W95 вся информация, необходимая для загрузки и конфигурирования системы и настройки её под конкретного пользователя, собрана в одной большой центральной базе данных, называемой реестром.
Реестр состоит набора каталогов, каждый из которых содержит либо подкаталоги, либо записи. Каталог реестра называется ключом. Все каталоги верхнего уровня начинаются со строки HKEY.
В нижней части этой иерархической структуры располагаются записи, называемыми значениями, содержащие информацию. У каждого значения три части:
· имя
· тип
· данные
Имя default, если каталог содержит всего одно значение.
Тип может быть одним из 11 стандартных типов:
· строка формата Unicode
· 32-разрядное целое число произвольной длины
· Символьная ссылка на каталоги или запись реестра и т. д.
Верхний уровень состоит из 6 ключей, называемые корневыми каталогами.
Ветвь реестра
Имена файлов
1) HKEY_LOCAL_MACHINE\SAM
Sam, Sam.log, Sam.sav
Свойства аппаратного и программного обеспечения
HKEY_LOCAL_MACHINE\Security
Security, Security.log, Security.sav
HKEY_LOCAL_MACHINE\Software
Software, Software.log, Software.sav
HKEY_LOCAL_MACHINE\System
System, System.alt, System.log, System.sav
HKEY_CURRENT_CONFIG
System, System.alt, System.log, System.sav
2) HKEY_USERS\.Default
Default Default.log Default.sav
Информация о пользователях
3) HKEY_performance_data
Счетчики, следящие за производительностью системы
4) HKEY_CLASSES_ROOT
Ссылка на 1\software\classes
5) HKEY_CURRENT_CONFIG
Ссылка на текущий профиль аппаратного обеспечения
Файлы, не ассоциированные с разделами
Userdiff, Userdiff.log
6) HKEY_CURRENT_USER
Ntuser.dat, Ntuser.dat.log
Ссылка на текущий профиль пользователя
Редактировать Реестр можно с помощью входящей в стандартный набор программ Windows утилиты regedit.exe. Фактически вся системная информация хранится в двух скрытых файлах в каталоге Windows: system.dat и user.dat. Реестр представлен в виде иерархической структуры, состоящей из ветвей, которые, в свою очередь, делятся на ключи.
Распределение ресурсов
Взаимоблокировки
Появление двух процессов, использующих одновременно один ресурс вызывают ситуацию, называемую тупиком, тупиковой ситуацией или взаимоблокировкой. В этот момент процессы заблокированы и остаются в этом состоянии. Система может зайти в тупик, когда процессам предоставляется исключительные права доступа к устройствам, файлам и т.д.
Ресурсы бывают двух типов: выгружаемые и невыгружаемыми.
Выгружаемый ресурс можно забрать у владеющего им процесса. Например, ресурс – память.
Невыгружаемый ресурс нельзя забрать от текущего владельца, не уничтожив результаты вычислений.
Взаимоблокировки касаются невыгружаемых ресурсов.
Группа процессов находится в тупиковой ситуации, если каждый процесс из группы ожидает события, которое может вызвать только другой процесс из той же группы.
Так как все процессы находятся в состоянии ожидания, ни один из них не будет причиной какого-либо события, которое могло бы активизировать любой другой процесс в группе и все процессы продолжают ждать до бесконечности. Условие отсутствия прерываний необходимо, чтобы предотвратить ситуацию, когда тот или иной заблокированный процесс активизируется и затем приводит к событию, которое освободит другие процессы в группе. Ни один из процессов не может работать, ни один из них не может освободить какой-либо ресурс и ни один из них не может возобновиться.
Например:
1)Процесс А запрашивает и получает принтер, затем начинает вычислять данные для печати. Еще не закончив расчеты, он превышает квант времени, переходит в состоянии ожидания, выгружается на диск. Процесс В владеет квантом времени, запрашивает принтер и ни один из них не может продолжить работу без ресурса, удерживаемого другим.
Выход – отнять время у процесса В и отдать процессу А.
2)Процесс А выполняет запись на компакт-диск. Если отнять у процесса А устройство и передать его другому процессу, то испортим диск.
3)Один процесс А работает с файлом, другой процесс, вызывающий этот файл блокируется до тех пор, пока текущий владелец файла не закроет его.
Четыре метода работы с взаимоблокировкой:
I.Пренебрежение проблемой в целом (игнорирование).
Страусовый алгоритм. ОС UNIX, WINDOWS игнорирует эту проблему.
II.Обнаружение и восстановление.
Позволяет взаимоблокировке произойти, обнаруживает её и предпринимает какие-либо действия.
a)В системе только один ресурс каждого типа (один плоттер, один сканер, один принтер, одно устройство для записи компакт-дисков и т.д.).
Конструируется граф ресурсов следующего вида:
Ресурс: R, S, T, U, V, W.
Процесс: А, B, C, D, T,F,G.
Процесс А занимает ресурс R и хочет получить ресурс S.
Существуют специальные алгоритмы отслеживания циклов.
b)В системе существуют несколько ресурсов каждого типа.
Используется метод обнаружения взаимоблокировок, основанный на матрицах.
1)Восстановление при помощи принудительной выгрузки процесса, т. е. временно отобрать ресурс у его текущего владельца и отдать другому процессу.
2)Восстановление через откат
Процессы периодически создают контрольные точки. Контрольные точки содержат образ памяти, состоянии ресурсов, информацию о том, какие ресурсы в данный момент предоставлены процессу. Во время выполнения процесса образуется целая последовательность контрольных точек. Чтобы выйти из тупика, процесс, занимающий необходимый ресурс, откатывается к тому моменту времени, перед которым он получил данный ресурс, для чего запускается одна из его контрольных точек. Вся работа, выполненная после этой контрольный точки, теряется. В результате процесс вновь запускается с более раннего момента, когда он не занимал тот ресурс, который теперь предоставляется одному из процессов, попавших в тупик.
3)Восстановление путем уничтожения процессов.
Удаление процессов происходит до тех пор, пока цикл не будет разорван. В качестве «жертвы» можно выбрать процесс, не находящийся в цикле, чтобы он освободил свои ресурсы.
III.Динамическое избежание тупиковых ситуаций с помощью аккуратного распределения ресурсов
В большинстве систем ресурсы запрашиваются поочередно, по одному. Система должна уметь решать, является ли предоставление ресурса безопасным или нет, и предоставлять его процессу только в первом случае.
Основные алгоритмы, позволяющие предотвратить взаимоблокировки, базируются на концепции безопасных состояний. Состояние безопасное, если оно не находится в тупике и существует некоторый порядок планирования, при котором каждый процесс может работать до завершения.
Например: в системе всего 10 экземпляров данного ресурса, 7 из них уже распределены и 3 свободны.
Безопасное состояние
имеет
мах
А
А
А
А
А
В
В
В
-
В
-
В
-
С
С
С
С
С
-
Небезопасное состояние
имеет
мах
А
А
А
А
В
В
В
В
-
С
С
С
С
Алгоритм банкира для одного вида ресурсов
Разработал Дейкстра. Модель алгоритма основа на примере банкира в маленьком городке, имеющего дело с группой клиентов, которым он выдал ряд кредитов.
Алгоритм проверяет, ведет ли выполнение каждого запроса к небезопасному состоянию. Если да, то запрос отклоняется, иначе ресурс предоставляется процессу.
имеет
мах
А
А
А
В
В
В
С
С
С
D
D
D
2 (безопасное)
1(опасное)
IV.Предотвращение с помощью структурного опровержения одного из четырех условий, необходимых для взаимоблокировки
Условия для возникновения ситуации взаимоблокировки:
1) Условие взаимного исключения. Каждый ресурс в данный момент отдан ровно одному процессу или свободен.
2) Условие удержания и ожидания. Процессы, в данный момент удерживающие полученные ресурсы, могут запрашивать новые ресурсы.
3) Условие отсутствия принудительной выгрузки ресурса. У процесса нельзя принудительным образом забрать ранее полученные ресурсы. Процесс, владеющий ими, должен сам освободить ресурсы.
4) Условие циклического ожидания. Должна существовать круговая последовательность из двух и более процессов, каждый из которых ждет доступа к ресурсу, удерживаемому следующим членом последовательности.