Кооперативная блокировка фрагмента файла означает что
В системах, допускающих одновременное выполнение нескольких процессов, особую актуальность приобретает проблема координации и синхронизации доступа к разделяемым (совместно используемым) объектам, например файлам.
В Windows имеется возможность блокировать файлы (целиком или частично) таким образом, что никакой другой процесс (выполняющаяся программа) не сможет получить доступ к заблокированному участку файла. Блокирование файла может оставлять другим приложениям возможность доступа только для чтения (разделяемый доступ) или же закрывать им доступ к файлу как для записи, так и для чтения (монопольный доступ). Что немаловажно, владельцем блокировки является блокирующий процесс. Любая попытка получения доступа к части файла (с помощью функций ReadFile или WriteFile) в нарушение существующей блокировки закончится неудачей, поскольку блокировки носят обязательный характер на уровне процесса. Любая попытка получения несовместимой блокировки также завершится неудачей, даже если процесс уже владеет данной блокировкой. Блокирование файлов является ограниченной разновидностью синхронизации параллельно выполняющихся процессов и потоков; обсуждение синхронизации с использованием гораздо более общей терминологии начнется в главе 8.
Для блокирования файлов предусмотрены две функции. Более общей из них является функция LockFileEx, менее общей — LockFile, которую можно использовать и в Windows 9x.
Функция LockFileEx относится к классу функций расширенного (extended) ввода/вывода, поэтому для указания 64-битовой позиции в файле и границ области файла, подлежащей блокированию, необходимо использовать структуру OVERLAPPED, которая ранее уже применялась при указании позиции в файле для функций ReadFile и WriteFile.
BOOL LockFileEx(HANDLE hFile, DWORD dwFlags, DWORD dwReserved, DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh, LPOVERLAPPED lpOverlapped)
Функция LockFileEx блокирует участок открытого файла либо для разделяемого доступа (разрешающего доступ одновременно нескольким приложениям в режиме чтения), либо для монопольного доступа (разрешающего доступ только одному приложению в режиме чтения/записи).
hFile — дескриптор открытого файла. Дескриптор должен быть создан либо с правами доступа GENERIC_READ, либо с правами доступа GENERIC_READ и GENERIC_WRITE.
dwFlags — определяет вид блокировки файла, а также режим ожидания доступности затребованной блокировки. Этот параметр определяется комбинацией следующих значений:
LOCKFILE_EXCLUSIVE_LOCK — запрос монопольной блокировки в режиме чтения/записи. Если это значение не задано, запрашивается разделяемая блокировка (только чтение).
LOCKFILE_FAIL_IMMEDIATELY — задает режим немедленного возврата функции с возвращаемым значением равным FALSE, если приобрести блокировку не удается. Если это значение не задано, функция переходит в режим ожидания.
dwReserved — значение этого параметра должно устанавливаться равным 0. Следующие два параметра определяют соответственно младшие и старшие 32-битовые значения размера блокируемого участка файла (в байтах).
lpOverlapped — указатель на структуру данных OVERLAPPED, содержащую информацию о начале блокируемого участка. В этой структуре необходимо устанавливать значения трех элементов (остальные элементы игнорируются), первые два из которых определяют смещение начала блокируемого участка от начала файла.
• DWORD Offset (используется именно такое имя параметра, а не OffsetLow).
• HANDLE hEvent должен задаваться равным 0.
Чтобы разблокировать файл, следует вызвать функцию UnlockFileEx, все параметры которой, за исключением dwFlags, совпадают с параметрами предыдущей функции:
BOOL UnlockFileEx(HANDLE hFile, DWORD dwReserved, DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh, LPOVERLAPPED lpOverlapped)
Используя блокирование файлов, вы должны принимать во внимание следующие обстоятельства:
• Вновь создаваемая и существующие области блокирования в файле не могут перекрываться, если это приводит к возникновению конфликтной ситуации.
• Возможно блокирование участка, границы которого выходят за пределы файла. Такая операция может оказаться полезной в случае расширения файла процессом или потоком.
• Блокировки не наследуются вновь создаваемыми процессами.
Логику процедуры блокирования, когда вся область или только некоторая ее часть уже содержат заблокированные участки, иллюстрирует табл. 3.1.
Таблица 3.1. Логика предоставления блокировки
Тип запрашиваемой блокировки Существующая блокировка Разделяемая блокировка Монопольная блокировка Отсутствует Предоставляется Предоставляется Разделяемая блокировка (одна или несколько) Предоставляется Отказ Монопольная блокировка Отказ Отказ
Логику предоставления возможности выполнения операций чтения/записи во всей или части области файла, содержащей участки с одной или несколькими блокировками, владельцами которых являются другие процессы, иллюстрирует табл. 3.2.
Таблица 3.2. Блокировки и выполнение операций ввода/вывода
Операция ввода/вывода Существующая блокировка Чтение Запись Отсутствует Успешно выполняется Успешно выполняется Разделяемая блокировка (одна или несколько) Выполняется. Вызывающий процесс не обязан быть владельцем блокировки данной области файла. Не выполняется Монопольная блокировка Выполняется, если вызывающий процесс является владельцем блокировки, в противном случае — неудачное завершение. Выполняется, если вызывающий процесс является владельцем блокировки, в противном случае — неудачное завершение.
Обычно операции чтения и записи выполняются путем вызова функций Read-File и WriteFile или их расширенных версий ReadFileEx и WriteFileEx. Для диагностики ошибок, возникающих в процессе выполнения операций ввода/вывода, следует вызывать функцию GetLastError.
Одна из разновидностей операций ввода/вывода с участием файлов предполагает использование отображения файлов, которое обсуждается в главе 5. Обнаружение конфликтов блокировки на этапе обращения к памяти не производится; такая проверка осуществляется во время вызова функции MapViewOfFile. Указанная функция делает часть файла доступной для процесса, вследствие чего проверка наличия блокировок на этом этапе является необходимой.
Разновидностью функции LockFileEx с ограниченной сферой применимости является функция LockFile, вызов которой, скорее, лишь уведомляет о намерении осуществить блокировку. Эту функцию можно использовать в системах Windows 9x, которые не поддерживают функцию LockFileEx. Функция LockFile предоставляет блокирующему процессу только монопольный доступ, а возврат из функции происходит сразу же. Таким образом, функция LockFile не блокируется. Проверить, предоставлена блокировка или нет, можно путем тестирования возвращаемого функцией значения.
Каждый успешный вызов функции LockFileEx должен сопровождаться последующим вызовом функции UnlockFileEx (то же самое касается и пары функций LockFile и UnlockFile). Если программа не позаботится о снятии блокировки или будет удерживать ее в течение большего, чем это необходимо, времени, другие программы либо вовсе не смогут работать, либо будут вынуждены простаивать. Поэтому уже на стадии проектирования и реализации программ необходимо очень тщательно следить за тем, чтобы снятие блокировки осуществлялось сразу же после того, как необходимость в ней отпала, а логика работы программ не позволяла оставлять невыполненными необходимые операции разблокирования файлов.
Одним из способов, гарантирующих своевременное разблокирования файлов, является использование дескрипторов завершения (termination handlers), которые описаны в главе 4.
14.2.3. Блокирование BSD: flock()
9.8. Блокирование файлов
9.8. Блокирование файлов Стандарт Posix.1 гарантирует, что если функция open вызывается с флагами O_CREAT (создать файл, если он еще не существует) и O_EXCL (исключающее открытие), функция возвращает ошибку, если файл уже существует. Более того, проверка существования файла и его
Разблокирование защищенного документа
Разрешение на внесение изменений в документ — это не то же самое, что разрешение на снятие защиты с документа. Даже если всем разрешено изменять содержимое документа, снять защиту могут только его авторизованные владельцы и пользователи, которые введут правильный пароль.
Если вы являетесь авторизованным владельцем документа или знаете пароль для отключения его защиты, сделайте следующее:
На вкладке Рецензирование в группе Защитить нажмите кнопку Защитить документ и выберите пункт Ограничить форматирование и редактирование.
В области задач Ограничить форматирование и редактирование нажмите кнопку Отключить защиту.
10.7. Блокирование файлов
10.7. Блокирование файлов Вернемся к задаче о порядковом номере из главы 9. Здесь мы напишем новые версии функций my_lock и my_unlосk, использующие именованные семафоры Posix. В листинге 10.10 приведен текст этих функций.Листинг 10.10. Блокирование файла с помощью именованных семафоров
Пакетные оппортунистические блокировки
Пакетная оппортунистическая блокировка управляет открытием и закрытием файлов. Например, при выполнении пакетного файла пакетный файл может быть открыт и закрыт один раз для каждой строки файла. Пакетная оппортунистическая блокировка открывает пакетный файл на сервере и сохраняет его открытым. Когда обработчик команд "открывает" и "закрывает" пакетный файл, перенаправитель сети перехватывает команды открытия и закрытия. Все получаемые сервером команды поиска и чтения. Если клиент также читается заранее, сервер получает определенный запрос на чтение не более одного раза.
При открытии файла, у которого уже есть пакетная оппортунистическая блокировка, сервер проверяет состояние общего доступа к файлу после разрыва блокировки. Эта проверка дает держателю блокировки возможность завершить очистку кэша и закрыть дескриптор файла. Операция открытия, предпринятая во время проверки общего доступа, не приводит к сбою проверки общего доступа, если держатель блокировки освобождает блокировку.
Пример работы пакетной оппортунистической блокировки см. в примере пакетной оппортунистической блокировки. Дополнительные сведения о нарушениях оппортунистических блокировок см. в разделе "Критические оппортунистические блокировки".
Цензура и блокирование интернета
Блокирование файлов
Блокирование файлов В системах, допускающих одновременное выполнение нескольких процессов, особую актуальность приобретает проблема координации и синхронизации доступа к разделяемым (совместно используемым) объектам, например файлам.В Windows имеется возможность
11. Блокирование Tor и как с ним бороться
11. Блокирование Tor и как с ним бороться Система Tor позволяет скрывать от провайдера конечные (целевые) адреса, тем самым прорывая возможную блокаду доступа к заблокированным им сетевым ресурсам. Также система Tor скрывает от целевых ресурсов адрес отправителя, тем самым
Защита документа и пометка частей, в которых разрешены изменения
На вкладке Рецензирование в группе Защитить выберите команду Ограничить редактирование.
В области Ограничения на редактирование установите флажок Разрешить только указанный способ редактирования документа.
В списке ограничений на редактирование выберите пункт Только чтение.
Выделите часть документа, в которой будут разрешены изменения.
Например, выберите группу абзацев, заголовок, предложение или слово.
Совет: Чтобы выбрать за один раз несколько частей документа, выберите нужную часть, а затем при нажатой клавише CTRL выберите остальные.
В области Исключения сделайте одно из следующего:
Чтобы разрешить любому пользователю, открывшему документ, изменять выбранную часть, в списке Группы установите флажок Все.
Чтобы разрешить редактирование выбранной части только некоторым людям, щелкните Другие пользователи, а затем введите имена пользователей.
Если вы хотите иметь возможность редактировать эту часть документа, укажите свое имя. Разделите имена точкой с запятой.
Важно: Если вы планируете защитить документ с помощью проверки подлинности пользователей вместо защиты с помощью пароля, необходимо ввести для имен пользователей адреса электронной почты.
Примечание: При выборе нескольких пользователей их имена добавляются в качестве элементов в поле Группы, так что их можно быстро выбрать снова.
Продолжайте выбирать части документа и назначать пользователям разрешение на их изменение.
В разделе Включение защиты нажмите кнопку Да, включить защиту.
Выполните одно из следующих действий.
Если вы хотите назначить документу пароль, чтобы пользователи, которым он известен, могли снимать защиту и работать с документом без ограничений, введите пароль в поле Новый пароль (необязательно), а затем подтвердите его.
Примечание: С помощью этого параметра вы можете дать другим пользователям возможность работать с вашим документом.
Используйте надежные пароли, состоящие из букв в верхнем и нижнем регистре, цифр и символов. В ненадежных паролях не используются сочетания таких элементов. Надежный пароль: Y6dh!et5. Ненадежный пароль: House27. Пароль должен состоять не менее чем из 8 знаков. Лучше всего использовать парольную фразу длиной не менее 14 знаков. .
Обязательно запомните пароль. Если вы забудете пароль, корпорация Майкрософт не сможет его восстановить. Храните записывные пароли в безопасном месте вне сведений, которые они помогают защитить.
Чтобы зашифровать документ так, чтобы защиту могли снять только его авторизованные владельцы, установите флажок Проверка подлинности пользователя.
Примечание: Зашифровав документ, вы можете защитить его от доступа других пользователей.
17.4.7. Блокирование нежелательных корреспондентов
14.2.3. Блокирование BSD: flock()
9.2. Блокирование записей и файлов
9.2. Блокирование записей и файлов Ядро Unix никак не интерпретирует содержимое файла, оставляя всю обработку записей приложениям, работающим с этим файлом. Тем не менее для описания предоставляемых возможностей используется термин «блокировка записей». В
В этой статье
Оппортунистические блокировки уровня 1
Блокировка файла уровня 1 оппортунистическая блокировка позволяет клиенту считывать данные вперед в файле и кэшировать данные как для чтения, так и для записи данных из файла локально. Если у клиента есть единственный доступ к файлу, нет никакой опасности для совместного доступа к данным при предоставлении оппортунистической блокировки уровня 1.
Клиент может запросить блокировку уровня 1 после открытия файла. Если ни один другой клиент (или ни один другой поток на том же клиенте) не имеет открытого файла, сервер может предоставить оппортунистическую блокировку. Затем клиент может кэшировать данные чтения и записи из файла локально. Если другой клиент открыл файл, сервер отказывается от оппортунистической блокировки, и клиент не выполняет локальное кэширование. (Сервер может отказаться от оппортунистической блокировки по другим причинам, например, не поддерживающим оппортунистические блокировки.)
Когда сервер открывает файл, у которого уже есть оппортунистическая блокировка уровня 1, сервер проверяет состояние общего доступа файла, прежде чем он прерывает оппортунистическую блокировку уровня 1. Если сервер прерывает блокировку после этого изучения, время, когда клиент с прежней блокировкой тратит очистку кэша записи , это время, когда клиент, запрашивающий файл, должен ждать. На этот раз расходы означает, что блокировки уровня 1 оппортунистические блокировки следует избегать для файлов, открытых многими клиентами.
Тем не менее, поскольку сервер проверяет состояние общего доступа, прежде чем он прерывает блокировку, в случае, если сервер отклонит открытый запрос из-за конфликта общего доступа, сервер не прерывает блокировку. Например, если вы открыли файл, отказали в предоставлении общего доступа к операциям записи и получили блокировку уровня 1, сервер отклоняет запрос другого клиента на открытие файла для записи, прежде чем он даже проверяет блокировку файла. В этом случае оппортунистическая блокировка не нарушается.
Пример работы оппортунистической блокировки уровня 1 см. в примере оппортунистической блокировки уровня 1. Дополнительные сведения о нарушениях оппортунистических блокировок см. в разделе "Критические оппортунистические блокировки".
Внесение изменений в документ с ограничениями
При открытии защищенного документа в Microsoft Word 2010 возможность изменений определяется наличием или отсутствием предоставленного владельцем документа разрешения на внесение изменений в конкретную его часть.
В области задач Ограничить форматирование и редактирование отображаются кнопки для перемещения к областям документа, в которых пользователю разрешены изменения.
Открытие области задач "Ограничить форматирование и редактирование"
Такое изменение запрещено, поскольку выделенный фрагмент заблокирован.
Чтобы вернуться в область задач и найти фрагмент, который разрешено изменять, сделайте следующее:
На вкладке Рецензирование в группе Защитить нажмите кнопку Ограничить редактирование.
Щелкните Найти следующую область, которую я могу редактировать или Показать все области, которые я могу редактировать.
Блокирование объектов
Блокирование объектов В заключение главы, посвященной редактированию объектов, упомянем о механизме, позволяющем избежать случайного изменения объектов или их свойств. В ArchiCAD есть способ защитить необходимые объекты от редактирования. Для этого следует выделить их и
11.6. Блокирование файлов
9.9. Блокирование в NFS
9.9. Блокирование в NFS Аббревиатура NFS расшифровывается как Network File System (сетевая файловая система); эта система подробно обсуждается в главе 29 [22]. Блокировка записей fcntl представляет собой расширение NFS, поддерживаемое большинством ее реализаций. Обслуживается эта
Оппортунистические блокировки уровня 2
Оппортунистическая блокировка уровня 2 сообщает клиенту о наличии нескольких параллельных клиентов файла и о том, что он еще не изменился. Эта блокировка позволяет клиенту выполнять операции чтения и получать атрибуты файлов с помощью кэшированных или считываемых локальных данных, но клиент должен отправлять все остальные запросы (например, для операций записи) на сервер. Приложение должно использовать оппортунистическую блокировку уровня 2, если ожидается, что другие приложения будут записывать в файл случайным образом или считывать файл случайным образом или последовательно.
Блокировка уровня 2 очень похожа на блокировку фильтра оппортунистической. В большинстве случаев приложение должно использовать оппортунистическую блокировку уровня 2. Используйте блокировку фильтра, только если вы не хотите открывать операции чтения, чтобы привести к нарушениям режима общего доступа в интервале времени между открытием файла и получением блокировки. Дополнительные сведения см. в разделе "Фильтрация оппортунистических блокировок" и ответа сервера на открытые запросы в заблокированных файлах.
Дополнительные сведения о нарушениях оппортунистических блокировок см. в разделе "Критические оппортунистические блокировки".
Поиск частей, которые можно редактировать
Такое изменение запрещено, поскольку выделенный фрагмент заблокирован.
Чтобы вернуться в область задач и найти фрагмент, который разрешено изменять, сделайте следующее:
На вкладке Рецензирование в группе Защитить нажмите кнопку Ограничить редактирование.
Щелкните Найти следующую область, которую я могу редактировать или Показать все области, которые я могу редактировать.
Внесение изменений в документ с ограничениями
Когда кто-то открывает защищенный документ в Microsoft Office Word 2007, возможность вносить изменения определяется тем, предоставлено ли этому пользователю разрешение на редактирование конкретного фрагмента. При открытии документа в области задач Ограничить форматирование и редактирование отображаются кнопки для перемещения к областям документа, которые можно изменять. Если разрешение на редактирование частей документа предоставлено всем, то любой пользователь, открывший документ, сможет перейти к этим областям, щелкнув Найти следующую область, которую я могу редактировать.
Открытие области задач "Ограничить форматирование и редактирование"
Такое изменение запрещено, поскольку выделенный фрагмент заблокирован.
Чтобы вернуться в область задач и найти фрагмент, который разрешено изменять, сделайте следующее:
На вкладке Рецензирование в группе Защитить нажмите кнопку Защитить документ и выберите пункт Ограничить форматирование и редактирование.
Щелкните Найти следующую область, которую я могу редактировать или Показать все области, которые я могу редактировать.
Операции оппортунистической блокировки работают с четырьмя типами оппортунистических блокировок: уровень 1, уровень 2, пакет и фильтр. Монопольные оппортунистические блокировки — это блокировки уровня 1, пакет и фильтры. Если поток имеет любой тип монопольной блокировки для файла, он также не может иметь блокировку уровня 2 в том же файле.
Дополнительные сведения
Важно: Office 2007 больше не поддерживается. Перейдите на Microsoft 365, чтобы работать удаленно с любого устройства и продолжать получать поддержку.
Добавление защиты и пометка частей, в которых изменения разрешены
На вкладке Рецензирование в группе Защитить нажмите кнопку Ограничить редактирование.
В области Ограничения на редактирование установите флажок Разрешить только указанный способ редактирования документа.
В списке ограничений на редактирование выберите пункт Только чтение.
Выделите часть документа, в которой будут разрешены изменения.
Например, выберите группу абзацев, заголовок, предложение или слово.
Совет: Чтобы выбрать за один раз несколько частей документа, выберите нужную часть, а затем при нажатой клавише CTRL выберите остальные.
В области Исключения сделайте одно из следующего:
Чтобы разрешить любому пользователю, открывшему документ, изменять выбранную часть, в списке Группы установите флажок Все.
Чтобы разрешить редактирование выбранной части только некоторым людям, щелкните Другие пользователи, а затем введите имена пользователей.
Если вы хотите иметь возможность редактировать эту часть документа, укажите свое имя. Разделите имена точкой с запятой.
Важно: Если вы планируете защитить документ с помощью проверки подлинности пользователей вместо защиты с помощью пароля, необходимо ввести для имен пользователей адреса электронной почты, а не учетные записи пользователей Microsoft Windows или Windows Vista.
Примечание: При выборе нескольких пользователей их имена добавляются в качестве элементов в поле Группы, так что их можно быстро выбрать снова.
Продолжайте выбирать части документа и назначать пользователям разрешение на их изменение.
В разделе Включение защиты нажмите кнопку Да, включить защиту.
Выполните одно из указанных ниже действий.
Чтобы назначить документу пароль, необходимый для снятия защиты, введите его в поле Новый пароль (необязательно), а затем подтвердите.
Примечание: Необходимо использовать этот параметр, если предполагается опубликовать документ, чтобы над ним могли одновременно работать несколько людей.
Используйте надежные пароли, состоящие из букв в верхнем и нижнем регистре, цифр и символов. В ненадежных паролях не используются сочетания таких элементов. Надежный пароль: Y6dh!et5. Ненадежный пароль: House27. Пароль должен состоять не менее чем из 8 знаков. Лучше всего использовать парольную фразу длиной не менее 14 знаков.
Очень важно запомнить свой пароль. Если вы забудете пароль, корпорация Майкрософт не сможет его восстановить. Все записанные пароли следует хранить в надежном месте отдельно от сведений, для защиты которых они предназначены.
Чтобы зашифровать документ так, чтобы защиту могли снять только его авторизованные владельцы, установите флажок Проверка подлинности пользователя.
Примечание: Шифрование документа предотвращает совместное редактирование.
Дополнительные сведения о проверке подлинности пользователей см. в статье Управление правами на доступ к данным в Microsoft Office 2010.
Разблокирование защищенного документа
Чтобы снять с документа всю защиту, может потребоваться знать пароль, примененный к документу. Возможно, вы должны быть указаны в качестве владельца документа, который пройдет проверку подлинности.
Если вы являетесь авторизованным владельцем документа или знаете пароль для отключения его защиты, сделайте следующее:
На вкладке Рецензирование в группе Защитить нажмите кнопку Ограничить редактирование.
В области задач Ограничить редактирование нажмите кнопку Отключить защиту.
Если вам будет предложено ввести пароль, укажите его.
Блокирование доступа к файлу
Блокирование доступа к файлу Традиционно архитектура файловой подсистемы UNIX разрешает нескольким процессам одновременный доступ к файлу для чтения и записи. Хотя операции записи и чтения, осуществляемые с помощью системных вызовов read(2) или write(2), являются атомарными, в
Блокирование активного содержимого
Блокирование активного содержимого Веб-страницы могут содержать не только тексты и рисунки, но и специальные программные модули, расширяющие возможности веб-страниц и позволяющие сделать их интерактивными. Однако в то же время этими средствами могут воспользоваться
Дисковый том UNIX состоит из следующих основных областей, показанных (не в масштабе) на рис. 3‑5:
· блок начальной загрузки (BOOT-сектор); его структура определяется не UNIX, а архитектурой используемого компьютера;
· суперблок – содержит основные сведения о дисковом томе в целом (размер логического блока и количество блоков, размеры основных областей, тип файловой системы, возможные режимы доступа), а также данные о свободном месте на диске;
· массив индексных дескрипторов, каждый из которых содержит полные сведения об одном из файлов, хранящихся на диске (кроме имени этого файла);
· область данных, состоящая из логических блоков (кластеров), которые используются для хранения файлов и каталогов (в UNIX используется сегментированное размещение файлов).
В отличие от системы FAT, где основные сведения о файле содержались в каталожной записи, UNIX использует более изощренную схему.
Запись каталога не содержит никаких данных о файле, кроме только имени файла и номера индексного дескриптора этого файла.
В ранних версиях UNIX каждая запись имела фиксированную длину 16 байт, из которых 14 использовались для имени и 2 для номера. В более современных версиях запись имеет переменный размер, что позволяет использовать длинные имена файлов.
Как и в системе FAT, в каждом каталоге первые две записи содержат специальные имена «..» (ссылка на родительский каталог) и «.» (ссылка на данный каталог).
Точнее, это в FAT сделано по примеру UNIX.
Нулевое значение номера соответствует удаленной записи каталога.
Все сведения о файле, кроме имени, содержатся в его индексном дескрипторе (inode). Такая схема делает возможными жесткие связи, описанные выше: любое количество записей из одного каталога или из разных каталогов может относиться к одному и тому же файлу. Для этого надо только, чтобы эти записи содержали один и тот же номер inode.
Индексные дескрипторы хранятся в массиве, занимающем отдельную область диска. Размер этого массива задается при форматировании, этот размер определяет максимальное количество файлов, которое можно разместить на данном томе.
Дескриптор содержит, прежде всего, счетчик жестких связей файла, т.е. число каталожных записей, ссылающихся на данный дескриптор. Этот счетчик изменяется при создании и удалении связей, его нулевое значение говорит о том, что файл перестал быть доступным и должен быть удален.
В дескрипторе содержатся тип и атрибуты файла, описанные выше. Наконец, здесь же содержатся данные о размещении файла, имеющие весьма оригинальную структуру (см. рис. 3‑6).
Размещение блоков файла задается массивом из 13 (в некоторых версиях 14) элементов, каждый из которых может содержать номер блока в области данных. Пусть, для определенности, блок равен 1 Кб, а его номер занимает 4 байта (обе эти величины зависят от версии файловой системы). Первые 10 элементов массива содержат номера первых 10 блоков от начала файла. Если размер файла превышает 10 Кб, то в ход идет 11-й элемент массива. Он содержит номер косвенного блока – такого блока в области данных, который содержит номера следующих 256 блоков файла. Таким образом, использование косвенного блока позволяет работать с файлами размером до 266 Кб, используя для этого один дополнительный блок. Если файл превышает 266 Кб, то в 12-ом элементе массива содержится номер вторичногокосвенного блока, который содержит до 256 номеров косвенных блоков, каждый из которых… Ну, вы поняли. Наконец, для очень больших файлов будет задействован 13-й элемент массива, содержащий номер третичного косвенного блока, указывающего на 256 вторичных косвенных.
Подсчитайте, какой максимальный размер файла может быть достигнут при такой схеме адресации блоков.
Недостатком описанной схемы является то, что доступ к большим файлам требует значительно больше времени, чем к маленьким. Если расположение первых 10 Кб данных файла записано непосредственно в индексном дескрипторе, то для того, чтобы прочитать данные, отстоящие, скажем, на 50 Мб от начала файла, придется сперва прочитать третичный, вторичный и обычный косвенные блоки.
Еще один важный вопрос для любой файловой системы – способ хранения данных о свободном месте. Для UNIX следует различать два вида свободных мест – свободные блоки в области данных и свободные индексные дескрипторы, которые бывают нужны при создании новых файлов. Количество тех и других может быть очень большим. В суперблоке UNIX имеются массивы для хранения некоторого количества номеров свободных блоков и свободных дескрипторов. Если исчерпаны номера свободных дескрипторов в суперблоке, то UNIX просматривает массив дескрипторов, находит в нем свободные и выписывает их номера в суперблок.
Сложнее обстоит дело со свободными блоками данных. Первый элемент размещенного в суперблоке массива номеров свободных блоков указывает на блок в области данных, который содержит продолжение этого массива и, в первом элементе, указатель на следующий блок продолжения. Когда системе нужны блоки дисковой памяти, она берет их из основного массива в суперблоке, а при исчерпании массива читает его продолжение в суперблок. При освобождении блоков происходит обратный процесс: их номера записываются в массив, а при переполнении массива все его содержимое переписывается в один из свободных блоков, номер которого заносится в первый элемент массива как адрес продолжения списка. На рис. 3‑7 показана структура списка свободных блоков.
Как нетрудно понять, из сказанного вытекает, что блоки диска распределяются «по стековому принципу»: блок, освобожденный последним, будет первым снова задействован.
Доступ к данным в UNIX
UNIX предоставляет в распоряжение прикладных программ набор системных вызовов, позволяющих выполнять основные операции с файлами и каталогами в целом (создание, удаление, поиск, изменение владельца и прав доступа), а также с данными, хранящимися в файлах (открытие и закрытие файла, чтение и запись данных, перемещение указателя в файле).
В основе работы с данными, как и для MS-DOS, лежит понятие хэндла открытого файла. Программа получает значение хэндла при открытии или создании файла, а затем использует хэндл для ссылки на открытый файл при обращении к функциям чтения, записи, перемещения указателя и т.п.
UNIX не имеет средств управления разделением доступа при открытии файла, т.е. всегда позволяет нескольким процессам открывать один и тот же файл. Для обеспечения корректной работы процессы могут использовать блокирование фрагментов файла. Можно установить блокировку для записи (эксклюзивную блокировку, см. п. 3.5) или для чтения (кооперативную блокировку). По умолчанию в UNIX используются рекомендательные блокировки. Это означает, что система не препятствует процессу обращаться к заблокированному фрагменту файла. Процесс должен сам запрашивать (если считает нужным), не заблокирован ли данный фрагмент. В более поздних версиях UNIX стало возможным и обязательное блокирование, при котором попытка обращения к заблокированному фрагменту приводит к ошибке.
Для реализации доступа к файлу по значению хэндла в UNIX используются таблицы, аналогичные таблицам JFT и SFT в MS-DOS (см. п. 3.6.4.3). Однако, в отличие от MS-DOS, запись SFT не содержит копии всех атрибутов файла. Вместо этого UNIX хранит в памяти отдельную таблицу копий индексных дескрипторов (inode) всех открытых файлов. Запись SFT содержит ссылку на запись таблицы индексных дескрипторов, а сверх того – те параметры, которых нет в inode: режим доступа к открытому файлу, положение указателя в файле, количество хэндлов, указывающих на данную запись SFT. Если один и тот же файл был открыт несколько раз, то создается несколько записей SFT, указывающих на один и тот же inode.
э: процесс разрешает себе и чтение, и запись, а другим процессам временно запрещает то и другое.
к: устанавливая ее, процесс запрещает только запись всем процессам, в том числе и себе самому, в то время как чтение остается разрешенным для всех.
На какие области делится диск в системе FAT?
BOOT-сектор содержит основные количественные параметры дискового тома и файловой системы, а также может содержать программу начальной загрузки ОС.
таблица FAT (File Allocation Table) – содержит информацию о размещении файлов и свободного места на диске. Ввиду критической важности этой таблицы она всегда хранится в двух экземплярах, которые должны быть идентичны[1]. Каждая операция, изменяющая содержимое FAT, должна одинаковым образом изменять оба экземпляра.
ROOT – корневой каталог системы, содержащий данные о файлах и о подкаталогах верхнего уровня, каждый из которых в свою очередь может содержать файлы и подкаталоги.
Область данных – массив кластеров, содержащий все файлы и все каталоги (кроме корневого).
Что такое FAT?
Файловая система (обычно иерархическая древовидная система). File Allocation Table
таблица FAT - содержит информацию о размещении файлов и свободного места на диске.
Как отмечаются в FAT свободные кластеры? дефектные кластеры?
если кластер свободен, то запись содержит все нули.
если кластер дефектный, то запись содержит специальное значение
FF716 для FAT-12 или FFF716 для FAT-16.
Что означают числа 12 и 16 в названиях FAT12 и FAT16?
Размером записей в битах в таблице FAT
Какие действия выполняются в системе FAT при создании файла?
При создании файла проверяется правильности пути и имени и ищется свободная запись. Если не хватает кластеров, то дополняются новые кластеры к каталогу. Найдя свободное место, система заполняет поля записи о новом файле. Записывается с нулевым размером и нулевым первым кластером.
Какие действия выполняются в системе FAT при удалении файла?
При удалении файла прежде всего по каталожной записи проверяется, можно ли его удалить (не установлен ли атрибут «только для чтения»), а затем делаются две вещи:
первый байт имени удаляемого файла заменяется на специальный символ с кодом E516 (он отображается как русская буква «х»; вероятно, разработчики системы FAT считали, что этот код не может встретиться в имени файла);
все записи таблицы FAT, соответствующие кластерам удаляемого файла, заполняются нулями, т.е. кластеры объявляются свободными.
Что такое хэндл файла?
Хэндл — это некоторое число, которое система возвращает пользовательской программе при удачном выполнении операции открытия или создания файла.
Что такое стандартный ввод и стандартный вывод программы?
Ввод — то откуда читаются данные без указания файла (хендл 0), вывод то куда выводятся данные без указания файла (хендл 1).
В чем отличие системы FAT32 от FAT12 и FAT16?
Размером записей в битах в таблице FAT
Использование 10-байтового резерва(в FAT32 этого нет);
В FAT32 10-байтовый резерв заменили на дату и время создания файла и на дату последнего доступа.
Размер первого кластера в FAT32 = 4 байтам.
Что такое таблицы SFT и JFT?
Таблица SFT (System File Table) содержит записи о всех файлах, в данный момент открытых программами пользователя и самой ОС. таблицы JFT (Job File Table) создаются для каждой запускаемой программы, поэтому одновременно может существовать несколько таких таблиц..Содержит индексы SFT.
Какой смысл имеют числовые значения элементов таблицы JFT?
номер записи в таблице SFT.
Что такое жесткие и символические связи в файловой системе UNIX?
Жесткая связь означает связь между именем файла и самим файлом. Символическая связь представляет собой файл, который содержит имя другого файла.
Чем отличается структура каталога UNIX от Windows?
MS-DOS — нет жестких связей, явное дерево;
UNIX - жесткие связи, сетевая структура.
Что такое монтирование тома в UNIX?
заключается в том, что данный диск отображается на какой-либо из каталогов основного тома. Как правило, для этого используются пустые подкаталоги каталога /mount или /mnt.
Какие типы файлов различаются в UNIX?
обычный файл, т.е. файл, содержащий данные;
символьный специальный файл, т.е., на самом деле, символьное устройство;
блочный специальный файл;
Какие атрибуты файла в UNIX имеют отношение к управлению доступом?
владелец, группа-владелец, атрибуты защиты данных, флаги режимов (SUID и SGID) – определяют какие права унаследуют при запуске программа, хранящаяся в данном файле.
Какая информация о файле содержится в записи каталога UNIX?
Каждая запись состоит из 16 байтов, 14 байтов отводится под короткое символьное имя файла или каталога, а 2 байта — под номер индексного дескриптора этого файла. В каталоге файловой системы s5 непосредственно не указывается характеристики файлов. Это позволяет с меньшими затратами перестраивать систему каталогов. Например при включении и исключении файла из каталога идет манипулирование меньшими объёмами информации. Кроме того при включении одного и того же файла в разные каталоги не нужно иметь несколько копий как характеристик, так и самих файлов. С этой целью в индексном дескрипторе ведется учет ссылок на этот файл из всех каталогов. Как только число ссылок становится равным нулю, индексный дескриптор данного файла уничтожается.
Какая информация о файле содержится в индексном дескрипторе файла UNIX?
Индексный дескриптор всех файлов имеют одинаковый размер - 64 байта и содержат данные о типе файла, о физическом расположении файла на диске, размер в байтах, о дате создания, последней модификации и последнего обращения к файлу, о привилегиях к доступу, счетчик связей и другую информацию (кроме имени файла).
Что означает право на исполнение для каталога?
Право на исполнение каталога означает возможность читать атрибуты файлов каталога, использовать эти файлы, а также право сделать данный каталог текущим.
Почему доступ к маленьким файлам в UNIX выполняется быстрее, чем к большим?
Доступ к большим файлам требует значительно больше времени, чем к маленьким. В силу структуры информации о размещении файлов. Если расположение первых 10 кб данных файла записано непосредственно в индексном дескрипторе, то для того, чтобы прочитать данные, стоящие на 50 мб от начала файла, придётся сперва прочитать третичный, вторичный и обычный косвенные блоки.
Что такое счетчик связей в дескрипторе файла в UNIX?
число каталожных записей, ссылающихся на данный дескриптор.
Что содержат косвенные блоки в файловой системе UNIX?
блок в области данных, который содержит номера следующих 256 блоков файла.
Как хранится информация о свободных блоках памяти в файловой системе UNIX?
Список свободных мест. Массив, причем первый блок содержит адрес следующего.
В чем основные недостатки традиционной файловой системы UNIX?
Что такое MFT в файловой системе NTFS?
Эта таблица содержит записи обо всех файлах и каталогах, расположенных на данном томе.
Что такое резидентные и нерезидентные атрибуты файла?
Если заголовок атрибута и его значение хранятся в записи таблицы MFT, то это резидентный атрибут. А если заголовок хранится в таблице записи MFT, а значение в кластере области данных – то нерезидентные.
Что делает функция CreateFile в Windows?
создания нового файла и открытие существующего.
Что такое маркер доступа в Windows?
Содержит идентификатор пользователя (SID, Security IDentifier), идентификаторы всех групп, в которые включен данный пользователь, а также набор привилегий, которыми обладает пользователь.
Чем управляют списки DACL и SACL?
Пользовательский список DACL управляет разрешениями и запретами доступа к данному объекту.
Системный список SACL управляет только аудитом доступа к данному объекту.
Из чего состоит запись ACE?
тип АСЕ, который может быть одним из следующих: разрешение, запрет, аудит;
Маска прав доступа(чтение, запись, исполнение)
идентификатор (SID) пользователя или группы, чьи права определяет данная АСЕ.
Документ можно пометить как доступный только для чтения, но при этом разрешить внесение изменений в отдельные его части.
Такие части со снятыми ограничениями можно сделать доступными для любого пользователя, открывающего документ, либо можно предоставить разрешение на изменение этих частей документа отдельным пользователям.
Блокирование объектов
Блокирование объектов В заключение главы, посвященной редактированию объектов, упомяну о механизме, позволяющем избежать случайного изменения объектов или их свойств. В ArchiCAD имеется способ заблокировать необходимые объекты от редактирования. Для этого следует
Дополнительные сведения
Фильтрация оппортунистических блокировок
Фильтр оппортунистическая блокировка блокирует файл, чтобы его нельзя было открыть для доступа на запись или удаление. Все клиенты должны иметь возможность совместного использования файла. Блокировки фильтров позволяют приложениям выполнять неинтрусивные операции фильтрации данных файлов (например, компилятор, открывающий исходный код или программу каталогизации).
Блокировка фильтра оппортунистическая блокировка отличается от оппортунистической блокировки уровня 2, что позволяет выполнять операции открытия для чтения без нарушений режима общего доступа в интервале времени между открытием файла и получением блокировки. Блокировка фильтра является наиболее подходящей блокировкой, когда важно разрешить другим клиентам доступ на чтение. В других случаях приложение должно использовать оппортунистическую блокировку уровня 2. Блокировка фильтра оппортунистическая отличается от пакетной оппортунистической блокировки, что не позволяет обрабатывать несколько открытий и закрытий сетевым перенаправителем так, как выполняется пакетная оппортунистическая блокировка.
Приложение должно запросить оппортунистическую блокировку фильтра для файла в трех шагах:
- Используйте функцию CreateFile , чтобы открыть дескриптор файла с параметром DesiredAccess , равным нулю, указывая на отсутствие доступа, и параметр dwShareMode , установленный для флага FILE_SHARE_READ , чтобы разрешить общий доступ для чтения. Дескриптор, полученный на этом этапе, называется дескриптором блокировки.
- Запросите блокировку этого дескриптора с помощью кода элемента управления FSCTL_REQUEST_FILTER_OPLOCK .
- Когда блокировка будет предоставлена, используйте CreateFile , чтобы снова открыть файл с desiredAccess , установленным для флага GENERIC_READ . Присвойте dwShareModeфлагу FILE_SHARE_READ , чтобы разрешить другим пользователям считывать файл во время открытия, флаг FILE_SHARE_DELETE , чтобы другие пользователи могли пометить файл для удаления при его открытии или обоих. Дескриптор, полученный на этом этапе, называется дескриптором чтения.
Используйте дескриптор чтения для чтения или записи в содержимое файла.
При открытии файла, который уже имеет оппортунистическую блокировку фильтра, сервер прерывает блокировку, а затем проверяет состояние общего доступа файла. Эта проверка дает клиенту, который держал ранее оппортунистическую блокировку, возможность отказаться от любых кэшированных данных и подтвердить разрыв. Открытая операция, предпринятая во время этой проверки общего доступа, не приводит к сбою проверки общего доступа, если бывший держатель блокировки освобождает блокировку. Файловая система удерживает на себе операцию открытия, пока владелец блокировки не закроет как дескриптор чтения, так и дескриптор блокировки. После этого открытый запрос другого клиента может продолжиться.
Дополнительные сведения о нарушениях оппортунистических блокировок см. в разделе "Критические оппортунистические блокировки".
Разблокирование защищенного документа
Чтобы снять с документа всю защиту, может потребоваться знать пароль, примененный к документу. Возможно, вы должны быть указаны в качестве владельца документа, который пройдет проверку подлинности.
Если вы являетесь авторизованным владельцем документа или знаете пароль для отключения его защиты, сделайте следующее:
На вкладке Рецензирование в группе Защитить нажмите кнопку Ограничить редактирование.
В области задач Ограничить форматирование и редактирование нажмите кнопку Отключить защиту.
Если вам будет предложено ввести пароль, укажите его.
Внесение изменений в документ с ограничениями
Когда вы открываете защищенный документ в Word, возможность его редактирования определяется наличием или отсутствием разрешения от владельца документа на внесение изменений в определенную его часть.
В области задач Ограничить редактирование отображаются кнопки для перехода к областям документа, в которых пользователю разрешены изменения.
Добавление защиты и пометка частей, в которых изменения разрешены
На вкладке Рецензирование в группе Защитить нажмите кнопку Защитить документ и выберите пункт Ограничить форматирование и редактирование.
В области Ограничения на редактирование установите флажок Разрешить только указанный способ редактирования документа.
В списке ограничений на редактирование выберите пункт Только чтение.
Выделите часть документа, для которой не нужны ограничения.
Например, выберите группу абзацев, заголовок, предложение или слово.
Совет: Чтобы выбрать за один раз несколько частей документа, выберите нужную часть, а затем при нажатой клавише CTRL выберите остальные.
В области Исключения сделайте одно из следующего:
Чтобы разрешить любому пользователю, открывшему документ, изменять выбранную часть, в списке Группы установите флажок Все.
Важно: Если вы планируете защитить документ с помощью проверки подлинности пользователей вместо защиты с помощью пароля, необходимо ввести для имен пользователей адреса электронной почты, а не учетные записи пользователей Microsoft Windows или Windows Vista.
Примечание: При выборе нескольких пользователей их имена добавляются в качестве элементов в поле Группы, так что их можно быстро выбрать снова.
Продолжайте выбирать части документа и назначать пользователям разрешение на их изменение.
В разделе Включение защиты нажмите кнопку Да, включить защиту.
Выполните одно из указанных ниже действий.
Чтобы назначить документу пароль, необходимый для снятия защиты, введите его в поле Новый пароль (необязательно), а затем подтвердите.
Используйте надежные пароли, состоящие из букв в верхнем и нижнем регистре, цифр и символов. В ненадежных паролях не используются сочетания таких элементов. Надежный пароль: Y6dh!et5. Ненадежный пароль: House27. Пароль должен состоять не менее чем из 8 знаков. Лучше всего использовать парольную фразу длиной не менее 14 знаков.
Очень важно запомнить свой пароль. Если вы забудете пароль, корпорация Майкрософт не сможет его восстановить. Все записанные пароли следует хранить в надежном месте отдельно от сведений, для защиты которых они предназначены.
Чтобы зашифровать документ так, чтобы защиту могли снять только его авторизованные владельцы, установите флажок Проверка подлинности пользователя.
Что вы хотите сделать?
Читайте также: