45033 (664148), страница 5

Файл №664148 45033 (Операционные системы) 5 страница45033 (664148) страница 52016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

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

В том случае, если файл еще больше, то используется двенадцатый элемент поля адресации. Он содержит номер блока, в котором содержится 128 записей о номерах блоков, содержащих по 128 номеров блоков файловой системы, т. е. здесь используется двойная косвенность. Если файл еще больше, то используется тринадцатый элемент и используется тройная косвенность (аналогично двойной, но добавляется еще один уровень). Предельный размер файла (при размере блока 512) будет равен (128 + 1282 + 1283) * 512 байт = 1Гб + 8Мб + 64Кб > 1Гб.

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

Блоки файлов. Размер пространства блоков файлов определен однозначным образом за счет информации в суперблоке.

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

Итак, мы с вами рассмотрели структуру файловой системы и ее организацию на системном устройстве. Как любая системная конструкция, структура файловой системы и связанные с ней алгоритмы работы просты настолько, чтобы при работе с ними накладные расходы не выходили за пределы разумного. Файловая система UNIX-а при реальной работе заведомо оптимальнее файловой системы Windows NT (сравните даты разработок!!!), за счет простоты и оптимизации, которая встречается на каждом шагу.

Каталоги

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

В каталоге А содержаться файлы В, С и D, несмотря на то, что файлы В и С могут быть как файлами, так каталогами, а файл D является каталогом.

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

При создании каталога в нем всегда создаются две записи: запись на специальный файл с именем «.» (точка), с которым ассоциирован индексный дескриптор самого каталога, и файл «.. » (две точки), с которым ассоциируется индексный дескриптор (ИД) родительского каталога. Для нашего примера каталог А имеет, например, ИД с номером 7, а каталог D имеет ИД с номером 5. Файл F имеет ИД №10, файл G имеет ИД №101. В этом случае файл-каталог D будет иметь следующее содержимое:

Имя

№ИД

«. »

5

Первая запись - запись на самого себя.

«.. »

7

Вторая запись - на родителя (каталог А).

«F»

10

Далее перечислены файлы, которые находятся в этом каталоге.

«G»

101

Вот таким будет содержимое каталога D.

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

Теперь схематически рассмотрим, как могут использоваться полные имена и структура каталогов. В системе, в каждый момент времени работы пользователя определен текущий каталог, то есть каталог и весь путь от корня, связанный с этим каталогом, который по умолчанию подставляется ко всем именам файлов, не начинающихся с символа «/». Если текущий каталог D, то можно говорить просто о файлах F и G, а если надо добраться до файла В, то необходимо использовать полное имя или специальный файл «.. », т.е., в данном случае, конструкцию «../В». Мы ссылаемся на файл «.. » - это означает, что нужно прочесть ИД родителя и по нему добраться до содержимого каталога А. Затем в файле-каталоге А надо выбрать строку с именем В и определить ИД файла В, а затем произвести открытие файла. Вся эта операция довольно трудоемка, однако учитывая то, что файлы открываются не часто, это не будет сказываться на скорости работы системы.

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

Специальные файлы устройств

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

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

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

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

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

  2. read/write - системные вызовы чтения/записи, параметрами которых является номер ФД и некоторые атрибуты, которые не так важны для нашего рассмотрения.

  3. close - системный вызов завершения работы с файлом, параметром которого является номер ФД. После обращения к этой функции ФД становится свободным, а работа данного процесса с файлом завершается.

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

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

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

Таблица файлов. Таблица файлов (ТФ) содержит информацию об имени открытого файла, и имеет ссылку на ТИДОФ.

Лекция №9

Мы говорили, что система может работать с содержимым файла в том и только том случае, если процесс зарегистрировал свое желание работать с этим файлом. Факт такой регистрации называется открытием файла. При открытии файла в пределах процесса каждому имени открываемого файла (открываться может уже существующий файл, либо новый) ставится в соответствие уникальное целое число, которое называется файловым дескриптором (ФД). В пределах процесса ФД имеют нумерацию от 0 до k-1. Значение k - это параметр настройки операционной системы, определяющий, какое количество одновременно открытых файлов может быть у процесса. Здесь следует отметить, что мы говорим о количестве одновременно открытых файлов (так же написано в любой книжке по UNIX-у), однако, на самом деле, k - это максимальное количество ФД, которые могут быть ассоциированы с одним файлом, потому что один и тот же файл в пределах процесса можно открыть два раза, и образуется два ФД. К чему это приведет, мы рассмотрим несколько позже, но это вполне корректно. После открытия файла, все операции обмена осуществляются через указания файлового дескриптора (т.е. имя более нигде не указывается). С каждым файловым дескриптором ассоциирован ряд параметров (о них чуть позже).

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

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

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

  2. Счетчик открытых в данный момент файлов, связанных с данным ИД. Это означает, что для любого количества открытий файла, связанного с данным ИД, система работает с единственной копией этого ИД.

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

Характеристики

Тип файла
Документ
Размер
310 Kb
Тип материала
Учебное заведение
Неизвестно

Список файлов реферата

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6521
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее