
- •Управление устройствами
- •Основные задачи управления устройствами
- •Классификация периферийных устройств и их архитектура
- •Прерывания
- •Архитектура подсистемы ввода/вывода
- •Способы организации ввода/вывода
- •Ввод/вывод по опросу и по прерываниям
- •Активное и пассивное ожидание
- •Синхронный и асинхронный ввод/вывод
- •Буферизация и кэширование
- •Понятие буферизации
- •Сглаживание неравномерности скоростей процессов
- •Распараллеливание ввода и обработки
- •Согласование размеров логической и физической записи
- •Редактирование при интерактивном вводе
- •Кэширование дисков
- •Опережающее чтение.
- •Драйверы устройств
- •Управление устройствами в ms-dos
- •Уровни доступа к устройствам
- •Драйверы устройств в ms-dos
- •Управление символьными устройствами
- •Управление блочными устройствами
- •Структура диска
- •Разделы и логические тома
- •Средства доступа к дискам
- •Управление устройствами в Windows
- •Драйверы устройств в Windows
- •Доступ к устройствам
- •Управление устройствами в unix
- •Драйверы устройств вUnix
- •Устройство как специальный файл
- •Управление данными
- •Основные задачи управления данными
- •Характеристики файлов и архитектура файловых систем
- •Размещение файлов
- •Защита данных
- •Разделение файлов между процессами
- •Файловая система faTи управление данными вMs-dos
- •Общая характеристика системы fat
- •Структуры данных на диске
- •Структура записи каталога файловой системы fat
- •Создание и удаление файла
- •Работа с файлами в ms-dos
- •Системные функции
- •Доступ к данным
- •Структуры данных в памяти
- •Новые версии системы fat
- •Файловые системы и управление данными в unix
- •Архитектура файловой системы unix
- •Жесткие и символические связи
- •Монтируемые тома
- •Типы и атрибуты файлов
- •Управление доступом
- •Структуры данных файловой системыUnix
- •Доступ к данным в unix
- •Развитие файловых системUnix
- •Файловая система ntfSи управление данными вWindows
- •Особенности файловой системы ntfs
- •Структуры дисковых данных
- •Главная таблица файлов
- •Атрибуты файла
- •Доступ к данным
- •Защита данных
- •Аутентификация пользователя
- •Дескриптор защиты
- •Управление процессами
- •Основные задачи управления процессами
- •Реализация многозадачного режима
- •Понятия процесса и ресурса
- •Квазипараллельное выполнение процессов
- •Состояния процесса
- •Вытесняющая и невытесняющая многозадачность
- •Дескриптор и контекст процесса
- •Реентерабельность системных функций
- •Дисциплины диспетчеризации и приоритеты процессов
- •Проблемы взаимодействия процессов
- •Изоляция процессов и их взаимодействие
- •Проблема взаимного исключения процессов
- •Двоичные семафоры Дейкстры
- •Средства взаимодействия процессов
- •Целочисленные семафоры
- •Семафоры с множественным ожиданием
- •Сигналы
- •Сообщения
- •Общая память
- •Программные каналы
- •Проблема тупиков
- •Управление процессами в ms-dos
- •Процессы в ms-dos
- •Среда программы
- •Запуск программы
- •Завершение работы программы
- •Перехват прерываний и резидентные программы
- •Управление процессами в Windows
- •Понятие объекта в Windows
- •Процессы и нити
- •ПланировщикWindows
- •Процесс и нить как объекты
- •Синхронизация нитей
- •Способы синхронизации
- •Объекты синхронизации и функции ожидания
- •Типы объектов синхронизации
- •Критические секции
- •Сообщения
- •Управление процессами в unix
- •Жизненный цикл процесса
- •Группы процессов
- •Программные каналы
- •Сигналы
- •Средства взаимодействия процессов в стандарте posix
- •Планирование процессов
- •Состояния процессов в unix
- •Приоритеты процессов
- •Интерпретатор команд shell
- •Управление памятью
- •Основные задачи управления памятью
- •Виртуальные и физические адреса
- •Распределение памяти без использования виртуальных адресов
- •Настройка адресов
- •Распределение с фиксированными разделами
- •Распределение с динамическими разделами
- •Сегментная организация памяти
- •Страничная организация памяти
- •Сравнение сегментной и страничной организации
- •Управление памятью в ms-dos
- •Управление памятью в Windows
- •Структура адресного пространства
- •Регионы
- •Отображение исполняемых файлов
- •Файлы, отображаемые на память
- •Стеки и кучи
- •Управление памятью в unix
- •Литература
Монтируемые тома
В UNIXнет понятия «буква диска», подобно буквамA:,C:и т.д., используемым вMS-DOSи вWindows. В системе может быть несколько дисковых томов, но, прежде чем получить доступ к файловой системе любого диска, кроме основного, пользователь должен выполнить операциюмонтирования диска. Она заключается в том, что данный диск отображается на какой-либо из каталогов основного тома. Как правило, для этого используются пустые подкаталоги каталога/mountили/mnt.
Если представить файловую систему на дисковом томе в виде дерева, то монтирование тома – это как бы «прививка» одного дерева к какому-либо месту на другом, основном дереве. В отличие от этого, MS-DOSиWindowsдопускают использование нескольких отдельных деревьев.
Типы и атрибуты файлов
Для каждого файла в UNIXхранится его тип, который при выдаче каталога обозначается одним из следующих символов:
-– |
обычный файл, т.е. файл, содержащий данные; |
d– |
каталог; |
c– |
символьный специальный файл, т.е., на самом деле, символьное устройство; |
b– |
блочный специальный файл; |
l– |
символическая связь; |
p– |
именованный канал (будет рассмотрен в п. 3.6.3); |
s– |
сокет – объект, используемый для передачи данных по сети. |
Особенностью UNIXявляется то, что работа с разными типами объектов, перечисленными выше (файлами, устройствами, каналами, сокетами) организуется с использованием одного и того же набора функций файлового ввода/вывода.
К числу атрибутов, описывающих файл, относятся его размер в байтах, число жестких связей и три «временных штампа»: дата/время последнего доступа к файлу, последней модификации файла, последней модификации атрибутов файла. Эту последнюю величину часто называют неточно «датой создания файла».
Для специальных файлов вместо размера хранятся старший и младший номера устройства, см. п. 1.10.1.
Кроме того, для каждого файла хранятся атрибуты управления доступом, описанные в следующем пункте, а также информация о размещении файла на диске, описанная в п. 2.7.2.
Управление доступом
Для каждого файла (в том числе каталога, специального файла) определены такие понятия, как владелец(один из пользователей системы) игруппа-владелец. Их числовые идентификаторы (называемые, соответственно,UIDиGID) хранятся вместе с другими атрибутами файла. Полные имена, пароли и другие характеристики пользователей и групп хранятся в отдельном системном файле. Владельцем файла обычно является тот пользователь, который создал этот файл.
Кроме того, для файла задаются атрибуты защиты, хранящиеся в виде 9 бит, которые определяют допустимость трех основных видов доступа – на чтение, на запись и на исполнение – для владельца, для членов группы-владельца и для прочих пользователей.
При отображении каталога с помощью команды ls –lэти атрибуты показываются в виде 9 букв или прочерков, например:
r w x r – x - - x
В приведенном примере показано, что сам владелец файла имеет все права (r– чтение,w– запись,x– исполнение), члены группы-владельца могут читать файл и запускать на исполнение (если этот файл содержит программу), всем прочим разрешено только исполнение.
Привилегированный пользователь (администратор системы) всегда имеет полный доступ ко всем файлам.
В том случае, если файл является каталогом, права доступа на чтение и на исполнение понимаются несколько иначе. Право на чтение каталога позволяет получить имена файлов, хранящиеся в данном каталоге. Право на исполнение каталога означает возможность читать атрибуты файлов каталога, использовать эти файлы, а также право сделать данный каталог текущим. Возможны интересные ситуации: если текущий пользователь не имеет права на чтение каталога, но имеет право на его «исполнение», то он не может узнать имена файлов, хранящихся в каталоге; однако, если он все же каким-то образом узнал имя одного из файлов, то может открыть этот файл или запустить на исполнение (если этому не препятствуют атрибуты доступа самого файла).
Чтобы удалить файл, не нужно иметь никаких прав доступа к самому файлу, но необходимо право на запись в соответствующий каталог (потому что удаление файла есть изменение не файла, а каталога). Впрочем, в современных версиях UNIXдобавлен еще один битовый атрибут, при установке которого удаление разрешено только владельцу файла или пользователю, имеющему право записи в файл.
Изменение атрибутов защиты, а также смена владельца файла, могут быть выполнены только самим владельцем либо привилегированным пользователем.
Еще два битовых атрибута, имеющих отношение к защите данных, называются SUIDиSGID. Они определяют, какие права (а точнее сказать, чьи идентификаторы владельца и группы) унаследует при запуске программа, хранящаяся в данном файле. Оба бита по умолчанию сброшены, при этом программа использует идентификаторыUIDиGIDтого пользователя, который ее запустил. Программа как бы «действует от имени этого пользователя», и использует его права доступа к файлам. Если же для установлены атрибутыSUIDи/илиSGID, то запущенная программа будет использовать идентификаторыUIDи/илиGIDсвоего владельца.
Для чего такие тонкости? Представим себе, что пользователь хочет сменить свой пароль. С одной стороны – нормальное желание, которое следует удовлетворить. С другой стороны, пароль данного пользователя хранится в одном файле с паролями других пользователей, и доступ к этому файлу должен быть, очевидно, закрыт для всех рядовых пользователей. Можно подобрать и другие примеры ситуаций, когда обычному пользователю необходим ограниченный доступ к данным, которые система должна защищать.
Решение, которое предлагает UNIX, заключается в следующем. Для работы с паролями имеется специальная программа, владельцем которой является администратор системы. Программа доступна для исполнения всем пользователям, но у нее установлен битSUID. В результате этого запущенная программа работает от имени администратора, т.е. получает неограниченный доступ к файлам. Таким образом, ответственность за защиту системных данных перекладывается на работающую программу.
Следует отметить, что в UNIXнет особых средств защиты для периферийных устройств. Как было описано выше, устройства (а также именованные каналы и сокеты) считаются особыми типами файлов, поэтому для них определены те же атрибуты защиты, что и для файлов.