Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.379


Таненбаум Э.- Архитектура компьютера. стр.379

♦ тип файла, три поля RWX (всего 9 бит) и некоторые другие биты;

♦ число связей с файлом (число элементов каталогов);

♦ идентификатор владельца;

♦ группа владельца;

♦ длина файла в байтах;

♦ тринадцать дисковых адресов;

♦ время, когда файл читали в последний раз;

♦ время, когда последний раз производилась запись в файл;

♦ время, когда в последний раз менялся индексный дескриптор.

Типы файлов могут быть разными: обычные файлы, каталоги, два вида особых файлов для блочных и неструктурированных устройств ввода-вывода. Число связей и идентификатор владельца мы уже обсуждали. Длина файла выражается 32-разрядным целым числом, которое показывает самый старший байт файла. Вполне возможно создать файл, перенести указатель на позицию 1 ООО ООО и записать 1 байт. В результате получится файл длиной 1 ООО 001. Однако этот файл потребует сохранения всех «несуществующих» байтов.

Первые 10 адресов на диске указывают на блоки данных. Если размер блока — 1024 байт, то можно работать с файлами размером до 10 240 байт. Адрес И указывает на блок косвенной адресации, который содержит 256 адресов диска. Здесь можно работать с файлами размером до 10 240 + 256 х 1024 = 272 384 байта. Для файлов еще большего размера существует адрес 12, который указывает на 256 блоков косвенной адресации. Здесь допустимый размер файлов составляет 272384 + 256 х 256 х 1024 = 67 381 248 байт. Если и эта схема блока двойной косвенной адресации слишком мала, используется адрес 13. Он указывает на блок тройной косвенной адресации, который содержит адреса 256 блоков двойной косвенной адресации. Используя прямую, косвенную, двойную косвенную и тройную косвенную адресацию, можно обращаться к 16 843 018 блокам. Это значит, что максимально возможный размер файла составляет 17 247 250 432 байта. Поскольку размер файловых указателей ограничен значением 32 бита, реальный верхний предел на размер файла составляет 4 294 967 295 байт. Свободные дисковые блоки хранятся в виде связного списка. Если нужен новый блок, он берется из списка. В результате получается, что блоки каждого файла беспорядочно раскиданы по всему диску.

Чтобы повысить скорость дискового ввода-вывода, нужно сделать следующее. После открытия файла его индексный дескриптор копируется в таблицу основной

памяти и хранится там, пока файл остается открытым. Кроме того, в памяти находится набор блоков, к которым недавно производилось обращение. Так как большинство файлов считывается последовательно, часто при обращении к файлу требуется тот же блок, что и при предыдущем обращении. Чтобы увеличить скорость, система считывает следующий блок в файл еще до того, как к нему произведено обращение. Все эти моменты скрыты от пользователя. Когда пользователь делает вызов read, программа приостанавливается, пока требуемые данные не появятся в буфере.

Зная все это, можно понять, как происходит процесс ввода-вывода. Вызов open заставляет систему искать каталоги по определенному пути. Если поиск оказывается успешным, индексный дескриптор считывается во внутреннюю таблицу. Вызовы read и write требуют, чтобы система вычислила номер блока из текущей позиции файла. Адреса первых 10 дисковых блоков всегда находятся в основной памяти (в индексном дескрипторе); для остальных блоков сначала требуется считать один или несколько блоков косвенной адресации. Вызов lseek просто меняет текущую позицию указателя и не производит никакого ввода-вывода.


⇐ Предыдущая страница| |Следующая страница ⇒

.