Файл, файловая система. Классификация файловых систем. Основные подходы к защите фс. Файл



страница1/8
Дата26.06.2018
Размер1.28 Mb.
#33730
  1   2   3   4   5   6   7   8

  1. Файл, файловая система. Классификация файловых систем. Основные подходы к защите ФС.

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

ФС. Термин файловая система (file system) используется для обозначения программной системы, управляющей файлами, и архива файлов, хранящегося во внешней памяти. Система управления файлам = файловая система реализует распределение внешней памяти, распределение имен, обеспечение доступа к данным и поддержку многопользовательского режима работы.

Представление файла. Файл имеет блочное представление. Логически файл – набор последовательных блоков, отображаемых на физические блоки диска (блоки произвольные). Размер логического блока файла совпадает с размером физического блока диска или кратен ему.

В некоторых файловых системах базовый уровень был доступен пользователю, но чаще он прикрывался некоторым более высоким уровнем, стандартным для пользователей. Существуют два основных подхода. При первом подходе, пользователи представляют файл как последовательность записей. Каждая запись – это последовательность байтов, имеющая постоянный или переменный размер. Можно читать или писать записи последовательно либо позиционировать файл на запись с указанным номером. Некоторые файловые системы позволяют структурировать записи на поля.

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

Классификация ФС по именованию файлов. Во всех современных файловых системах обеспечивается многоуровневое именование файлов. Каждый каталог содержит имена каталогов и/или файлов, хранящихся в данном каталоге. Таким образом, полное имя файла состоит из списка имен каталогов, начиная с корневого, плюс имя файла. Разница между способами именования файлов в разных файловых системах состоит в том, какой корневой каталог сопоставить имени файла. В связи с этим имеются два радикально различных подхода.

Изолированные ФС – полное имя файла начинается с имени логического диска (С: …).

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

Защита ФС. В защите ФС имеется два основных подхода. Первый – мандатный, для каждого зарегистрированного пользователя для каждого файла указываются действия, которые разрешены или запрещены данному пользователю. Такой подход влечет затраты, связанные с потребностью хранения избыточной информации.

Поэтому в большинстве современных ФС применяется дискреционный подход к защите файлов. У каждого пользователя есть 2 целочисленных идентификатора: его собственный и группы, к которой он принадлежит. Каждый процесс, запущенный от имени этого пользователя снабжается этими же идентификаторами. Соответственно при каждом файле хранится полный идентификатора создавшего его пользователя, и помечается, какие действия с файлом может производить сам пользователь-владелец, группа владельца и все остальные. Для каждого файла возможно выполнение трех действий: чтение, запись и выполнение.




  1. СУБД. Основные функции СУБД. Типовая организация современной СУБД.

СУБД = система управления базами данных – специализированный комплекс программ, предназначенный для организации и ведения базы данных.

Основные функции СУБД. СУБД обеспечивает следующие функции:

  1. Управление логически согласованными данными во внешней памяти (эта функция включает обеспечение необходимых структур внешней)

  2. Управление буферами ОП (количество данных гораздо больше ОП, нужно предоставить механизм буферизации ОП)

  3. Управление транзакциями (понятие транзакции необходимо для поддержания лог-кой целостности БД)

  4. Журнализация и восстановления после сбоя (обеспечивают надежность СУБД)

  5. Обеспечение языков БД (в современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных.)

Типовая организация. Логически в современной реляционной СУБД можно выделить наиболее внутреннюю часть - ядро СУБД (часто его называют Data Base Engine), компилятор языка БД (обычно SQL), подсистему поддержки времени выполнения, набор утилит. В некоторых системах эти части выделяются явно, в других - нет, но логически такое разделение можно провести во всех СУБД.

Ядро СУБД отвечает за управление данными во внешней памяти, управление буферами ОП, управление транзакциями и журнализацию. Соответственно, можно выделить такие компоненты ядра (по крайней мере, логически), как менеджер данных, менеджер буферов, менеджер транзакций и менеджер журнала. Функции этих компонентов взаимосвязаны, и для обеспечения корректной работы СУБД все эти компоненты должны взаимодействовать по тщательно продуманным и проверенным протоколам. Ядро СУБД обладает собственным интерфейсом, не доступным пользователям напрямую и используемым в программах, производимых компилятором SQL и утилитах БД.

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

В отдельные утилиты БД обычно выделяют такие процедуры, которые слишком накладно выполнять с использованием языка БД, например, загрузка и выгрузка БД, сбор статистики, глобальная проверка целостности БД и т.д. Утилиты программируются с использованием интерфейса ядра СУБД, а иногда даже с проникновением внутрь ядра.


  1. Транзакции. Свойства ACID. Сериализация транзакций.

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

ACID. Транзакции обладают 4 свойствами АСИД (ACID):

  1. Атомарность (транзакция – неделимое целое)

  2. Согласованность (если транзакция не согласована, то полностью не выполняется; до и после действия транзакции БД должна находиться в согласованном состоянии)

  3. Изоляция (внутреннее содержание транзакции скрыто)

  4. Долговечность (хранение данных даже если что-то произойдет)

Сериализация параллельных транзакций – такой план их работы, при котором результат выполнения смеси транзакций идентичен результату последовательного выполнения.

Существует несколько базовых алгоритмов сериализации транзакций. При использовании любого алгоритма сериализации возможны ситуации конфликтов между двумя или более транзакциями по доступу к объектам БД. В этом случае для поддержания сериализации необходимо выполнить откат (ликвидировать все изменения, произведенные в БД) одной или более транзакций. Это один из случаев, когда пользователь многопользовательской СУБД может реально (и достаточно неприятно) ощутить присутствие в системе транзакций других пользователей.




  1. Надежность СУБД. Классификация сбоев. Журнализация. Уровни журнализации. Типичные схемы использования журнала.

Одна из главных задач СУБД – обеспечение надежности хранения данных. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя.

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

Для восстановления БД необходима дополнительная информация.



Журнализация изменений - функция СУБД, которая сохраняет информацию, необходимую для восстановления базы данных в предыдущее состояние в случае логических или физических отказов. Журнал – особая часть СУБД, не доступная для пользователя и хранимая с особой тщательностью, в которую поступают записи обо всех изменениях основной части БД. Обычно есть несколько копий журнала на разных физических носителях.

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

Типичные схемы. Придерживаются стратегии "упреждающей" записи в журнал (так называемого протокола Write Ahead Log - WAL). Грубо говоря, эта стратегия заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД. Известно, что если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.

Самая простая ситуация восстановления - индивидуальный откат транзакции. Можно для каждой транзакции поддерживать локальный журнал операций модификации БД, выполненных в этой транзакции, и производить откат транзакции путем выполнения обратных операций, следуя от конца локального журнала. В некоторых СУБД так и делают, но в большинстве систем локальные журналы не поддерживают, а индивидуальный откат транзакции выполняют по общесистемному журналу, для чего все записи от одной транзакции связывают обратным списком (от конца к началу).

При мягком сбое во внешней памяти основной части БД могут находиться объекты, модифицированные транзакциями, не закончившимися к моменту сбоя, и могут отсутствовать объекты, модифицированные транзакциями, которые к моменту сбоя успешно завершились. Целью процесса восстановления после мягкого сбоя является состояние внешней памяти основной части БД, которое возникло бы при фиксации во внешней памяти изменений всех завершившихся транзакций и которое не содержало бы никаких следов незаконченных транзакций. Для того, чтобы этого добиться, сначала производят откат незавершенных транзакций (undo), а потом повторно воспроизводят (redo) те операции завершенных транзакций, результаты которых не отображены во внешней памяти.

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




  1. Ранние дореляционные подходы к организации баз данных.

Системы, основанные на инвертированных списках.

База данных, организованная с помощью инвертированных списков, похожа на реляционную БД, но с тем отличием, что хранимые таблицы и пути доступа к ним видны пользователям. При этом:

  1. Строки таблиц упорядочены системой в некоторой физической последовательности.

  2. Физическая упорядоченность строк всех таблиц может определяться и для всей БД.

  3. Для каждой таблицы можно определить произвольное число ключей поиска, для которых строятся индексы. Эти индексы автоматически поддерживаются системой, но явно видны пользователям.

Поддерживаются два класса операторов:

    1. Операторы, устанавливающие адрес записи, среди которых:

  • прямые поисковые операторы (например, найти первую запись таблицы по некоторому пути доступа);

  • операторы, находящие запись в терминах относительной позиции от предыдущей записи по некоторому пути доступа.

    1. Операторы над адресуемыми записями (например, UPDATE - обновить запись с указанным адресом).

Общие правила определения целостности БД отсутствуют.

Иерархические системы

Иерархическая БД состоит из упорядоченного набора деревьев; более точно, из упорядоченного набора нескольких экземпляров одного типа дерева. Тип дерева состоит из одного «корневого» типа записи и упорядоченного набора из нуля или более типов поддеревьев (каждое из которых является некоторым типом дерева). Тип дерева в целом представляет собой иерархически организованный набор типов записи. Пример:



Для БД определен полный порядок обхода - сверху-вниз, слева-направо.

Примерами типичных операторов манипулирования иерархически организованными данными могут быть следующие:


  • Найти указанное дерево БД;

  • Перейти от одного дерева к другому;

  • Вставить новую запись в указанную позицию;

  • Удалить текущую запись.

Автоматически поддерживается целостность ссылок между предками и потомками. Основное правило: никакой потомок не может существовать без своего родителя.

Сетевые системы.

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

Сетевая БД состоит из набора записей и набора связей между этими записями, а если говорить более точно, из набора экземпляров каждого типа из заданного в схеме БД набора типов записи и набора экземпляров каждого типа из заданного набора типов связи.

Тип связи определяется для двух типов записи: предка и потомка. Экземпляр типа связи состоит из одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка. Для данного типа связи L с типом записи предка P и типом записи потомка C должны выполняться следующие два условия:



  • Каждый экземпляр типа P является предком только в одном экземпляре L;

  • Каждый экземпляр C является потомком не более, чем в одном экземпляре L.

На формирование типов связи не накладываются особые ограничения.

Простой пример сетевой схемы БД:



Примерный набор операций может быть следующим:



  • Найти конкретную запись в наборе однотипных записей;

  • Перейти от предка к первому потомку по некоторой связи;

  • Перейти к следующему потомку в некоторой связи;

  • Создать новую запись;

  • Модифицировать запись;

  • Включить в связь;

  • Переставить в другую связь и т.д.

В принципе поддержание целостности не требуется, но иногда требуют целостности по ссылкам (как в иерархической модели).

Каталог: raw
raw -> Процесс загрузки и инициализации персональных ЭВМ архитектуры x86. Функции загрузчика. Загрузка ядра jos
raw -> Резюме " Восстановление протектора крупногабаритных шин "
raw -> Цель лабораторной работы: научиться работать с системой управления версиями, ставить, отслеживать и выполнять поставленные задачи
raw -> Предпосылки возникновения сетей. Краткая история развития ЭВМ и методов доступа к ним. Кто, как и для чего использует сеть ЭВМ. Организация вычислительных сетей. Классификация сетей ЭВМ. Организация программного обеспечения сетей ЭВМ


Поделитесь с Вашими друзьями:
  1   2   3   4   5   6   7   8




База данных защищена авторским правом ©vossta.ru 2022
обратиться к администрации

    Главная страница