Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#15| Dragon God
Demon's Souls |#14| Flamelurker
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Питер Нортон Весь текст 546.61 Kb

Программно-аппаратная организация компьютера IBM PC

Предыдущая страница Следующая страница
1 ... 13 14 15 16 17 18 19  20 21 22 23 24 25 26 ... 47
версиях  ДОС  и  только  начиная  с  версии  2.00  часть  из  них    стала
использоваться. Во всех более ранних версиях  эти  биты  не  определены  и
устанавливаются в нуль.
     Седьмой бит байта атрибутов с числовым значением 2 определяет скрытый
файл, а шестой, с числовым значением 4, - системный файл.  Таким  образом,
обычный видимый файл будет иметь нулевой байт атрибута, для скрытого файла
байт атрибута имеет значение 2, для системного файла - 4, а  для  скрытого
системного файла - 6.
     Хотя  обработка  системного  атрибута  осуществляется  независимо  от
скрытого, оба эти атрибута практически совпадают по своему функциональному
назначению. При использовании любого из них  файл  становится  "невидимым"
для  обычных  программ  работы  со  справочниками.    Системный    атрибут
зарезервирован не для использования  в  будущем,  а  (по  сведениям  фирмы
"Майкрософт")  для  обеспечения  совместимости  с  другими   операционными
системами.
     В версиях ДОС, следующих за  версией  2.00  используются  еще  четыре
бита. Бит 0 (с единичным значением) указывает, что  файл  доступен  только
для чтения. Такой файл защищен от изменений и уничтожения средствами ДОС.
     Бит 3 (с числовым значением 8)  указывает,  что  элемент  справочника
содержит метку тома. Сама метка хранится в полях имени файла и расширения,
которые воспринимаются в этом случае как одно целое.
     Бит 4 (с числовым значением 16) используется для  указания  элементов
справочника,  соответствующих  справочникам  нижнего  уровня.    Поскольку
справочники нижнего  уровня  хранятся  на  диске  подобно  обычным  файлам
данных, им необходим собственный элемент в корневом  справочнике.  В  этом
элементе используются все поля,  кроме  размера  файла,  в  данном  случае
равного нулю. Действительный размер файла справочника нижнего уровня легко
определяется из соответствующей последовательности в ТРФ.
     Бит 5 (с числовым значением 32) предусмотрен для облегчения  создания
резервных копий файлов на жестких дисках. Для файлов на гибких дисках этот
атрибут практически бесполезен.
     ЗАРЕЗЕРВИРОВАННОЕ  ПОЛЕ:  Это  поле  зарезервировано  для  возможного
использования в будущем. В первой версии ДОС это поле имело длину 12 байт,
но в дальнейшем его сократили до 10 байт, расположенных со  смещениями  от
12 до 21 относительно начала элемента справочника.
     Любые  новые  операции  над  справочником  файлов,   которые    могут
использовать это поле. Когда  элемент  справочника  находится  в  активном
состоянии (используется), то эти байты принимают значение 00.  В  исходном
состоянии  байты  этого  поля  имеют  шестнадцатеричные    значения    F6,
установленные командой FORMAT. Любые другие значения этого поля  указывают
на какой-либо вариант его использования.
     ВРЕМЯ: Это поле имеет длину два байта в формате 16-разрядного  целого
числа без знака, расположенные со смещениями 22 и 23  относительно  начала
элемента. Начиная с версии ДОС 1.10 в этом поле  хранится  время  создания
или модификации файла. В первой версии ДОС хранилась только  дата,  а  это
поле было частью зарезервированного поля.
     Большинство операций,  использующих  это  поле,  таких  как  операция
распечатки содержимого справочника DIR, выдают время с точностью до минут,
хотя  число  хранящееся  в  поле  времени  позволяет  определить  время  с
точностью до двух секунд.
     Код времени, хранящийся  как  16-разрядное  целое  число  без  знака,
вычисляется по следующей формуле:


               время = часы * 2048 + минуты * 32 + секунды / 2


     ДАТА : Это поле состоит из двух байт, хранящихся со смещениями  24  и
25  от  начала  элемента.  Как  и  время,  даты  хранятся  в  виде  целого
16-разрядного числа без знака, которое вычисляется по формуле:


               Дата = (год - 1980) * 512 + Месяц * 32 + День


     Диапазон изменения лет составляет от 1980 до  2099,  причем  хранятся
они в виде относительных величин  от  0  до  199.  Хотя  формат  позволяет
задавать относительный номер  года  127  (что  соответствует  2107  году),
программы ДОС позволяют работать с годами только до 2099.  Никто,  правда,
не ожидает, что ДОС будет использоваться так долго.
     Как формат, так и размещение полей даты  и  времени  подобраны  таким
образом,  чтобы  вместе  они  образовывали  единое  четырехбайтовое  поле,
которое  можно  использовать  в  операциях  сравнения.  Достаточно  просто
извлекать компоненты даты и времени из соответствующих полей  и  вычислять
их разность. Например,  для  разделения  даты  на  составные  части  можно
использовать следующие формулы, записанные на Паскале:


                 год := 1980 + поле_даты div 512
                 месяц := (поле_даты mod 512) div 32
                 день := поле_даты mod 32


     НОМЕР НАЧАЛЬНОГО КЛАСТЕРА :  Это двухбайтовое поле,  расположенное со
смещением   26,  27  от  начала  элемента,  содержит  16-разрядное  число,
являющееся смещением до начальной точки файла в таблице размещения  файлов
(ТРФ);  подробнее  от этом сказано в следующем разделе.  Начальный кластер
является первой частью пространства данных на дискете.
     РАЗМЕР ФАЙЛА : Это поле состоит из  четырех  байтов,  размещенных  со
смещениями от 28 до 31 от начала элемента. Размер файла задается в  байтах
и хранится в формате четырехбайтового  целого  числа  без  знака,  которое
может рассматриваться как пара двухбайтовых чисел. Размер файла не  всегда
указывает  точное  число  байтов.  Для  всех  файлов  это   поле    должно
соответствовать размеру файла в секторах.( Если по какой-либо причине  это
не так, то процедура ДОС CHKDSK сообщит об ошибке и  установит  правильную
длину.)
     Для программных файлов, представленных в формате типа  ".COM"  и  для
файлов, созданных из данных фиксированной длины, только поле размера файла
позволяет точно определить, где находится конец данных.  Для  этих  файлов
значение в поле размера файла хранится с точностью до байта.
     Для файлов некоторых других форматов такая точность не обязательна  и
размер файла,  указанный  в  соответствующем  поле,  может  отличаться  от
действительного.  Наиболее  часто  это  случается  с  текстовыми  файлами,
которые будут описаны в разделе 5.9 . Текстовые файлы в коде  ASCII  имеют
маркер (признак) конца файла, хранящийся в самом файле, который  фиксирует
точный конец данных.  По  этой  причине  многие  программы,  работающие  с
текстовыми файлами, не  слишком  заботятся  о  сохранении  действительного
размера файла.
     Например, если программа формирует  текстовой  файл  не  побайтно,  а
блоками по 128 байт, то ДОС определит размер  файла  с  точностью  до  127
байт. Для программ редактирования текстов значительно эффективнее читать и
записывать данные большими блоками, чем делать это побайтно. Такой  подход
является довольно распространенным и не следует чересчур доверять значению
размера файла, по крайней мере, для текстовых файлов.


                        Справочники нижнего уровня
                        __________________________

     Существуют два типа  справочников:  корневые  и  справочники  нижнего
уровня. Содержимое и характер использования справочников  обоих  типов  по
существу одинаковы - те и другие хранят имена файлов и сведения о них и их
расположении  на  диске.  Однако,   характеристики    этих    справочников
различаются.  Корневые  справочники  (или  просто    справочники)    имеют
фиксированный  размер  и  хранятся  в  определенном  месте  на    дискете.
Справочник нижнего уровня является  дополнением  корневого  справочника  и
может храниться как обычный файл в любом  месте  на  дискете.  Справочники
нижнего уровня  могут  использоваться  любой  версией  ДОС,  следующей  за
версией 2.00.
     Справочники нижних уровней хранятся в пространстве данных  диска  как
обычные файлы. Форматы полей  и  содержимое  справочников  нижнего  уровня
такие же как у корневого справочника, с  той  лишь  разницей,  что  размер
справочника нижнего уровня не ограничен. Справочники нижнего уровня всегда
связаны с  порождающим  справочником,  который  может  быть  как  корневым
справочником, так и справочником более высокого уровня.
     В порождающем справочнике  всегда  имеется  элемент  для  справочника
нижнего уровня,отличающийся от обычного  элемента  установленным  битом  4
байта атрибутов и нулевым значением размера файла.  Действительный  размер
справочника можно определить, проследив всю цепочку в  таблице  размещения
файлов.
     При  создании  справочников  нижнего  уровня  в  них  выделяются  два
элемента, в которых в качестве имени файла указана точка и две точки ( "."
и "..").
     Элемент с одной точкой относится к этому  справочнику,  а  элемент  с
двумя точками - к его порождающему справочнику. Номера начальных кластеров
в  этих  элементах  указывают   соответственно    местоположение    самого
справочника и его порождающего.
     Если номер начального кластера  для  порождающего  справочника  равен
нулю, то порождающим является корневой справочник.
     Когда размер файла уменьшается, ДОС возвращает  освободившееся  место
на дискете в общий  пул.  Однако,  если  информация  о  файле  хранится  в
справочнике  нижнего  уровня,  то  освободившееся  место   нельзя    будет
использовать, пока не будет уничтожен весь этот справочник.


     5.7 Структура Таблицы Размещения Файлов (ТРФ)

     Процедура распределения пространства памяти на дискете между  файлами
реализуется с помощью таблицы размещения файлов (ТРФ). Использование ТРФ и
интерпретация  ее  содержимого  представляет  собою  непростую  задачу   -
следовательно необходимо некоторое более подробное  разъяснение.  Основной
принцип организации ТРФ заключается в  создании  таблицы,  каждый  элемент
которой соответствует одному кластеру или фрагменту дискового пространства
выделяемого файлу. Элементы таблицы содержат признаки  занятости  кластера
или что он  свободен  и  может  быть  отведен  для  файла.  Доступные  или
свободные элементы таблицы содержат нулевые значения. Участки пространства
на дискете, принадлежащие файлу, связаны в  цепочку.  Элемент  справочника
файла содержит номер элемента в  ТРФ,  который  соответствует  первому  из
участков, выделенных  для  файла.  Элемент  ТРФ  содержит  номер  элемента
следующего файла и так далее, пока не  будет  достигнут последний  участок
файла. В последнем элементе ТРФ для файла находится признак  конца  файла.
Схема такой организации изображена на рис. 5.4 .
     Такова в общих чертах схема ТРФ. Рассмотрим теперь ее подробнее.
     Во-первых, рассмотрим кластеры выделяемого пространства  памяти.  Для
односторонних  дискет  пространство  выделяется  по  одному  сектору.  Для
двухсторонних дискет выделяются каждый раз два сектора .  Если  в  кластер
входит больше одного сектора, то  объединяются  последовательные  сектора.
Для двухсторонних дискет кластер состоит из четного и  нечетного  секторов
одной и той  же  дорожки.  Таким  образом,  каждая  дорожка  двухсторонней
дискеты состоит из четырех кластеров на каждой стороне  или  всего  восьми
кластеров. В первый кластер входят сектора 1 и 2, во второй - 3 и 4 и  так
далее . (Если будут  добавлены  диски  большей  емкости,  то  можно  будет
организовать кластеры большего размера. В четвертой главе уже упоминалось,
как можно динамически включить в BIOS программы обслуживания устройств для
ДОС всех версий, начиная  с  версии  2.00.  Описанная  методика  позволяет
добавлять  дисковые  устройства,  логическая  организация  которых   будет
совместима с используемыми дискетами. Помимо других характеристик, которые
могут задаваться для новых устройств, можно указать  и  число  секторов  в
кластере.)
     Выделение места на двухсторонней  дискете  двухсекторными  кластерами
может  показаться  нерациональным,  ведь  в  ряде  случаев   файл    будет
Предыдущая страница Следующая страница
1 ... 13 14 15 16 17 18 19  20 21 22 23 24 25 26 ... 47
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама