Материал: Ответы к экзамену (Операционные системы)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
  1. Файловые системы: определение, виды и функции.

Определение

Файловая система — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п.

Классификация файловых систем по предназначению

  • Для носителей с произвольным доступом (например, жёсткий диск): FAT32, HPFS, ext2 и др. Поскольку доступ к дискам в несколько раз медленнее, чем доступ к оперативной памяти, для прироста производительности во многих файловых системах применяется асинхронная запись изменений на диск. Для этого применяется либо журналирование, например, в ext3, ReiserFS, JFS, NTFS, XFS, либо механизм soft updates и др. Журналирование широко распространено в Linux, применяется в NTFS. Soft updates — в BSD системах.

  • Для носителей с последовательным доступом (например, магнитные ленты): QIC и др.

  • Для оптических носителей — CD и DVD: ISO9660, HFS, UDF и др.

  • Виртуальные файловые системы: AEFS и др.

  • Сетевые файловые системы: NFS, CIFS, SSHFS, GmailFS и др.

  • Для флэш-памяти: YAFFS, ExtremeFFS, exFAT.

  • Немного выпадают из общей классификации специализированные файловые системы: ZFS(собственно файловой системой является только часть ZFS), VMware VMFS[en] (т. н. кластерная файловая система, которая предназначена для хранения других файловых систем) и др.

Задачи файловой системы:

  • именование файлов;

  • программный интерфейс работы с файлами для приложений;

  • отображения логической модели файловой системы на физическую организацию хранилища данных;

  • организация устойчивости файловой системы к сбоям питания, ошибкам аппаратных и программных средств;

  • содержание параметров файла, необходимых для правильного его взаимодействия с другими объектами системы (ядро, приложения и пр.);

В многопользовательских системах появляется две задачи:

  • защита файлов одного пользователя от несанкционированного доступа другого пользователя,

  • обеспечение совместной работы с файлами, к примеру, при открытии файла одним из пользователей, для других этот же файл временно будет доступен в режиме «только чтение».

  1. Архитектура файловых систем на примере fat16.

Файловая система — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п.

Файловая система FAT16 (англ. File Allocation Table «таблица размещения файлов») применялась в ОС DOS, Windows 95 / 98 / Me / NT / 2000 / XP.

FAT16 делит всё адресное пространство на:

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

  • Большую область данных – файлы и каталоги.

Минимальная адресная единица – сектор (размер – 512 байт). Несколько расположенных подряд секторов – это кластер (не более 128 секторов - не более 64 КБ, количество кластеров - не более 65525 штук).

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

Системная область создается при форматировании носителя данных и носит описательный характер. Она состоит из следующих частей:

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

  • FAT1 (это таблица с одним столбцом и 512/2 количеством строк, которая служит в роли карты по кластерам, каждая её строка характеризует какой либо кластер, первая строка – первый кластер, вторая – второй и так для всех кластеров, что есть в области данных) ;

  • FAT2;

  • Корневой каталог (Это область памяти, содержащая 32-х байтовые элементы. Каждый элемент описывает, какой-либо файл или каталог, находящиеся в корневом каталоге или другим языком «в корне» жесткого диска/флешки. Выходит, корневой каталог описывает все то, что есть в корне).

  1. Особенности файловых систем для различных носителей данных.

Определение

Файловая система — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п.

Классификация файловых систем по предназначению

  • Для носителей с произвольным доступом (например, жёсткий диск): FAT32, HPFS, ext2 и др. Поскольку доступ к дискам в несколько раз медленнее, чем доступ к оперативной памяти, для прироста производительности во многих файловых системах применяется асинхронная запись изменений на диск. Для этого применяется либо журналирование, например, в ext3, ReiserFS, JFS, NTFS, XFS, либо механизм soft updates и др. Журналирование широко распространено в Linux, применяется в NTFS. Soft updates — в BSD системах.

  • Для носителей с последовательным доступом (например, магнитные ленты): QIC и др.

  • Для оптических носителей — CD и DVD: ISO9660, HFS, UDF и др.

  • Виртуальные файловые системы: AEFS и др.

  • Сетевые файловые системы: NFS, CIFS, SSHFS, GmailFS и др.

  • Для флэш-памяти: YAFFS, ExtremeFFS, exFAT.

  • Немного выпадают из общей классификации специализированные файловые системы: ZFS(собственно файловой системой является только часть ZFS), VMware VMFS[en] (т. н. кластерная файловая система, которая предназначена для хранения других файловых систем) и др.

  1. Журналирование и квоты в файловых системах.

Журналирование

Журналируемая файловая система — файловая система, в которой осуществляется ведение журнала, хранящего список изменений и, в той или иной степени, помогающего сохранить целостность файловой системы при сбоях.

Журналируемая файловая система сохраняет список изменений, которые она будет проводить с файловой системой, перед фактическим их осуществлением. Эти записи хранятся в отдельной части файловой системы, называемой журналом (англ. journal) или логом (англ. log). Как только изменения файловой системы внесены в журнал, она применяет эти изменения к файлам или метаданным, а затем удаляет эти записи из журнала. Записи журнала организованы в наборы связанных изменений файловой системы.

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

По типу внесения в журнал журналируемые ФС подразделяются на:

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

  • упорядоченные (журналируются только метаданные синхронно относительно данных): JFS2, ext3 (по умолчанию), ReiserFS (основной);

  • в режиме данных (журналируются как метаданные, так и данные): ext3.

Квоты

Квоты - это опциональная возможность операционной системы, которая позволяет ограничивать объем дискового пространства и/или количество файлов для конкретного пользователя или членов определенной группы в рамках одной файловой системы. Чаще всего эта возможность используется в системах разделения времени, когда желательно ограничить количество ресурсов, которые может использовать один пользователь или группа пользователей. Это позволит не допустить ситуации, когда один пользователь или группа пользователей заполняют всё доступное дисковое пространство.

  1. Параллельные вычисления; закон Амдала.

Определение

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

Способы синхронизации параллельного взаимодействия:

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

Рисунок 1. Синхронизация через разделяемую память

Особенности синхронизации через разделяемую память:

  • N потоков = N процессоров;

  • Создание потоков:

    • Средствами языка;

    • С помощью библиотек явно или декларативно;

    • Автоматически средствами компиллятора;

  • Использование:

    • Мьютексов;

    • Семафоров и пр.

  1. Взаимодействие c помощью передачи сообщений: на каждом процессоре многопроцессорной системы запускается однопоточный процесс, который обменивается данными с другими процессами, работающими на других процессорах, с помощью сообщений.

Рисунок 2. Синхронизация через передачу сообщений

Особенности синхронизации через передачу сообщений:

  • Процессы создаются явно с помощью функции ОС;

  • Обмен сообщениями (асинхронный или с блокировкой отправителя до момента доставки сообщения):

    • Через библиотеку;

    • С помощью средств языка;

  1. Гибридный способ: на многопроцессорных системах с распределённой памятью (DM-MIMD), где каждый узел системы представляет собой мультипроцессор с общей памятью (SM-MIMD), можно использовать гибридный метод программирования. На каждом узле системы запускается многопоточный процесс, который распределяет потоки между процессорами данного узла. Обмен данными между потоками на узле осуществляется через общую память, а обмен данными между узлами — через передачу сообщений. В этом случае количество процессов определяется количеством узлов, а количество потоков — количеством процессоров на каждом узле. Гибридный способ программирования более сложен (требуется особым образом переписывать параллельную программу), но наиболее эффективен в использовании аппаратных ресурсов каждого узла многопроцессорной системы.

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

Закон Амдала

Закон Амдала был сформулирован Джином Амдалом в 1967 году, он иллюстрирует ограничение роста производительности вычислительной системы с увеличением количества вычислителей. «В случае, когда задача разделяется на несколько частей, суммарное время её выполнения на параллельной системе не может быть меньше времени выполнения самого медленного фрагмента». Согласно этому закону, ускорение выполнения программы за счёт распараллеливания её инструкций на множестве вычислителей ограничено временем, необходимым для выполнения её последовательных инструкций.

Математическое выражение закона Амдала

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

Закон Амдала предлагает нам некий метод оценки потенциального ускорения времени исполнения некоторой задачи, которое мы можем ожидать от системы при улучшении её ресурсов.