Синхронный и асинхронный ввод/вывод
Вы можете выполнять или синхронные, или асинхронные (или перекрывающие) операции ввода-вывода (I/O) в файлах, в именованных каналах и на последовательных коммуникационных устройствах. Функции WriteFile, ReadFile, DeviceIoControl, WaitCommEvent, ConnectNamedPipe и TransactNamedPipe могут выполняться или синхронно, или асинхронно. Функции ReadFileEx (Она предназначена исключительно для асинхронных операций, в отличие от функции ReadFile, которая предназначена и для синхронных, и для асинхронных операций. ReadFileEx позволяет приложению в ходе операции чтения файла исполнять другую работу.) и WriteFileEx (Функция WriteFileEx пишет данные в файл. Она сообщает о своем состоянии завершения асинхронно, вызывая заданную процедуру завершения, когда запись завершается или отменяется, а вызывающий поток находится в готовом к действию режиме ожидания) могут выполняться только асинхронно.Когда функция исполняется синхронно, она не возвращает значения до тех пор, пока операция не завершится. Это означает, что исполнение кода вызывающего потока может быть заблокировано на неопределенный период, в то время, когда он ожидает отнимающую много времени операцию завершения работы. Функции, вызываемые для асинхронной операции, могут возвратить значение немедленно, даже при том, что операция не завершилась. Это дает возможность исполнить отнимающую много времени операцию ввода-вывода (I/O) в фоновом режиме в то время, когда вызывающий поток освобождается, чтобы выполнить другие задачи.
25.Управление безопасностью. Пользователь, его атрибуты и права доступа. Файловая система - это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами. В широком смысле понятие "файловая система" включает:1 совокупность всех файлов на диске, 2наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске, 3комплекс системных программных средств, реализующих управление файлами, в частности: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.
Файлы идентифицируются именами. Пользователи дают файлам символьные имена, при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. Операционная система присваивает файлу дополнительно уникальное имя, так, чтобы можно было установить взаимно-однозначное соответствие между файлом и его уникальным именем. Уникальное имя представляет собой числовой идентификатор и используется программами операционной системы. В разных файловых системах могут использоваться в качестве атрибутов разные характеристики, например: информация о разрешенном доступе, пароль для доступа к файлу, владелец файла, создатель файла,признак "только для чтения","скрытый файл","системныйфайл","архивный файл","двоичный/символьный","временный" (удалить после завершения процесса), признак блокировки, длина записи, указатель на ключевое поле в записи, текущий размер файла.
Права доступа к файлу
Каждому файлу сопоставлены три набора атрибутов доступа: для владельца, для группы и для всех остальных.Атрибуты определяют, что разрешено делать с данным файлом данной категории пользователей. Определить права доступа к файлу - значит определить для каждого пользователя набор операций, которые он может применить к данному файлу. В разных файловых системах может быть определен свой список дифференцируемых операций доступа. Этот список может включать следующие операции: создание файла, уничтожение, чтение, запись в файл, поиск в файле, переименование, выполнение файла.
В самом общем случае права доступа могут быть описаны матрицей прав доступа, в которой столбцы соответствуют всем файлам системы, строки - всем пользователям, а на пересечении строк и столбцов указываются разрешенные операции. Различают два основных подхода к определению прав доступа: 1избирательный доступ, когда для каждого файла и каждого пользователя сам владелец может определить допустимые операции; 2мандатный подход, когда система наделяет пользователя определенными правами по отношению к каждому разделяемому ресурсу (в данном случае файлу) в зависимости от того, к какой группе пользователь отнесен.