Файловые системы (1114721), страница 5
Текст из файла (страница 5)
Будем считать что поступил заказ на чтение N-го бока сустройства с номером M.1. Среди буферов буферного пула осуществляется поиск заданного блока. Вслучае если обнаружен буфер, содержащий N-й блок устройства M, тофиксируем его номер. Следует отметить, что в этом случае реальное чтениеинформации с физического устройства не происходит, а операцией чтенияявляется предоставление информации из найденного буфера.
Переход напункт 4.2. Если поиск заданного буфера неудачен, то осуществляется выбор буфера длячтения и размещения содержимого заданного блока. Если есть свободныйбуфер (реально это редкая ситуация которая может возникнуть в начальныемоменты работы системы) то фиксируется его номер. Переходим к пункту 3.В противном случае, выбираем буфер к которому не было обращений самоепродолжительное время. В случае, если в данном буфере установлен признакзаписи (т.е. буфер использовался ранее для буферизации записи) происходитреальная запись размещенного в буфере блока на физическое устройство, азатем фиксируем его номер и переходим к пункту 3.3.
Осуществляется чтение содержимого N-го блока устройства M, в буфер сзафиксированным ранее номером.214. Происходит обнуление в данном буфере счетчика времени. Увеличиваем наединицу счетчики времени во всех оставшихся буферах пула. Передаем вкачестве результата чтения содержимое зафиксированного буфера.Завершение операции.Запись блока. Запись блока осуществляется аналогичным образом. Добавляетсяустановка признака записи.Таки образом организована буферизация при выполнении обменов сблок-ориентированными устройствами.
В реальности подобное решениесущественно оптимизирует работу ОС. Однако у подобного подхода имеютместо быть свои недостатки. Система становится критична кнесанкционированным выключениям, т.е. ситуациям когда содержимоебуферов, имеющих установленные признаки записи еще не записаны насоответствующие устройства, а система прекратила функционирование.Подобные ситуации могут возникать при сбоях в электропитании, отказахаппаратуры или при проявлении программных ошибок в ОС и т.п.
Другимнедостатком использования буферизации является, по сути проявление еедостоинства, т.е. факта разнесения во времени заказа на обмен и реальногообмена. К примеру, это может привести к тому что был заказ на обмен сосбоящим физическим блоком устройства для обращающегося процесса будетдиагностирован как успешный (т.к. за счет буферизации реального обменаможет не быть), а на самом деле, когда очередь дойдет до реального обмена,обмен не произойдет. Но тем не менее эти недостатки заведомокомпенсируются преимуществами минимизации числа реальных обменов.1.6.7. Стандартная библиотека ввода/вывода.В дополнение к системным вызовам обмена, внешне, аналогичныесредства предоставляет системная библиотека обмена.
К данной библиотекеотносятся традиционные средства ввода/вывода информации, требующиеиспользования стандартного файла заголовков STDIO.H (функции fread(…),fprint(…), fopen(…)).Рассмотрим, кратко, суть организации даннойбиблиотеки и специфику использования функций ввода/вывода.1.7.Монтируемость файловой системы.Корневой каталог ФС всегда расположен на системном устройстве,однако это не означает, что и все остальные файлы расположены только на нем.Для связи иерархий файлов, расположенных на разных носителях, применяетсямонтирование ФС, выполняемое системным вызовомmount( char *special, *name, rwflag)special - указатель на имя специального файла;name - имя файла, который становится корнем монтируемой ФС;rwflag - флаг доступа (0 - разрешена защита, 1 - разрешена запись).Данный вызов позволяет объявить системе, что ФС на сменномносителе special доступна при обращении к каталогу name , которыйстановится корнем ФС монтированного носителя.
Т.е. в корневой ФСвыбирается некоторый существующий файл , который после выполнения22mount становится корневым каталогом ФС, расположенным на сменномносителе. Через этот каталог такая монтированная ФС подсоединяется какподдерево к общему дереву. При этом логически нет разницы между основной,расположенной на системном устройстве, и монтированной файловымисистемами.Однако, между основной и монтированной файловыми системнымисуществует одно отличие, а именно нельзя устанавливать связи междукаталогам в одной и файлом в другой ФС. Это связано, главным образом, с тем,что при демонтировании ФС, трудно было бы отслеживать установленныесвязи. Т.е.
возможность нарушения иерархичности в отдельно взятой ФС нераспространяется на примонтированную часть. Соответствующий системныйвызов для разрыва связи имеет видunmount(char *special),гдеspecial - указатель на имя специального файла, содержащегомонтированную ФС.2. Файловая система Windows NT.2.1. Особенности ОС Windows NT, влияющие на организацию ввода-выводаРассмотрим кратко сособенности архитектуры ОС Windows NT,непосредственно связанные с организацией файловой системы и ввода-вывода.Структура Windows NT базируется на комбинации трех моделей: клиентсервер, объектная модель и модели симметричной мультипроцессорнойобработки.
Последняя модель в основном имеет отношение к организации ядраи процессов Windows NT, поэтому здесь мы не будем ее рассматривать, акратко опишем первые две модели.Существует множество способов структурной организации ОС. Срединих можно выделить три основных - это монолитный, послойный и клиентсервер. Монолитной структурой обладают как правило простые и небольшие поразмеру ОС, например MS-DOS.
Т.е. ОС организована как набор процедур,причем каждую из них может вызвать пользовательская программа. Длябольшинства монолитных ОС, за искличением наиболее простых существуетразделение выполняемого кода на код непосредственно ОС, исполняемого впривилигированном режиме (далее режим ядра), и код пользовательскихпрограмм, исполняемым в пользовательском режиме. Данный режимотличается ограниченным доступом к системным ресурсам, данным иограниченным набором интерфейсов, т.е. непосредственно действий, которыеможет выполнить программа.23Пример структуры монолитной ОСП рикла дна япрогра ммаП рикла дна япрогра ммаП ользовательский режимРежим ядраСистемные сервисыПроцедуры ОСАП П АРАТУРАКогда программа пользовательского режима обращается к функцияммонолитной ОС (далее будем говорить, что в этом случае происходит вызовсистемного сервиса), то процессор перехватывает данный вызов и переводитвызывающий процесс в режим ядра, до завершения выполнения системноговызова.
После его оканчания продолжается выполнение пользовательскойпрограммы в обычном режиме. Пример данной модели функционирования вызов функии MS-DOS через прерывание 21h.Другой, более современный подход к структурированию ОС,подразумевает разбиение кода ОС на модули, наслоенные один поверх другого.При этом каждый модуль предоставляет набор функций (интерфейсов), и этифункции доступны только соседним по иерархии модулям.Пример структуры послойной ОСП рикла дна япрогра ммаП рикла дна япрогра ммаП ользовательский режимРежим ядраСистемные сервисыФ а йлова я системаП ла ннирова ниепроцессовУпра вление па мятью, вводом-выводомАП П АРАТУРА24Основным преимуществом послойной ОС является то, что код каждого слоядоступен только соседним слоям и только через определенные интерфейсы, чтоповышает надежность ОС и позволяет например заменить один из уровней ОС,что невозможно сделать в монолитных ОС.Третий, наиболее прогрессивный подход к структурированию ОС - этомодель клиент-сервер.
Основная идея этой модели состоит в том, чтобыразделить ОС на несколько процессов, каждый из которых реализуетопределеннный набор сервисов, как то распределение памяти, контроль доступаи т.п. Каждый сервер выполняется в пользовательском режиме и проверяет необратился ли к нему за обслуживанием какой-либо клиент. Клиентом можетбыть другой серверный процесс или пользовательский процесс, посылающийсерверу сообщение с запросом на обслуживание, передача сообщений и всемежпроцессное взаимодействие организуется через ядро (микроядро), кодкоторого исполняется в привилигированном режиме.
При таком подходе ОСобладает свойствами большей надежности, расширяемости, гибкости,возможностью замены компонентов ОС «на ходу» и, что наиболее важно,возможностью использования на распределенных вычислительных системах.Ниже на рисунке приведен пример идеальной клиент-серверной ОС, на самомже деле многие серверные процессы приходится исполнять в режиме ядра,например планирование процессов, работу с виртуальной памятью,использование драйверов устройств и т.д.
Наиболее соответствующейтребованием клиент-серверной ОС на данный момент является ОС Mach,архитектура которой, по утверждению разработчиков Windows NT, во многомповлияла на архитектуру самой NT.Пример структуры клиент-серверной ОСОССерверпроцессовСервердисплеяСерверсетиП рикла дна япрогра ммаСерверпа мятиП рикла дна япрогра ммаСерверФСП ользовательский режимРежим ядраМ икроядроП осылкасообщенияАП П АРАТУРАОтветМожно утверждать, что структура Windows NT, обладает свойствами какклиент-серверной так и послойной модели. Рассмотрим подробнее основныекомпоненты и способы их взаимодействия.25Структура ОС Windows NTПриложенияКлиентOS/2.....КлиентDOSПроцессрегистрацииКлиентWin32Защищенные подсистемы( серверы)ПодсистемаOS/2.....ПодсистемаWin32ПодсистемазащитыПользовательский режимИсполнительнаясистемаДиспетчеробъектовМ ониторзащитыРежим ядраСистемные сервисыДиспетчер СредствоДиспетчерпроцессов локального виртуальнойвызовапамятипроцедур(LPC)ЯДРОДиспетчерввода-выводаФайловые системыДиспетчер кэшаДрайверы устроуствСетевые драйверыДиспетчерокон(GDI)ДрайверыграфическихустройствСлой абстрагирования от аппаратуры (HAL)АП П АРАТУРАСтруктурно Windows NT можно разделить на две части: работающую впользовательском режим - защищенные подсистемы, и работающую в режимеядра - исполнительная система.Защищенные подсистемы.Каждая защищенная подсистема - это серверный процесс (как правилосостоящий из нескольких нитий).