neosee.ru

26.05.17
[1]
переходы:37

скачать файл
12. Файловые системы

Часть III

12. Файловые системы 3

12.1 Структурная организация файлов 3

12.2 Атрибуты файла 3

12.3 Основные правила работы с файлами 4

12.4 Типовые программные интерфейсы работы с файлами 4

12.5 Модельная организация каталогов файловых систем 4

12.6 Подходы в практической реализации файловой системы 5

12.6.1 Структура «системного» диска 5

12.6.2 Модели реализации файлов 6

12.6.2.1 Непрерывные файлы 6

12.6.2.2 Файлы, имеющие организацию связанного списка. 6

12.6.2.3 Таблица размещения файловой системы 7

12.6.2.4 Индексные узлы (дескрипторы) 7

12.6.3 Модели организации каталогов 8

12.6.4 Варианты соответствия: имя файла - содержимое файла 8

12.6.5 Координация использования пространства внешней памяти 9

12.6.6 Учет свободных блоков файловой системы 9

12.6.6.1 Связный список свободных блоков 9

12.6.6.2 Использование битового массива 9

12.6.7 Квотирование пространства файловой системы 10

12.7 Надежность файловой системы 10

12.7.1 Стратегии архивирования 11

12.7.2 Контроль непротиворечивости блоков файловой системы 11

13. ОС Unix: файловая система 13

13.1 Организация ФС Unix 13

13.2 Права доступа 13

13.3 Логическая структура каталогов 14

13.4 Внутренняя организация ФС 15

13.4.1 Модель версии System V 15

13.4.1.1 Структура ФС 15

13.4.1.2 Работа с массивами номеров свободных блоков 16

13.4.1.3 Работа с массивом свободных ИД 16

13.4.1.4 Индексные дескрипторы 16

13.4.1.5 Адресация блоков файла 17

13.4.1.6 Файл каталог 18

13.4.1.7 Установление связей 18

13.4.1.8 Достоинства ФС модели версии System V 19

13.4.1.9 Недостатки ФС модели версии System V 19

13.4.2 Модель версии FFS BSD 19

13.4.2.1 Стратегии размещения 20

13.4.2.2 Внутренняя организация блоков 21

13.4.2.3 Структура каталога FFS 22

13.4.3 Файловая система Ext2 Linux 22

13.4.4 NFS - сетевая файловая система 23

14. Управление внешними устройствами. 24

14.1 Архитектура. 24

14.2 Программное управление внешними устройствами 25

14.3 Буферизация обмена 25

14.4 Планирование дисковых обменов 26

14.5 RAID системы. 27

15. OC Unix: Работа с внешними устройствами 30

15.1 Файлы устройств, драйверы 30

15.2 Включение/удаление драйверов в систему 32

15.3 Организация обмена данными с файлами 33

15.3.1 Таблица индексных дескрипторов открытых файлов. 33

15.3.2 Таблица файлов. 33

15.3.3 Таблица открытых файлов. 34

15.3.4 Пример 34

15.4 Буферизация при блокориентированном обмене 35

15.5 Борьба со сбоями 36

16. CПИСОК ВОПРОСОВ ПО КУРСУ “ОПЕРАЦИОННЫЕ СИСТЕМЫ” 2002/2003 г. г. 36


































12. Файловые системы


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

Данные называются файлами, их имена - именами файлов.

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


12.1 Структурная организация файлов


Существует множество разновидностей структурной организации файлов. Наиболее популярные:

1. Файл, как последовательность байтов (обмен от 1 до фиксированного числа байтов)

2. Файл, как последовательность записей переменной длины (обмен в терминах записи, информация в виде последовательности записей, поле данных + символ конца записи, последовательный доступ)

3. Файл, как последовательность записей постоянной длины (обмен в терминах записей постоянной длины)

4. Иерархическая организация файла (дерево) (поиск, сортировка и т.д. осуществляется по ключам).

Дерево, в узлах записи

(возможно переменной длины)

.

12.2 Атрибуты файла


имя

права доступа

персонификация (создатель, владелец)

тип файла

размер записи

размер файла

указатель чтения / записи

время создания

время последней модификации

время последнего обращения

предельный размер файла

.....

Полный состав атрибутов файла и способ их представления определяется конкретной файловой системой.


12.3 Основные правила работы с файлами

Операционная система и файловая система обеспечивают регистрацию возможности того или иного процесса работать с содержимым файлов. «Сеанс работы» с содержимым файла:

Начало : «открытие» файла (регистрация в системных таблицах, нет взаимно однозначного соответствия между открытыми файлами и дескрипторами, сколько раз открыт файл, столько у него дескрипторов )


Работа с содержимым файла, с атрибутами файла


Завершение: «закрытие» файла - информация системе о завершении работы процесса с «открытым» файлом, закрытие дескрипторов, разгрузка системы от вещей связанных с работой этого файла.


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


12.4 Типовые программные интерфейсы работы с файлами

open - открытие / создание файла

«r» - на чтение

«w» - на запись

и т.д.


close - закрытие


read / write - читать, писать (относительно положения указателя чтения / запись, read/write по дескриптору а не по имени)


delete - удалить файл из файловой системы (напрямую или дескриптор)


seek - позиционирование указателя чтение/запись


rename - переименование файла

read / write _attributes - чтение, модификация

атрибутов файла.


12.5 Модельная организация каталогов файловых систем

Каталог - компонент файловой системы, содержащий информацию о содержащихся в файловой системе файлах. Специальные файлы - каталоги.


Модель одноуровневой файловой системы.

(один корневой каталог содержит информацию обо всех каталогах)


Модель двухуровневой файловой системы.



Иерархические файловые системы


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


Остановимся на правилах именования в иерархической файловой системе. В данном случае используется механизм, снованный на понятии имени файла (name) и полного имени файла (path_name). Полное имя файла - это путь от корневого каталога до листа (такой путь всегда будет уникальным). Существует также относительное именование, т.е. когда нет необходимости указания полного пути при работе с файлами. Это происходит в случае, когда программа вызывает файл и подразумевается, что он находится в том же каталоге, что и программа. В данном случае появляется понятие текущего каталога, т. е. каталога, на работу с которым настроена файловая система в данный момент времени. В рамках одного каталога имена файлов одного уровня должны быть разными.




12.6 Подходы в практической реализации файловой системы


12.6.1 Структура «системного» диска






12.6.2 Модели реализации файлов


12.6.2.1 Непрерывные файлы

Достоинства:

Простота реализации

Высокая производительность

Недостатки:

Фрагментация свободного пространства (прямая и косвенная)

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



12.6.2.2 Файлы, имеющие организацию связанного списка.

Достоинства: Отсутствие фрагментации свободного пространства

( за исключением блочной блочной фрагментации )

Простота реализации

Эффективный последовательный доступ

Недостатки: Сложность (не эффективность) организации прямого доступа

Фрагментация файла по диску

Наличие ссылки в блоке файла (ситуации чтения 2-х блоков при необходимости чтения данных объемом один блок).


12.6.2.3 Таблица размещения файловой системы



Достоинства:

возможность использования всего блока для хранения данных файла

оптимизация прямого доступа (при полном или частичном размещении таблицы в ОЗУ)

Недостатки:

желательно размещение всей таблицы в ОЗУ (проблема размера, например для 60 Gb раздела и блоков размером 1Kb потребуется 60 000 000*4b = 240 Mb).






12.6.2.4 Индексные узлы (дескрипторы)



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




Достоинства:

нет необходимости в размещении в ОЗУ информации всей FAT о все файлах системы, в памяти размещаются атрибуты, связанные только с открытыми файлами.

Недостатки:

размер файла и размер индексного узла (в общем случае прийти к размерам таблицы размещения). Решение:

- ограничение размера файла

- иерархическая организация индексных узлов


12.6.3 Модели организации каталогов







Возникает вопрос: как организовать длинные имена файлов?



12.6.4 Варианты соответствия: имя файла - содержимое файла


Содержимому любого файла соответствует единственное имя файла.


Примеры:






Содержимому файла может соответствовать два и более имен файла.


Жесткая” связь

Существует счетчик ссылок из каталогов NameCount



    1. Символическая” связь


12.6.5 Координация использования пространства внешней памяти


Проблема - размер блока файловой системы.

«Большой блок»:

- эффективность обмена

- существенная внутренняя фрагментация

( не эффективное использование пространства ВП)

«Маленький блок»:

- эффективное использование пространства ВП

- фрагментация данных файла по диску


Решение - подбирать размер блока для каждой конкретной задачи.

12.6.6 Учет свободных блоков файловой системы

12.6.6.1 Связный список свободных блоков


Пример:

Размер блока 1 Кб

1 блок = 256 х 4 б

255 номеров свободных блоков

1 ссылка на следующий блок



Для HDD 16 Gb список свободных блоков состоит из 16794 блоков.



При использовании связного списка свободных блоков в ОЗУ размещается первый блок списка.


12.6.6.2 Использование битового массива



Состояние любого блока определяется содержимым бита с номером каждого блока.


Если блок свободен, бит равен 1, занят - 0.



Пример:

Для HDD 16 Gb потребуется 2048 блоков для хранения

битового массива






12.6.7 Квотирование пространства файловой системы



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


Жесткие лимиты - не превышаются никогда. Гибкие квоты - можно превышать, но после этого «включается обратный счетчик» предупреждений. Пока счетчик 0, при каждой регистрации пользователя в системе от получает предупреждение, если счетчик = 0, пользователь блокируется.









12.7 Надежность файловой системы

  1. надежность аппаратная

  2. надежность программная


Потеря информации:




в результате аппаратного или программного сбоя.

случайное удаление файлов.

=>


      • Резервное копирование (архивирование):

Проблемы:

  • Копируются не все файлы файловой системы (избирательность архивирования по типам файлов);

  • Инкрементное архивирование (резервное копирование) - единожды создается «полная» копия, все последующие включают только обновленные файлы;

  • Использование компрессии при архивировании (риск потери всего архива из-за ошибки в чтении/записи сжатых данных);

  • Проблема архивирования «на ходу» (во время копирования происходят изменения файлов, создание, удаление каталогов и т.д.)

  • Распределенное хранение резервных копий.


12.7.1 Стратегии архивирования



Физическая архивация

  • «один в один»;

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

  • проблема обработки дефектных блоков.


Логическая архивация - копирование файлов (а не блоков), модифицированных после заданной даты.



Проверка целостности файловой системы


Проблема - при аппаратных или программных сбоях возможна потеря информации:

потеря модифицированных данных в «обычных» файлах;

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


Необходим к

онтроль целостности или непротиворечивости файловой системы.


12.7.2 Контроль непротиворечивости блоков файловой системы


Модельная стратегия контроля


1.Формируются две таблицы:

- таблица занятых блоков;

- таблица свободных блоков;

(размеры таблиц соответствуют размеру файловой системы - число записей равно числу блоков ФС)

Изначально все записи таблиц обнуляются.


2. Анализируется список свободных блоков. Для каждого номера свободного блока увеличивается на 1 соответствующая ему запись в таблице свободных.

3. Анализируются все индексные узлы. Для каждого блока, встретившегося в индексном узле, увеличивается его счетчик на 1 в таблице занятых блоков.

4. Анализ содержимого таблиц и коррекция ситуаций.









Варианты анализа таблиц











Действие:

1.Name1 ---> копируется Name12


2.Name2 ---> копируется Name22


3.Удаляются Name1, Name2


4.Запускается переопределение списка свободных блоков

5.Обратное переименование файлов и фиксация факта их возможной проблемности.





13. ОС Unix: файловая система

13.1 Организация ФС Unix


Файл Unix - это специальным образом именованный набор данных, размещенный в файловой системе.


Виды файлов:

обычный файл (regular file)(файл в традиционном понимании, пример: текстовый файл, бинарные данные, исполняемые программы и т.д.)

каталог (directory) (файл, содержащий имена находящихся в нем файлов, а так же указатели на дополнительную информацию - метаданные)

специальный файл устройств (special device file) (обеспечивает доступ к физическим устройствам)

именованный канал (named pipe)(файл, используемый для связи между процессами)

ссылка (link) (позволяет создавать дополнительные ссылки к содержимому файла из различных точек файловой системы)

сокет (socket) (предназначены для взаимодействия между процессами в сети )


13.2 Права доступа


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

пользователь - владелец файла;

группа - категория, к которой принадлежит пользователь - владелец файла, за исключением самого этого пользователя;

все пользователи системы - все остальные пользователи системы за исключением первых двух категорий пользователей.

Для каждой из перечисленных выше категорий определены права на выполнение следующих действий:

        • чтение;

        • запись;

        • исполнение.

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

Например, для файлов каталогов это:

- право на чтение каталога - получение списка имен файлов;

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

- право на запись - возможность создания, переименования и удаления файла в каталоге.


13.3 Логическая структура каталогов





Корневой каталог / я

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


/unix - файл загрузки ядр ОС.

/bin -

файлы, реализующие общедоступные команды системы.

/etc - в

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


/tmp

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


/mnt -

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


/dev -

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


/lib -

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


/usr -

размещается вся информация, связанная с обеспечением работы пользователей. Здесь также имеется подкаталог, содержащий часть библиотечных файлов (/usr/lib), подкаталог /usr/users (или /usr/home), который становится текущим при входе пользователя в систему, подкаталог, где находятся дополнительные команды (/usr/bin), подкаталог, содержащий файлы заголовков (/usr/include), в котором, в свою очередь подкаталог, содержащий include-файлы, характеризующие работу системы (например, signal.h - интерпретация сигналов).



13.4 Внутренняя организация ФС


13.4.1 Модель версии System V


13.4.1.1 Структура ФС



Суперблок файловой системы содержит оперативную информацию о текущем состоянии файловой системы, а также данные о параметрах настройки, в частности:

  • размер логического блока (512б, 1024б, 2048б);

  • размер файловой системы в логических блоках (включая суперблок);

  • максимальное количество индексных дескрипторов (определяет размер области индексных дескрипторов);

  • число свободных блоков;

  • число свободных индексных дескрипторов;

  • специальные флаги;

  • массив номеров свободных блоков;

  • массив номеров свободных индексных дескрипторов;

  • и др.

В ОП постоянно находится актуальная копия суперблока.


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


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


13.4.1.2 Работа с массивами номеров свободных блоков


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

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



13.4.1.3 Работа с массивом свободных ИД


Массив номеров свободных индексных дескрипторов содержит оперативный набор номеров свободных индексных дескрипторов. Размер массива - Nиндекс. При освобождении индексного дескриптора, если есть свободное место в массиве, то номер освободившегося индексного дескриптора записывается в соответствующий элемент массива. Если свободного места в массиве нет, то этот номер «забывается». При запросе нового индексного дескриптора осуществляется поиск в массиве, если массив не пустой, то все в порядке, если массив пустой - происходит операция обновления его содержимого (происходит просмотр области индексных дескрипторов и занесение в массив обнаруженных свободных). Т.е. массив свободных индексных дескрипторов - это своеобразный буфер.


13.4.1.4 Индексные дескрипторы



Индексный дескриптор (ИД) - описатель файла, содержит все необходимые для работы с файлом служебные атрибуты.

Через ИД осуществляется доступ к содержимому файлов. Любое имя файла в системе ассоциировано с ИД, но это соответствие неоднозначно. Т.е. ИД может соответствовать произвольное количество имен.


Структура индексного дескриптора:

  • тип файла, права, атрибуты выполнения (если = 0, то ИД свободен);

  • число имен, которые ассоциированы с данным ИД;

  • идентификаторы владельца-пользователя, владельца-группы;

  • размер файла в байтах;

  • время последнего доступа к файлу;

  • время последней модификации содержимого файла;

  • время последней модификации ИД (за исключением времени доступа и времени модификации файла)

  • массив номеров блоков файла.


13.4.1.5 Адресация блоков файла


Для простоты изложения будем считать, что размер блока равен 512 байт.

Размещение данных файла задается списком его блоков. Это снимает проблемы непрерывных файловых систем, т.е. систем, где блоки файла располагаются последовательно. Таким образом реально блоки файла могут быть разбросаны по диску, но логически они образуют цепочку, содержащую весь набор данных. Ключом, задающим подобное расположение служит массив номеров блоков файла, содержащий список из 13 номеров блоков на диске, хранящихся в ИД.

Первые десять указывают на десять блоков некоторого файла. Если файл занимает более 10 блоков, то 11 элемент указывает на косвенный блок, содержащий до 128 адресов дополнительных блоков файла (это еще 70656 байт). Большие файлы используют 12 элемент, который указывает на блок, содержащий 128 указателей на блоки, каждый из которых содержит по 128 адресов блоков файла. Еще в больших файлах аналогично используется 13 элемент. Трехкратная косвенная адресация позволяет создавать файлы длиной (10+128+128*128+128*128*128)*512 байт. Таким образом, если файл меньше 512 байт, то необходимо одно обращение к диску, если длина файла находится в пределах 512-70565 байт, то - два и так далее. Приведенный способ адресации позволяет иметь прямой и быстрый доступ к файлам. Эта возможность также усиливается кэшированием диска, позволяющим хранить в памяти наиболее используемые блоки . Важно отметить, что при открытии файла соответствующий ИД считывается в память и системе становятся доступны все номера блоков данного файла. Кроме того, для одного и того же файла, открываемого несколько раз, в памяти находится только один ИД. Система фиксирует число открытий данного файла и, когда этот счетчик обнуляется, резидентный образ ИД переписывается на диск. Если при этом изменений в файле не было и не модифицировался ИД, то запись не выполняется. Указанные особенности существенно влияют на эффективность файловой системы.


13.4.1.6 Файл каталог


Содержимое файла - таблица. 1-е поле - это номер индексного дескриптора (ИД), которому соответствует имя Name из второго поля. Размеры полей в общем случае могут быть различные. Например размер поля ИД - 2 байта (ограничение числа ИД в файловой системе 65535), размер поля Name - 14 байт (соответственно ограничение на длину имени). В Unix две первые строки любого каталога имеют фиксированное содержание: имя «•» - ссылка на самого себя, имя «••» - ссылка на родительский каталог.

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




13.4.1.7 Установление связей

Древовидность файловой системы Unix нарушается возможностью установления ссылок на одни и те же индексные дескрипторы из различных каталогов. Это может быть достигнуто за счет использования средств установления дополнительных связей.



Существует две разновидности этой операции.

Установление жесткой связи - образование дополнительного имени, ассоциированного с индексным дескриптором. Для этого используется команда:

ln …dir1/name1 …dir2/name2 - (дли индексного дескриптора, с которым ассоциировано имя name1 добавляется еще одно имя - name2). Все имена, ассоциированные таким образом с индексным дескриптором равноправны. При этом увеличивается значение поля индексного дескриптора число имен, которые ассоциированы с данным ИД. Нельзя устанавливать жесткую связь для файлов-каталогов.

Установление символической связи - косвенная адресация на существующее имя файла. Для этих целей используется команда:

ln -s …dir1/name1 …dir2/name3 - в результате образуется специальный файл - ссылка Система работает с ним особым образом (например, при просмотре осуществляется просмотр не файла-ссылки, а файла на который он ссылается).


13.4.1.8 Достоинства ФС модели версии System V

- Оптимизация в работе со списками номеров свободных индексных дескрипторов и блоков.

- Организация косвенной адресации блоков файлов


13.4.1.9 Недостатки ФС модели версии System V


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

- Проблема надежности

- Фрагментация файла по диску

- Ограничения на возможную длину имени файла


13.4.2 Модель версии FFS BSD


В Unix 4.2 BSD разработана модель организации файловой системы, которая получила название Fast File System - ffs (быстрая файловая система). Основной идеей данной модели файловой системы является кластеризация дискового пространства файловой системы, c целью минимизации времени чтения/записи файла, а также уменьшения объёма несипользуемого пространства внутри выделенных блоков.





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


Группа цилиндров:

- копия суперблока

- информация о свободных блоках (битовый массив) и о свободных индексных дескрипторах

- массив индексных дескрипторов (ИД)

- блоки файлов



13.4.2.1 Стратегии размещения

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

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

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


13.4.2.2 Внутренняя организация блоков

Обмен происходит блоками. Блоки могут быть достаточно большого размера (до 64 Кб). В системе может быть принято разбиение блока на равные фрагменты (на 2, 4, 8). То есть все пространство разделяется на «маленькие блоки» - фрагменты. Фрагменты группируются по 2, 4 или 8 в блоки (т.е. если фрагмент содержит 512 байт, то блок может быть размера 1024, 2048, 4096). Блоки выровнены по кратности.


Блоки

0

1

N

Фрагменты


1

2

3

4

5

6

7





Маска

1

0

0

0

0

1

1

1







При этом блоком в этой системе может называться только «выровненный» до размера кратности набор фрагментов. Т.е. при кратности 4 (см. рисунок выше), фрагменты 0 - 3 - входят в один блок, а фрагменты 1 - 4 нет.

Для хранения информации о свободных фрагментах используется битовая маска: каждому фрагменту на диске соответствует ровно 1 бит в этой маске (этот механизм упрощает алгоритм поиска свободных фрагментов и уменьшает «фрагментацию» свободного пространства).

Формат индексного дескриптора аналогичен, используемому в s5fs - в нём в качестве элементов по-прежнему используются блоки, а не фрагменты, но при размещении информации в файлах используется следующее простое правило: все блоки указанные в индексном дескрипторе, кроме последнего, должны использоваться только целиком; блок может использоваться для нескольких файлов только при хранении их последних байт, не занимающих всех фрагментов полного блока (cм. рисунок ниже). Т.о. для хранения информации об использовании последнего блока недостаточно только размера файла, хранимого в дескрипторе System 5, необходимо также хранить информацию, об используемых фрагментах в этом блоке.

Выделение пространства для файла происходит только в момент когда процесс выполняет системный вызов write (см. рисунок ниже). Операционная система при этом руководствуется следующим алгоритмом:

  1. Если в уже выделенном файлу блоке есть достаточно места, то новые данные помещаются в это свободное пространство.

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

  3. Файл содержит один или более фрагмент (они естественным образом содержатся в одном блоке) и последний фрагмент недостаточен для записи новых данных. Если размер новых данных в сумме с размером данных, хранимых в неполном блоке, превышает размер полного блока, то выделяется новый полный блок. Содержимое старого неполного блока копируется в начало выделенного блока и остаток заполняется новыми данными. Процесс далее повторяется, как указано в пункте 2 выше. В противном случае (если размер новых данных в сумме с размером данных, хранимых в неполном блоке, не превышает размер полного блока) ищется блок с необходимыми по размеру фрагментами или выделятся новый полный блок. Остаток данных записывается в этот блок.

13.4.2.3 Структура каталога FFS



Поддержка длинных имен файлов.

Любая запись содержит:

  • номер индексного дескриптора;

  • длина записи в каталоге;

  • тип файла;

  • длина имени файла;

  • имя файла (дополненное до кратности слова).


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



13.4.3 Файловая система Ext2 Linux




суперблок содержит:

количество индексных дескрипторов в файловой системе;

число блоков в файловой системе;

число блоков в группе;

число индексных дескрипторов в группе;


дескриптор группы (суперблок кластера) содержит:

адрес bitmap блоков;

адрес bitmap индексных дескрипторов;

адрес области индексных дескрипторов;

количество индексных дескрипторов для каталогов в группе;


индексный дескриптор








13.4.4 NFS - сетевая файловая система


Схема работы:

Клиент : Системный вызов VFS клиент NFS Сервер клиент NFS VFS конкретная локальная файловая система (возврат результата)

Используется опережающее чтение





Возможность блокирования области файла любого размера.

Системный вызов fcntl ( )

Исключающая блокировка (exclusive lock) - «жесткая» блокировка (область может быть заблокирована единственный раз). Блокировка с монополизацией.

Распределенная блокировка (shared lock) - «мягкая» блокировка (возможны пересечения заблокированных областей). Рекомендательная блокировка.













14. Управление внешними устройствами.


14.1 Архитектура.

  1. Непосредственное управление внешними устройствами центральным процессором.

  1. Синхронное управление внешними устройствами с использованием контроллеров внешних устройств.

  2. Асинхронное управление внешними устройствами с использованием контроллеров внешних устройств.

  1. Использование контроллера прямого доступа к памяти (DMA) при обмене.

  2. Управление внешними устройствами с использованием процессора или канала ввода/вывода.


14.2 Программное управление внешними устройствами




Цели:

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

обеспечение конкретной модели синхронизации при выполнении обмена (синхронный, асинхронный обмен);

обработка возникающих ошибок (индикация ошибки, локализация ошибки, попытка исправления ситуации);

буферизация обмена;

обеспечение стратегии доступа к устройству (распределенный доступ, монопольный доступ);

планирование выполнения операций обмена


14.3 Буферизация обмена

T - время обмена;

С - время выполнения программы между обменами

t - общее время выполнения программы

Схемы буферизации ввода-вывода

а) Без буферизации


б) Одинарная буферизация


в) Двойная буферизация


г) Циклическая буферизация


Какую схему выбрать зависит от интенсивности буферизации и особенности действий


14.4 Планирование дисковых обменов


Рассмотрим модельную ситуацию:

головка HDD позиционирована на дорожке 15

Очередь запросов к дорожкам: 4, 40, 11, 35, 7, 14


Варианты решения

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

2.


3.

Shortest Service Time First - «жадный» алгоритм - на каждом шаге поиск обмена с минимальным перемещением










4.


эффективно когда один потребитель читает примерно в одном месте











5. PRI - алгоритм, основанный на приоритетах процессов.

Проблема - голодание (для всех кроме FIFO), запрос может «зависать» из-за прихода наиболее приоритетных.

6.

Алгоритм «лифта» - сначала «движение» в одну сторону до «упора», затем в другую, также до «упора». Для набора запросов перемещений 2-х число дорожек





7.

Циклическое сканирование

Сканирование в одном направлении. Ищем минимальный номер дорожки, затем «движемся наверх»





8. N-step-SCAN

Разделение очереди на подочереди длины N запросов каждая (из соображений FIFO). Последовательная обработка очередей. Обрабатываемая очередь не обновляется. Обновление очередей, отличных от обрабатываемой.


Борьба с «залипанием» головки (интенсивный обмен с одной и той же дорожкой)


Распространенный пример: 2 очереди, одна обрабатывается, другая собирает вновь поступающие запросы.


14.5 RAID системы.

RAID - Redundant Array of Independent (Inexpensive) Disks - избыточный массив независимых (недорогих) дисков.


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

Достигается повышение скорости и надежности.



Семь уровней RAID систем.


RAID 0 (без избыточности)



RAID 1 (зеркалирование)



RAID 2 избыточность с кодами Хэмминга (Hamming, исправляет одинарные и выявляет двойные ошибки)




RAID 3 (четность с чередующимися битами)


Пример: 4 диска данных, один - четности:

Потеря данных на первом диске

X4(i)=X3(i)XOR X2(i)XOR X1(i)XOR X0(i)

X1(i)=X4(i)XOR X3(i)XOR X2(i)XOR X0(i)


RAID 4


Пример: 4 диска данных, один - четности:


Изначально для любого бита:


X4(i)=X3(i)XOR X2(i)XOR X1(i)XOR X0(i)


После обновления полосы на диске X1:

X4new(i)=X4(i)XOR X1(i)XOR X1new(i)


RAID 5 (распределенная четность - циклическое распределение «четности»)



RAID 6 (двойная избыточность - циклическое распределение четности с использованием двух схем контроля: N+2 дисков)



Уровни RAID (сравнение)


Категория

Уровень

Описание

Скорость обработки запросов

Скорость передачи данных

Типичное применение

Расщепление

0

Без избыточности


Большие полосы: отлично

Малые полосы: отлично

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

Зеркалирование

1

Зеркалирование

Хорошо/ удовлетворительно

удовлетворительно/ удовлетворительно

Системные диски, важные файлы

Параллельный доступ

2

Избыточность с кодами Хэмминга

Плохо

Отлично



3

Четность с чередующимися битами

Плохо

Отлично

Приложения с большими запросами ввода/вывода (графич. редакторы, САПР)



Независимый доступ

4

Четность с чередующимися блоками

Отлично/ удовлетворительно

Удовлетворительно/ плохо



5

Распределенная четность с чередующимися блоками

Отлично/ удовлетворительно

Удовлетворительно/ плохо

Высокая скорость запросов, интенсивное чтение, поиск данных


6

Двойная распределенная четность с чередующимися блоками

Отлично/плохо

Удовлетворительно/ плохо

Приложения, требующие исключительно высокой надежности

























































15. OC Unix: Работа с внешними устройствами


15.1 Файлы устройств, драйверы

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

В системе существуют два типа специальных файлов устройств:

  • файлы байториентированных устройств (драйверы обеспечивают возможность побайтного обмена данными и, обычно, не используют централизованной внутрисистемной кэш-буферизации );

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

Следует отметить, файловая система может быть создана только на блокориентированных устройствах.

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

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

  • тип файла устройства - байториентированный или блокориентированный;

  • «старший номер» (major number) устройства - номер драйвера в соответствующей таблице драйверов устройств;

  • «младший номер» (minor number) устройства - служебная информация, передающаяся драйверу устройства.


Система поддерживает две таблицы драйверов устройств.

bdevsw - таблица драйверов блокориентированных устройств.

cdevsw - таблица байториентированных устройств.

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

В качестве примера, рассмотрим типовой набор точек входа в драйвер ( - префикс точки входа, характеризующий конкретный драйвер):

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

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

  • read() чтение данных;

  • write() запись данных;

  • ioctl() управление устройством, задание режимов работы драйвера, определение набора внутренних операций/команд драйвера;

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

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


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

В системе возможно обращение к функциям драйвера в следующих ситуациях:

    1. старт системы, определение ядром состава доступных устройств.

    2. обработка запроса ввода/вывода (запрос может быть инициирован, любыми процессами, в том числе и ядром);

    3. обработка прерывания, связанного с данным устройством, в этом случае ядро вызывает специальную функцию драйвера;

    4. выполнение специальных команд управления (например, остановка устройства, приведение устройства в некоторое начальное состояние и т.п.).



15.2 Включение/удаление драйверов в систему

Существует два, традиционных способа включения драйверов новых устройств в систему:

    • путем «жесткого», статического встраивания драйвера в код ядра, требующего перекомпиляцию исходных текстов ядра или пересборку объектных модулей ядра.

    • за счет динамического включения драйвера в систему.


Динамическое включение драйверов в систему предполагает выполнение следующей последовательности действий:

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

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

Для обеспечения динамического включения/выключения драйверов предоставляется набор системных вызовов, обеспечивающий установку и удаление драйверов в систему.


15.3 Организация обмена данными с файлами

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

Рассмотрим ряд информационных структур и таблиц, используемых системой для организации интерфейса работы с файлами. Операционная система подразделяет данные структура на две категории:


  • ассоциированные с процессом;

  • ассоциированные с ядром операционной системой.


15.3.1 Таблица индексных дескрипторов открытых файлов.


Для каждого открытого в рамках системы файла формируется запись в таблице ТИДОФ, содержащая:


  • копия индексного дескриптора (ИД) открытого файла;

  • кратность - счетчик открытых в системе файлов, связанных с данным ИД.


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


15.3.2 Таблица файлов.

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


15.3.3 Таблица открытых файлов.

С каждым процессом связана таблица открытых файлов (ТОФ). Номер записи в данной таблице есть номер ФД, который может использоваться в процессе. Каждая строка этой таблицы имеет ссылку на соответствующую строку ТФ. Первые три строки этой таблицы используются для файловых дескрипторов стандартных устройств/файлов ввода вывода.


15.3.4 Пример

Для иллюстрации работы с данными таблицами рассмотрим следующий пример.



Пусть в системе сформирован процесс №1, в нем открыт файл с именем name (для простоты будем считать, то это единственное открытие файла с данным именем в данный момент времени), в таблице ТОФ№1 этого процесса будет образована соответствующая запись, которая будет ссылаться на запись в ТФ, которая, в свою очередь, ссылается на таблицу ТИДОФ. Счетчик наследственности ТФ и счетчик кратности ТИДОФ будут равны единице.

Далее, формируется процесс №2, который в свою очередь открывает файл с именем name, в результате чего в ТФ будет образована новая запись, которая будет ссылаться на запись ТИДОФ, соответствующую индексному дескриптору файла name, счетчик кратности этой записи увеличится на единицу.

Процесс №1 выполняет системный вызов fork() в результате чего образуется процесс №3 с открытым (унаследованным) файлом name. В таблице ТОФ№3 будет размещена копия таблицы ТОФ№2, счетчик наследственности соответствующей записи ТФ и счетчик кратности в записи ТИДОФ увеличатся на единицу.


15.4 Буферизация при блокориентированном обмене


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

Рассмотрим, как выполняется последовательность действий при исполнении заказа на чтение блока. Будем считать, что поступил заказ на чтение N-ого блока из устройства с номером M.

  1. Среди буферов буферного пула осуществляется поиск заданного блока, т.е. если обнаружен буфер, содержащий N-ый блок М-ого устройства, то фиксируем номер этого буфера. В этом случае, обращение к реальному физическому устройству не происходит, а операция чтения информации является представлением информации из найденного буфера. Переходим на шаг 4.

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

  3. Осуществляется чтение N-ого блока устройства М в найденный буфер.

  4. Происходит обнуление счетчика времени в данном буфере и увеличение на единицу счетчиков в других буферах.

  5. Передаем в качестве результата чтения содержимое данного буфера.


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

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




15.5 Борьба со сбоями


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









16. CПИСОК ВОПРОСОВ ПО КУРСУ “ОПЕРАЦИОННЫЕ СИСТЕМЫ” 2002/2003 г. г.


  1. Этапы развития вычислительной техники и программного обеспечения.

  2. Структура вычислительной системы. Ресурсы ВС- физические ресурсы, виртуальные ресурсы. Уровень операционной системы.

  3. Структура вычислительной системы. Ресурсы ВС- физические, виртуальные. Уровень систем программирования.

  4. Структура вычислительной системы. Ресурсы ВС- физические ресурсы, виртуальные ресурсы. Уровень прикладных системы.

  5. Структура вычислительной системы. Понятие виртуальной машины.

  6. Основы архитектуры компьютера. Основные компоненты и характеристики. Структура и функционирование ЦП.

  7. Основы архитектуры компьютера . Основные компоненты и характеристики. Оперативное запоминающее устройство. Расслоение памяти.

  8. Основы архитектуры компьютера. Основные компоненты и характеристики.

Кэширование ОЗУ.

  1. Основы архитектуры компьютера. Аппарат прерываний. Последовательность действий в вычислительной системе при обработке прерываний.

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

  3. Основы архитектуры компьютера. Иерархия памяти.

  4. Аппаратная поддержка ОС. Мультипрограммный режим.

  5. Аппаратная поддержка ОС и систем программирования.. Организация регистровой памяти ЦП (регистровые окна, стек).

  6. Аппаратная поддержка ОС. Виртуальная оперативная память.

  7. Аппаратная поддержка ОС. Пример организации страничной виртуальной памяти.

  8. Многомашинные, многопроцессорные ассоциации. Классификация. Примеры.

  9. Многомашинные, многопроцессорные ассоциации. Терминальные комплексы. Компьютерные сети.

  10. Операционные системы. Основные компоненты и логические функции. Базовые понятия: ядро, процесс, ресурс, системные вызовы. Структурная организация ОС.

  11. Операционные системы. Пакетная ОС, ОС разделения времени, ОС реального времени, распределенные и сетевые ОС.

  12. Организация сетевого взаимодействия. Эталонная модель ISO/OSI. Протокол, интерфейс. Стек протоколов. Логическое взаимодействие сетевых устройств.

  13. Организация сетевого взаимодействия. Семейство протоколов TCP/IP, соответствие модели ISO/OSI. Взаимодействие между уровнями протоколов семейства TCP/IP. IP адресация.

  14. Управление процессами. Определение процесса, типы. Жизненный цикл, состояния процесса. Свопинг. Модели жизненного цикла процесса. Контекст процесса.

  15. Реализация процессов в ОС UNIX. Определение процесса. Контекст, тело процесса. Состояния процесса. Аппарат системных вызовов в ОС UNIX.

  16. Реализация процессов в ОС UNIX. Базовые средства управления процессами в ОС UNIX. Загрузка ОС UNIX, формирование нулевого и первого процессов.

  17. Планирование в ОС. Основные разновидности задач планирования. Стратегии планирования времени ЦП. Алгоритмы, основанные на квантовании.

  18. Планирование в ОС. Стратегии планирования времени ЦП. Алгоритмы, основанные на приоритетах.

  19. Планирование в ОС. Стратегии планирования времени ЦП. Смешанные алгоритмы планирования.

  20. Планирование. Организация планирования времени ЦП в ОС UNIX и ОС WINDOWS NT. Планирование свопинга в ОС UNIX.

  21. Планирование. Планирования в системах реального времени.

  22. Планирование. Стратегии обработки прерываний. Организация планирования обработки прерываний в ОС WINDOWS NT.

  23. Взаимодействие процессов. Разделяемые ресурсы. Критические секции. Взаимное исключение. Тупики.

  24. Взаимодействие процессов. Некоторые способы реализации взаимного исключения: семафоры Дейкстры, мониторы, обмен сообщениями.

  25. Взаимодействие процессов. Классические задачи синхронизации процессов. “Обедающие философы”.

  26. Взаимодействие процессов. Классические задачи синхронизации процессов.

Читатели и писатели”.

  1. Взаимодействие процессов. Классические задачи синхронизации процессов.

Спящий парикмахер”.

  1. Базовые средства взаимодействия процессов в ОС UNIX. Сигналы. Примеры программирования.

  2. Базовые средства взаимодействия процессов в ОС UNIX. Неименованные каналы. Примеры программирования .

  3. Базовые средства взаимодействия процессов в ОС UNIX. Именованные каналы. Примеры программирования.

  4. Базовые средства взаимодействия процессов в ОС UNIX. Взаимодействие процессов по схеме ”подчиненный-главный”. Общая схема трассировки процессов.

  5. Система межпроцессного взаимодействия ОС UNIX. Именование разделяемых объектов. Очереди сообщений. Примеры.

  6. Система межпроцессного взаимодействия ОС UNIX . Именование разделяемых объектов. Разделяемая память. Примеры.

  7. Система межпроцессного взаимодействия ОС UNIX . Именование разделяемых объектов. Массив семафоров. Примеры.

  8. Сокеты. Типы сокетов. Коммуникационный домен. Схема работы с сокетами с установлением соединения. Пример.

  9. Сокеты. Схема работы с сокетами без установления соединения. Пример.

  10. Общая классификация средств взаимодействия процессов в ОС UNIX.

  11. Файловые системы. Cтруктурная организация файлов. Атрибуты файлов. Основные правила работы с файлами. Типовые программные интерфейсы работы с файлами.

  12. Файловые системы. Модели реализации файловых систем. Понятие индексного дескриптора.

  13. Файловые системы. Координация использования пространства внешней памяти. Квотирование пространства ФС. Надежность ФС. Проверка целостности ФС.

  14. Примеры реализаций файловых систем. Организация файловой системы OC UNIX. Виды файлов. Права доступа. Логическая структура каталогов.

  15. Примеры реализаций файловых систем Внутренняя организация ФС. Модель версии UNIX SYSTEM V.

  16. Примеры реализаций файловых систем. Внутренняя организация ФС. Принципы организации файловых систем FFS UNIX BSD и Ext2 Linux.

  17. Примеры реализаций файловых систем. Структурная организация и концепции файловой системы NFS.

  18. Управление внешними устройствами. Архитектура организации управления внешними устройствами, основные подходы, характеристики.

  19. Управление внешними устройствами. Буферизация обмена. Планирование дисковых обменов, основные алгоритмы.

  20. Управление внешними устройствами. Организация RAID систем, основные решения, характеристики.

  21. Внешние устройства в ОС UNIX. Типы устройств, файлы устройств, драйверы.

  22. Внешние устройства в ОС UNIX. Системная организация обмена с файлами. Буферизация обменов с блокоориентированными устройствами.

  23. Язык программирования С. Общая характеристика. Типы, данные, классы памяти. Правила видимости. Структура программы. Препроцессор. Интерфейс с ОС UNIX.





38


скачать файл | источник
просмотреть