Билеты (Graur) (1114774), страница 32
Текст из файла (страница 32)
вся работа равномерно распределяется.RAID 6 (двойная избыточность – циклическое распределение четности сиспользованием двух схем контроля: N+2 дисков)RAID 6 – это двойная избыточность. Делается еще одно дополнительноеустройство для хранения избыточной информации.Какие-то из RAID массивов можно реализовать чисто программно. Какие-то из нихможно реализовать только аппаратно. Какие-то из них можно реализовать взависимости от решения. Это все относится к проблеме управления внешнимиустройствами: качеством и свойством работы внешних устройств в системе.Уровни RAID (сравнение)Категория Ур ОписаниеовеньРасщепле 0БезниеизбыточностиСкоростьобработкизапросовСкоростьпередачиданныхТипичноеприменениеБольшиеполосы:отличноМалыеполосы:отличноЗеркалиро 1ваниеЗеркалированиеХорошо/удовлетворительноПараллель 2ныйдоступИзбыточн Плохоость скодамиХэммингаЧетность с Плохочередующимисябитамиудовлетворительно/удовлетворительноОтличноПриложения снекритическими данными,требующиевысокойпроизводительностиСистемныедиски, важныефайлы3Независимыйдоступ45Четность счередующимисяблокамиРаспределеннаячетность счередующимисяблокамиОтличноПриложения сбольшимизапросамиввода/вывода(графич.редакторы,САПР)Отлично/удовлетворительноУдовлетворительно/плохоОтлично/удовлетворительноУдовлетвори Высокаятельно/скоростьплохозапросов,интенсивноечтение, поискданных6Двойнаяраспределеннаячетность счередующимисяблокамиОтлично/пл Удовлетвори Приложения,охотельно/требующиеплохоисключительно высокойнадежностиБилет 48 OC Unix: Работа с внешними устройствамиФайлы устройств, драйверыОсобенность UNIX- все устройства обслуживаются в системе виде файлов.С точки зрения внутренней организации системы, как и в подавляющембольшинстве других операционных систем, работа с внешними устройствамиосуществляется посредством использования иерархии драйверов, которыепозволяют организовывать взаимодействие ядра ОС с конкретными устройствами.В системе Unix существует единый интерфейс организации взаимодействия свнешними устройствами, для этих целей используются специальные файлыустройств, размещенные в каталоге /dev.
Файл устройства позволяетассоциировать некоторое имя (имя файла устройства) с драйвером того или иногоустройства. Следует отметить, что здесь мы несколько замещаем понятиеустройства понятием драйвер устройства, так как несмотря на то, что мыиспользуем термин специальные файлы устройств, на практике, мы используемассоциированный с данным специальным файлом драйвер устройства, и такихдрайверов у одного устройства может быть произвольное число.
Возможно, болееудачным было бы использовать специальный файл-драйвер устройства.В системе существуют два типа специальных файлов устройств:файлы байт-ориентированных устройств (драйверы обеспечиваютвозможность побайтного обмена данными и, обычно, не используютцентрализованной внутрисистемной кэш-буферизации );файлы блок-ориентированных устройств (обмен с данными устройствамиосуществляется фиксированными блоками данных, обмен осуществляется сиспользованием специального внутрисистемного буферного кэша).Следует отметить, файловая система может быть создана только на блокориентированных устройствах.В общем случае тип файла определяется свойствами конкретного устройства иорганизацией драйвера.
Конкретное физическое устройство может иметь, как байториентированные драйверы драйверы, так и блок-ориентированные. Например,если рассмотреть физическое устройство Оперативная память, для него можнореализовать, как байт-ориентированный интерфейс обмена (и соответствующийбайт-ориентированный драйвер), так и блок-ориентированный.Содержимое файлов устройств размещается исключительно в соответствующеминдексном дескрипторе, структура которого для файлов данного типа, отличаетсяот структуры индексных дескрипторов других типов файлов.Итак индексный дескриптор файла устройства содержит:тип файла устройства – байт-ориентированный или блок-ориентированный;«старший номер» (major number) устройства номер драйвера всоответствующей таблице драйверов устройств;«младший номер» (minor number) устройства – служебная информация,передающаяся драйверу устройства.Система поддерживает две таблицы драйверов устройств.bdevsw – таблица драйверов блок-ориентированных устройств.cdevsw - таблица байт-ориентированных устройств.
Выбор конкретной таблицыопределяется типом файла устройства. Соответственно, поле старший номеропределяет строку таблицы с которой ассоциирован драйвер устройства. Драйверуустройства может быть передана дополнительная информация через поле младшийномер это может быть, например, номер конкретного однотипного устройства илинекоторая информация, определяющая дополнительные функции драйвераКаждая запись этих таблиц содержит так называемый коммутатор устройства –структуру, в которой размещены указатели на соответствующие точки входа(функции) драйвера. Таким образом, в системе определяется базовый уровеньвзаимодействия с драйвером устройства (конкретный состав точек входаопределяется конкретной версией системы).
В случае, если конкретный драйверустройства не поддерживает работу с той или иной точкой входа, на ее местоустанавливается специальная ссылка-заглушка на точку ядра.В качестве примера, рассмотрим типовой набор точек входа в драйвер (b - префиксточки входа, характеризующий конкретный драйвер):bopen() открытие устройства, обеспечивается инициализация устройства ивнутренних структур данных драйвера;bclose() закрытие драйвера устройства, например в том случае, если ни одиниз процессов не работает с драйвером;bread() чтение данных;bwrite() запись данных;bioctl() управление устройством, задание режимов работы драйвера,определение набора внутренних операций/команд драйвера;bintr() – обработка прерывания, вызывается ядром при возникновениипрерывания в устройстве с которым ассоциирован драйвер;bstrategy() управление стратегией организации блок-ориентированногообмена (некоторые функции оптимизации организации обмена, обработкаспециальных ситуаций, связанных с функционированием конкретного устройства ит.п.).Так в некоторых реализациях системы возможно отсутствие точек входа чтения изаписи для блок-ориентированных устройств.
В этом случае блокориентированный обмен реализуются путем передачи управления на точуbstrategy().В системе возможно обращение к функциям драйвера в следующих ситуациях:1. старт системы, определение ядром состава доступных устройств.2.обработка запроса ввода/вывода (запрос может быть инициирован, любымипроцессами, в том числе и ядром);3.обработка прерывания, связанного с данным устройством, в этом случае ядровызывает специальную функцию драйвера;4.выполнение специальных команд управления (например, остановкаустройства, приведение устройства в некоторое начальное состояние и т.п.).Существует два, традиционных способа включения драйверов новых устройств всистему:путем «жесткого», статического встраивания драйвера в код ядра,требующего перекомпиляцию исходных текстов ядра или пересборку объектныхмодулей ядра.за счет динамического включения драйвера в систему.Динамическое включение драйверов в систему предполагает выполнениеследующей последовательности действий:загрузка и динамическое связывание драйвера с кодом ядра (выполняетсяспециальным загрузчиком);инициализация драйвера и соответствующего ему устройства (созданиеспециальных структур данных драйвера,формирование данных коммутатора устройства, связывание обработчикапрерываний ядра с данным драйвером).Дляобеспечениядинамическоговключения/выключениядрайверовпредоставляется набор системных вызовов, обеспечивающий установку и удалениедрайверов в систему.Билет 49.
Внешние устройства в ОС UNIX. Системнаяорганизация обмена с файлами. Буферизация обменов сблокоориентированными устройствами.На практике, наиболее часто мы имеем дело с обменами, связанными с доступом ксодержимому обыкновенных файлов. Рассмотрим обобщенную схему организацииобмена данными с файлами, т.е. внутреннюю организацию программ и данных,обеспечивающих доступ к содержимому файловой системы (файловая системаможет быть создана исключительно на блок-ориентированных устройствах).Рассмотрим ряд информационных структур и таблиц, используемых системой дляорганизации интерфейса работы с файлами.Для организации интерфейса работы с файлами ОС используетинформационные структуры и таблицы двух типов:ассоциированные с процессом;ассоциированные с ядром операционной системой.Таблица индексных дескрипторов открытых файлов.Для каждого открытого в рамках системы файла формируется запись в таблицеТИДОФ, содержащая:копия индексного дескриптора (ИД) открытого файла;кратность - счетчик открытых в системе файлов, связанных с данным ИД.Вся работа с содержимым открытых файлов происходит посредствомиспользования копии ИД, размещенной в таблице ТИДОФ.
Данная таблицаразмещается в памяти ядра ОС. Если один и тот же файл открыт неоднократно, тозапись в ТИДОФ создается одна, но каждое дополнительное открытие этого файлаувеличивает счетчик на единицуТаблица файлов.Таблица файлов содержит сведения о всех файловых дескрипторах открытых всистеме файлов. Каждая запись ТФ соответствует открытому в системе файлу илиточнее используемому файловому дескриптору (ФД). Каждая запись ТФ содержитуказатели чтения/записи из/в файл. Рассмотрим правила установлениясоответствия между открытыми в процессах файлами и записями ТФ.
При каждомновом обращении к функции открытия файла в таблице процессов образуетсяновая запись, таким образом если неоднократно в одном или нескольких процессахоткрывается один и тот же файл, то в каждом случае будет определяться свойнезависимый от других файловый дескриптор, в том числе со своим указателемчтения/записи.
Если файловый дескриптор в процессе образуется за счетнаследования, то в этом случае новые записи в ТФ не образуются, а происходитувеличение счетчика «наследственности» в записи, соответствующей файлу,открытому в прародителе. Таблица размещается в памяти ОС.Таблица открытых файлов.С каждым процессом связана таблица открытых файлов (ТОФ). Номер записи вданной таблице есть номер ФД, который может использоваться в процессе. Каждаястрока этой таблицы имеет ссылку на соответствующую строку ТФ.
Первые тристроки этой таблицы используются для файловых дескрипторов стандартныхустройств/файлов ввода вывода.Для иллюстрации работы с данными таблицами рассмотрим следующий пример.Пусть в системе сформирован процесс №1, в нем открыт файл с именем name (дляпростоты будем считать, то это единственное открытие файла с данным именем вданный момент времени), в таблице ТОФ№1 этого процесса будет образованасоответствующая запись, которая будет ссылаться на запись в ТФ, которая, в своюочередь, ссылается на таблицу ТИДОФ. Счетчик наследственности ТФ и счетчиккратности ТИДОФ будут равны единице.Далее, формируется процесс №2, который в свою очередь открывает файл сименем name, в результате чего в ТФ будет образована новая запись, которая будетссылаться на запись ТИДОФ, соответствующую индексному дескриптору файлаname, счетчик кратности этой записи увеличится на единицу.Процесс №1 выполняет системный вызов fork() в результате чего образуетсяпроцесс №3 с открытым (унаследованным) файлом name.
В таблице ТОФ№3 будетразмещена копия таблицы ТОФ№2, счетчик наследственности соответствующейзаписи ТФ и счетчик кратности в записи ТИДОФ увеличатся на единицу.Буферизация при блок-ориентированном обменеОсобенностью работы с блок-ориентированными устройствами являетсявозможность организации буферизации при обмене. Суть заключается вследующем. В RAM организуется пул буферов, где каждый буфер имеет размер водин блок. Каждый из этих блоков может быть ассоциирован с драйвером одногоиз физических блок-ориентированных устройств.«+» оптимизация и минимизация обмена с реальными устройствами.«-» Существенная критичность к несанкционированному выключению машины«-»проблемы разорванности во времени операции записи (поработал, ушел, аданные еще не записались.