Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Операционные системы

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

      Индексные дескрипторы. Индексные дескрипторы занимают несколько подряд
идущих блоков на диске. Размер области индексных  дескрипторов  определяется
параметром (который был определен  при  инсталляции  системы),  определяющим
количество индексных дескрипторов для данной  конкретной  файловой  системы.
Размер области равен произведению  этого  количества  на  размер  индексного
дескриптора.
      Индексный дескриптор - это объект UNIX-а, который ставится во  взаимно
однозначное соответствие с содержимым файла, за исключением  случаев,  когда
файл есть некий специальный файл, ассоциированный с внешним  устройством.  В
индексном дескрипторе существуют следующие поля:
      1. Поле, определяющее тип файла (каталог или нет).
      2. Поле кода защиты.
      3. Количество ссылок к данному индексному дескриптору из  всевозможных
         каталогов файловой системы (в ситуации  нарушения  дерева  файловой
         системы). Если значение этого поля равно  нулю,  то  считается  что
         этот индексный дескриптор свободен.
      4. Длина файла в байтах.
      5. Статистика: поля, характеризующие дату и время создания и т.п.
      6. Поле адресации блоков файлов.

      Обратите внимание на то, что в индексном дескрипторе нет имени  файла,
хотя этот объект характеризует  содержимое  файла.  Давайте  посмотрим,  как
организована адресация блоков, в которых размещается содержимое файла.
      В поле адресации находятся номера первых десяти  блоков  файлов.  Если
файл небольшой, то вся  информация  о  размещении  его  блоков  находится  в
индексном дескрипторе.  Если  файл  превышает  десять  блоков,  то  начинает
работать некая списочная  структура.  Одиннадцатый  элемент  поля  адресации
содержит номер блока из пространства блоков файлов, в котором размещены  128
ссылок на блоки данного файла.
                                    [pic]
      В том случае,  если  файл  еще  больше,  то  используется  двенадцатый
элемент поля адресации. Он содержит номер блока, в  котором  содержится  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, а если надо добраться до  файла  В,
то необходимо использовать полное имя или специальный  файл  «..»,  т.е.,  в
данном  случае,  конструкцию  «../В».  Мы  ссылаемся  на  файл  «..»  -  это
Пред.678910След.
скачать работу

Операционные системы

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ