Для своего размещения файл требует
Ядром операционной системы является модуль, который обеспечивает управление файлами — файловая система.
Основная задача файловой системы— обеспечение взаимодействия программ и физических устройств ввода/вывода (различных накопителей). Она также определяет структуру хранения файлов и каталогов на диске, правила задания имен файлов, допустимые атрибуты файлов, права доступа и др.
Обычно файловую систему воспринимают и как средство управления файлами, и как общее хранилище файлов.
Файл— это поименованная последовательность любых данных, стандартная структура которой обеспечивает ее размещение в памяти машины. Файл может содержать программу, числовые данные, текст, закодированное изображение или звук и др. Для каждого файла на диске выделяется поименованная область, причем файл не требует для своего размещения непрерывное пространство, так как может занимать свободные кластеры в разных частях диска.
Имя файла— это символьная строка, правила построения которой зависят от конкретной файловой системы. Максимальная длина имени файла в Windows составляет 255 символов. Имена могут содержать любые символы, включая пробелы, кроме следующих: прямой и обратный слэш (\ и /), двоеточие (:), звездочка (*), знак вопроса (?), двойная кавычка ("), знаков меньше и больше (< и >), знака «трубопровода» (|). Система сохраняет использованные в длинных именах строчные буквы.
Помимо имени, файл имеет расширение (тип)длиной до 3 символов, которое отделяется от имени точкой. К свойствам файла также относятся: реальный размер и объем занимаемого дискового пространства; время создания, последнего изменения и доступа; имя создателя файла; пароль для доступа, атрибуты и др.
Файл может иметь следующие атрибуты:
H (Hidden) — «скрытый файл».При просмотре содержимого папки (без специальных установок или ключа) сведения о файлах с таким атрибутом не выдаются.
A (Archive) — «неархивированный файл».Этот атрибут устанавливается при создании каждого файла и снимается средствами архивации и резервирования файлов.
Для удобства работы с файлами и их систематизации на диске создаются папки (каталоги), структура которых определяет логическую организацию данных.
Папка (каталог)— это специальное место на диске, в котором хранятся имена файлов, сведения об их размерах, времени последнего обновления и т.д. Имена папок образуются по тем же правилам, что и имена файлов.
Структура папок в Windows иерархическая (древовидная). Папка самого верхнего уровня — главная (корневая) — создается автоматически и не имеет имени. В ней находятся сведения не только файлов, но и о папках первого уровня (папки первого и последующих уровней создаются пользователем). Папка, с которой в данный момент работает пользователь, называется текущей.
С папками и файлами могут выполняться операции создания, удаления, копирования и перемещения, а также изменение их свойств и управление доступом.
Физическая организация данных на носителе зависит от файловой системы, которая предусматривает выделение в процессе форматирования диска специальных областей: системной областииобластиданных. Основными компонентами системной области являются: загрузочная запись, таблицы размещения файлов и корневой каталог (папка). Область данных содержит файлы и папки.
Вся область данных диска делится на кластеры,которые представляют собой неделимые блоки данных одного размера на диске. Все кластеры пронумерованы. В самом начале диска размещается таблица размещения файлов, содержащая столько записей, сколько кластеров доступно на диске. В ней содержатся сведения о номерах кластеров, в которых размещается файл, отмечены неиспользуемые кластеры, а также поврежденные кластеры, которые помечаются определенным значением, после чего уже никогда не употребляются.
Каждый кластер файла содержит номер следующего в цепочке его кластеров. Таким образом, достаточно знать номер первого кластера в цепочке, который хранится в оглавлении диска, чтобы определить номера всех кластеров, содержащих данный файл. Занимаемый файлом объем кратен количеству кластеров. Наличие у каждого кластера индивидуального номера позволяет найти область расположения файла, причем необязательно, чтобы его кластеры располагались рядом. Если разные фрагменты файла располагаются в несмежных кластерах, то говорят о фрагментациифайла.
Каждый диск на компьютере имеет уникальное имя. Диски именуются буквами латинского алфавита. Обычно накопителю на гибком магнитном диске (НГМД) присваивается имя А:, а винчестеру (НЖМД) — С:.
Жесткий диск представляет собой физическое устройство. Для организации эффективной работы с дисковым пространством жесткого магнитного диска с помощью специальной программы его разбивают на ряд разделов — логических дисков, каждый из которых рассматривается системой как отдельный диск и именуется последующими буквами латинского алфавита (D, E и т.д.).
Windows XP позволяет форматировать жесткий диск в файловой системе FAT или NTFS.
Система FAT (File Allocation Table) — представляет собой таблицу размещения файлов MS-DOS и Windows 9x и Me, поэтому понимается этими ОС. Но она имеет низкую отказоустойчивость, и при аварийном отключении питания велика вероятность потери данных.
Система NTFS (New Technology File System) — была разработана Microsoft специально для Windows NT. Она гарантирует сохранность данных в случае копирования даже при программно-аппаратном сбое или отключении электропитания, превосходит FAT по эффективности использования ресурсов (например, работает с файлами размером более 4 Гб), предоставляет возможность создавать «динамические» жесткие диски, объединяющие несколько папок, предоставляет средства для разграничения доступа и защиты информации и др.
Перевод логического диска из FAT в NTFS осуществляется штатной программой Windows или специальными программами без потери информации. Также существуют специальные программы, которые могут производить конвертацию из NTFS в FAT, однако в большинстве случаев такой перевод требует форматирования диска.
На диске может храниться огромное количество разнообразных файлов. Для удобства работы с файлами, их систематизации по назначению, содержанию, авторству или другим признакам на диске создаются каталоги, структура которых определяет логическую организацию данных. Каталог — это специальное место на диске, в котором хранятся имена файлов, сведения об их размерах, времени последнего обновления, свойствах и т.д. Каталог самого верхнего уровня — корневой (главный) каталог диска создается автоматически и не имеет имени. В нем находятся имена не только файлов, но и подкаталогов первого уровня (каталоги первого и последующих уровней создаются пользователем). Подкаталог первого уровня может содержать имена файлов и подкаталогов второго уровня и т.д. Каталог, с которым в данный момент работает пользователь, называется текущим.
Имена файлов и их атрибуты хранятся в каталоге. Если в каталоге хранится имя файла, то говорят, что этот файл находится в данном каталоге. Обращение к каталогу, если он не корневой, осуществляется по имени 3 .
На каждом диске может быть несколько каталогов. В каждом каталоге могут присутствовать файлы и другие каталоги. В зависимости от файловой системы структура каталогов может быть древовидной, когда каталог может входить только в один каталог более высокого уровня (рис. 3.2, а), и сетевой, когда каталог может входить в различные каталоги (рис. 3.2,6). Сетевая структура реализована в Unix, древовидная — в ОС семейства Windows.
Рис. 3.2. Структура каталога: а — древовидная; б — сетевая
В Windows каталог называется папкой. С папками (каталогами) и файлами могут выполняться операции создания, удаления, копирования и перемещения, а также изменение их свойств и управление доступом.
Одной из компонент ОС является файловая система – основное хранилище системной и пользовательской информации. Все современные ОС работают с одной или несколькими файловыми системами, например, FAT (File Allocation Table), NTFS (NT File System), HPFS (High Performance File System), NFS (Network File System), AFS (Andrew File System), Internet File System.
Файловая система – это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися во внешней памяти, и обеспечить совместное использование файлов несколькими пользователями и процессами.
В широком смысле понятие "файловая система" включает:
- совокупность всех файлов на диске;
- наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске;
- комплекс системных программных средств, реализующих управление файлами, в частности: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.
Файловая система используется обычно как при загрузке ОС после включения компьютера, так и в процессе работы. Файловая система выполняет следующие основные функции:
- определяет возможные способы организации файлов и файловой структуры на носителе;
- реализует методы доступа к содержимому файлов и предоставляет средства работы с файлами и файловой структурой. При этом доступ к данным может быть организован файловой системой как по именам, так и по адресам (номер сектора, поверхности и дорожки носителя);
- отслеживает свободное пространство на носителе.
Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жестком диске или блоке флэш-памяти) он записан. Все, что знает программа – это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).
С точки зрения операционной системы, весь диск представляет собой набор кластеров (участков памяти) размером от 512 байт и больше. Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные. Чтобы ясно представлять, как же хранятся данные на дисках, и как ОС обеспечивает доступ к ним необходимо представлять, хотя бы в общем виде логическую структуру диска.
3.1.5 Логическая структура диска
Для того чтобы компьютер мог хранить, читать и записывать информацию жесткий диск предварительно должен быть размечен. На нем с помощью соответствующих программ создаются разделы – это и называется "разбить жесткий диск". Без этой разметки на жесткий диск не удастся установить операционную систему (хотя Windows XP и 2000 могут устанавливаться на неразбитый диск, но они такую разметку проводят сами в процессе установки).
Жесткий диск можно разбить на несколько разделов, каждый из которых будет использоваться автономно. Для чего это надо? Один диск может содержать несколько различных операционных систем, расположенных в разных разделах. Внутренняя структура раздела, выделенного какой-либо ОС, полностью определяется этой операционной системой.
Кроме того, существуют и другие причины разбиения диска на разделы, например:
- возможность использования под управлением MS DOS дисков с емкостью большей, чем
32 Мб;
- в случае повреждения диска, пропадает только та информация, которая находилась на этом диске;
- реорганизация и выгрузка диска маленького размера проще и быстрее, чем большого;
- каждому пользователю можно выделить свой логический диск.
Операция подготовки диска к работе называется форматированием, или инициализацией. Всё доступное дисковое пространства разбивается на стороны, дорожки и сектора, причем дорожки и стороны нумеруются с нуля, а сектора – с единицы. Совокупность дорожек, находящихся на одинаковом удалении от оси диска или пакета дисков, называется цилиндром. Таким образом физический адрес сектора определяется следующими координатами: номер дорожки (цилиндра – С), номер стороны диска (головки – H), номера сектора – R, т.е. CHR.
В самом первом секторе жесткого диска (C=0, H=0, R=1) содержится главная загрузочная запись –Master Boot Record. Эта запись занимает не весь сектор, а только его начальную часть. Главная загрузочная запись является программой – внесистемным загрузчиком.
В конце первого сектора жесткого диска располагается таблица разделов диска – Partition Table. Эта таблица содержит четыре строки, описывающих максимально четыре раздела. Каждая строка в таблице описывает один раздел:
1) активный раздел или нет;
2) номер сектора, соответствующего началу раздела;
3) номер сектора, соответствующего концу раздела;
4) размер раздела в секторах;
5) код операционной системы, т.е. какой ОС принадлежит данный раздел.
Раздел называется активным, если он содержит программу загрузки операционной системы. Первым байтом в элементе раздела идет флаг активности раздела (0 – не активен, 128 (80H) – активен). Он служит для определения, является ли раздел системным (загрузочным), и для необходимости производить загрузку операционной системы с него при старте компьютера. Активным может быть только один раздел. Небольшие программы, называемые менеджерами загрузки (Boot Manager), могут располагаться в первых секторах диска. Они интерактивно запрашивают пользователя, с какого раздела производить загрузку и соответственно корректируют флаги активности разделов. Поскольку в Partition Table четыре строки, то на диске может быть до четырех различных ОС, следовательно, диск может содержать несколько первичных разделов, принадлежащих разным операционным системам.
Пример логической структуры жесткого диска, состоящего из трех разделов, два из которых принадлежат DOS, а один принадлежит UNIX, приведен на рисунке 3.2а.
Каждый активный раздел имеет свою загрузочную запись – программу, которая осуществляет загрузку данной ОС.
На практике диск разбивается чаще всего на два раздела. Размеры разделов, объявление их активными или нет, устанавливаются пользователем в процессе подготовки жесткого диска к работе. Делается это с помощью специальных программ. В DOS эта программа называется FDISK, в версиях Windows-XX – Diskadministrator.
В DOS первичный раздел – Primary Partition, это тот раздел, который содержит загрузчик операционной системы и саму ОС. Таким образом, первичный раздел является активным разделом, используется как логический диск с именем C:.
Операционная система WINDOWS (а именно WINDOWS 2000) изменила терминологию: активный раздел называется системным, а загрузочным называется логический диск, который содержит системные файлы WINDOWS. Загрузочный логический диск может совпадать с системным разделом, но может находиться в другом разделе того же жесткого диска или на другом жестком диске.
Расширенный раздел Extended Partition может разбиваться на несколько логических дисков с именами от D: до Z:.
На рисунке 3.2б представлена логическая структура жесткого диска, в котором всего два раздела и четыре логических диска.
| |
а | б |
Рисунок 3.2 – Логическая структура диска: а – с тремя разделами; б – с двумя разделами и четырьмя логическими дисками |
3.1.6 Файловая структура диска
Рассмотрим подробнее файловую структуру логического диска, созданного в расширенном разделе на жестком диске. В начале логического диска располагается сектор, в котором находится загрузочная запись, а в конце сектора – таблица логических дисков. Фактически эта таблица является расширением Partition Table, имеет тот же формат, но содержит всего две строки, два элемента. Первый элемент указывает на первый сектор первого логического диска, второй указывает на следующую таблицу логических дисков. В таблице логических дисков последнего логического диска, устанавливается код, означающий окончание списка.
Диски одного компьютера могут хранить огромное количество файлов, и для обеспечения возможности обращения к ним пришлось бы вести и составлять громоздкие каталоги, в которых бы для каждого файла были указаны занимаемые им сектора. Однако операционная система освобождает пользователя от необходимости вести эти каталоги и делает это сама, автоматически.
С этой целью
(рис.1) |
1) стартовый сектор;
2) таблица размещения файлов FAT- File Allocation Table;
3) корневой каталог – Root Directory;
4) пространство данных.
Размер этих областей зависит от размера логического диска, но общая структура и порядок расположения не меняется.
Стартовый сектор (загрузочная записьBoot Record)
Это своего рода визитная карточка любого диска. Он содержит необходимые ОС сведения для работы с диском. Под него выделяется первый сектор диска на дорожке 00 поверхности 0. Этот сектор содержит короткую программу блока начальной загрузки ОС, независимо от того системный диск или нет. Кроме того в загрузочной записи находятся параметры, описывающие характеристики логического диска:
· размер секторов диска в байтах;
· количество копий FAT (обычно 2);
· количество элементов в корневом каталоге;
· количество секторов на диске;
· указатель типа магнитного носителя информации;
· количество секторов, занимаемых FAT;
· количество секторов на дорожку;
· размер кластера и т.д.
Конец загрузочной записи заканчивается двухбайтовой подписью 55АА.
Таблица размещения файлов FAT
Таблица размещения файлов является важнейшей файловой структурой диска. В процессе работы содержимое области данных постоянно меняется: добавляются новые файлы, изменяется их содержимое, файлы удаляются, перемещаются и т.п. Выполнение этих операций требует наличия специального механизма, позволяющего распределять дисковое пространство между файлами и обеспечивать доступ к ним. Таким механизмом распределения дискового пространства и доступа к файлам и является таблица размещения файлов.
По содержимому FAT можно определить физическое расположение на диске всех файлов и каталогов. ОС разбивает всю область диска на участки одинакового размера, называемые кластерами. Размер кластера зависит от емкости диска, но всегда кратен размеру сектора. Несмотря на то, что минимальной порцией информации, передаваемой контроллером диска в процессе записи или чтения файла, является сектор, ОС выделяет место на диске целыми кластерами, если кластер больше сектора, то он занимает последовательные сектора.
Файл на диске, как правило, не занимает последовательную цепочку кластеров. Если дисковое пространство позволяет, то файл записывается в смежные кластеры, если нет – то в разные. В первом случае файл называется непрерывным, в последнем случае – фрагментированным. Если размер файла не кратен размеру кластера, то последний кластер лишь частично заполняется данными. Минимальный размер файла, даже если данные его занимают один байт, составляет целый кластер.
Для того чтобы определить физическое расположение файлов на диске, следует указать все входящие в него кластеры, причем в том порядке, в котором записывалась в кластеры содержимое файла.
FAT представляет собой таблицу, в которой число элементов, совпадает с числом кластеров на диске. Если на диске какой-то кластер свободен, то в FAT соответствующий ему элемент содержит код 000. Если файл на диске занимает несколько кластеров, то с помощью FAT эти кластеры связываются в цепочку. Например, файлу выделены кластеры №7, №8, №10, №14, №17, №11, №12. Элемент FAT №7 хранит номер следующего кластера, выделенного файлу, т.е. №8. Элемент №8 хранит 10 и т.д., пока не будет достигнут последний кластер, выделенный файлу. В этом последнем кластере записан специальный код FFF – признак конца файла.
FFF | FF7 |
FF7 |
Рисунок 3.3 – Фрагмент таблицы размещения файлов
Запись в каталоге, соответствующая данному файлу, содержит номер первого кластера (точка входа), выделенного файлу, в нашем примере это №7.
Кластеры, приходящиеся на испорченные участки диска, помечаются в FAT специальным кодом FF7 и исключаются из свободной области. Когда файл удаляют, то все записи в FAT, соответствующие его цепочки кластеров маркируются как свободные, однако данные файла из кластеров не удаляются до тех пор, пока в эти кластеры не будут записаны новые данные.
Операционная система MS DOS поддерживает 16-битовый формат FAT, а ОС Windows – 32-битовый. Это означает, что для записи адреса элемента таблицы необходимо 16 или 32 бита, соответственно. Отсюда следует, что при 16-битовом формате можно пронумеровать 2 16 =65536 кластеров. В связи с этим ограничением операционные системы не позволяют работать с жесткими дисками размером более 2 Гбайт.
Таблица 3.1 иллюстрирует, какой максимальный размер дискового пространства может обслуживать FAT16 и FAT32.
Таблица 3.1 – Максимальный объём памяти диска при использовании FAT16 и FAT32
Размер диска | Размер кластера для 16-битовой FAT | Размер кластера для 32-битовой FAT |
256-511 Мб | 8 Кб | Не поддерживается |
512-1024 Мб | 16 Кб | 4 Кб |
1024 Мб-2Гб | 32 Кб | 4 Кб |
2 Гб-8 Гб | Не поддерживается | 4 Кб |
8 Гб-16 Гб | 8 Кб | |
16 Гб-32 Гб | 16 Кб | |
Более 32 Гб | 32 Кб |
К очень негативным явлениям относится фрагментация файлов. По мере удаления старой информации в пространстве данных будут появляться кластеры, помеченные в FAT, как свободные. Вновь образованные файлы заполняют эти кластеры, что приводит к их фрагментации. Чем сильнее фрагментирован файл, тем больше времени уходит на его чтение или запись. Поскольку каждый файл, независимо от своего размера занимает целое число кластеров на диске, и целое число записей в FAT, то последний кластер используется не полностью. Недоступная часть кластера, недоступна и для других кластеров. Чем больше размер кластера, тем больше напрасный расход места на диске.
Более совершенная файловая система – FAT32 с 32-разрядными полями в таблицах размещения файлов, например, в ОС Windows 98/2000, позволяет уменьшать размер кластеров, что сокращает потери дисковой памяти и позволяет работать с жесткими дисками любого объёма. Ряд файловых систем, например, HPFS, WinFAT, сетевая Novell Netware, имеют механизмы дописывания остатков блоков различных файлов в частично заполненные кластеры. Этим обеспечивается более рациональное использование пространства внешней памяти.
В организации FAT могут возникать определенные дефекты. Ряд утилит позволяет диагностировать как логические ошибки в файловой системе, так и физические дефекты на поверхности диска.
Область данных диска, отведенную для хранения файлов, можно представить как линейную последовательность адресуемых блоков (секторов). Размещая файлы в этой области, ОС должна отвести для каждого файла необходимое количество блоков и сохранить информацию о том, в каких именно блоках размещен данный файл. Существуют два основных способа использования дискового пространства для размещения файлов.
Непрерывное размещение характеризуется тем, что каждый файл занимает непрерывную последовательность блоков.
Сегментированное размещение означает, что файлы могут размещаться «по кусочкам», т.е. один файл может занимать несколько несмежных сегментов разной длины. Оба способа размещения показаны на рис. 16.1.
Рис. 16.1 Способы размещения файлов на диске
Непрерывное размещение имеет два серьезных достоинства.
Информация о размещении файла очень проста и занимает мало места. Фактически достаточно хранить два числа: номер начального блока файла и число занимаемых блоков (или размер файла в байтах, по которому легко вычислить число блоков).
Доступ к любой позиции в файле выполняется быстро, поскольку, зная смещение от начала файла, легко можно вычислить номер требуемого блока и прочитать сразу этот блок, не читая предыдущие блоки.
К сожалению, недостатки непрерывного распределения еще более весомы.
При создании файла требуется заранее знать его размер, чтобы найти и зарезервировать на диске область достаточной величины. Последующее возможное увеличение файла весьма затруднено, т.к. после конца файла может не оказаться достаточно свободного места. Фактически вместо увеличения файла обычно приходится заново создавать файл большего размера в другом месте, переписывать в него данные и удалять старый файл. Но такое решение требует много времени на чтение и запись данных и, кроме того, снижает надежность хранения данных, поскольку ошибка при чтении или записи гораздо более вероятна, чем порча данных, «спокойно лежащих» на диске.
В ходе обычной эксплуатации файловой системы, после многократного создания и удаления файлов разной длины, свободное пространство на диске оказывается разбитым на небольшие кусочки. Суммарный объем свободного места на диске может быть достаточно большим, но создать файл приличного размера не удается, для него нет непрерывной области нужной длины. Это явление носит название фрагментации диска. Для борьбы с ним приходится использовать специальную процедуру дефрагментации, которая перемещает все файлы, размещая их впритык друг к другу от начала области данных диска. Но такая процедура требует много времени, снижает, как сказано выше, надежность и усугубляет проблемы в случае, если позднее потребуется увеличить файл.
Сегментированное размещение лишено первого из недостатков непрерывного: при создании файла ему обычно вообще не выделяют память, а потом, по мере возрастания размера файла, ему могут быть выделены любые свободные сегменты на диске, независимо от их длины.
Не так просто с фрагментацией. Конечно, в отличие от непрерывного размещения, при сегментированном никакая фрагментация не помешает системе использовать все блоки, имеющиеся на диске. Однако последовательное чтение из сегментированного файла может выполняться существенно медленнее за счет необходимости переходить от сегмента к сегменту. Замедление особенно заметно, если файл оказался разбросан маленькими кусочками по нескольким цилиндрам диска. В результате, время от времени целесообразно выполнять дефрагментацию диска, чтобы повысить скорость доступа к данным. При сегментированном размещении дефрагментация означает не только объединение всех свободных участков диска, но и, главным образом, объединение сегментов каждого файла. Эта процедура выполняется значительно сложнее, чем дефрагментация при непрерывном размещении.
Недостатком сегментированного размещения является то, что информация о размещении файла в этом случае намного сложнее, чем для непрерывного случая и, что наиболее неприятно, объем этой информации переменный: чем большее число сегментов занимает файл, тем больше нужно информации, ибо надо перечислить все сегменты. Имеется почти столько же способов решения этой проблемы, сколько вообще придумано разных файловых систем.
Чтобы уменьшить влияние сегментации на скорость доступа к данным файла, в ОС, использующих сегментированное размещение, применяются различные алгоритмы выбора места для файла. Их целью является разместить файл по возможности в одном сегменте, и только в крайнем случае разбивать файл на несколько сегментов.
В современных ОС для файловых систем на магнитных дисках практически всегда используют сегментированное размещение. Иное дело файловые системы на дисках, предназначенных только для чтения (например, CD ROM). Нетрудно понять, что в этом случае недостатки непрерывного размещения не имеют никакого значения, а его достоинства сохраняются.
Еще одной важной характеристикой размещения файлов является степень его «дробности». До сих пор мы предполагали, что файл может занимать любое целое число блоков, а под блоком фактически понимали сектор диска. Проблема в том, что для дисков большого объема число блоков может быть слишком большим. Допустим, в некоторой файловой системе размер блока равен 512 байт, а для хранения номеров блоков файла используются 16-разрядные числа. В этом случае размер области данных диска не сможет превысить 512 * 216 = 32 Мб. Конечно, можно перейти к использованию 32-разрядных номеров блоков, но тогда суммарный размер информации о размещении всех файлов на диске становится чересчур большим. Обычный выход из этого затруднения заключается в том, что минимальной единицей размещения файлов считают кластер (называемый в некоторых системах блоком или логическим блоком), который принимается равным 2k секторов, т.е., например, 1, 2, 4, 8, 16, 32 сектора, редко больше. Каждому файлу отводится целое число кластеров, и в информации о размещении файла хранятся номера кластеров, а не секторов. Увеличение размера кластеров позволяет сократить количество данных о размещении файлов «и в длину и в ширину»: во-первых, для каждого файла нужно хранить информацию о меньшем числе кластеров, а во-вторых, уменьшается число двоичных разрядов, используемых для задания номера кластера (либо при той же разрядности можно использовать больший диск). Так, при кластере размером 32 сектора и 16-разрядных номерах можно адресовать до 1 Гб дисковой памяти.
Использование больших кластеров имеет свою отрицательную сторону. Поскольку размер файла можно считать случайной величиной (по крайней мере, этот размер никак не связан с размером кластера), то можно приближенно считать, что в среднем половина последнего кластера каждого файла остается незанятой. Это явление иногда называют внутренней фрагментацией (в отличие от описанной выше фрагментации свободного пространства диска, которую называют также внешней фрагментацией). Кроме того, если хотя бы один из секторов, входящих в кластер, отмечен как дефектный, то и весь кластер считается дефектным, т.е. не может быть использован. Очевидно, что при увеличении размера кластера возрастает и число неиспользуемых секторов диска.
Оптимальный размер кластера либо вычисляется автоматически при форматировании диска, либо задается вручную.
Для нормальной работы файловой системы требуется, чтобы, кроме информации о размещении файлов, система хранила в удобном для использования виде информацию об имеющихся свободных кластерах диска. Эта информация необходима при создании новых или увеличении существующих файлов. Используются различные способы представления информации о свободном месте, некоторые из них перечислены ниже.
Можно хранить все свободные кластеры как связанный линейный список, т.е. в начале каждого свободного кластера хранить номер следующего по списку. Недостаток такого способа в том, что затрудняется поиск свободного непрерывного фрагмента нужного размера, поэтому сложнее оптимизировать размещение файлов.
Названный недостаток можно преодолеть, если хранить список не из отдельных кластеров, а из непрерывных свободных фрагментов диска. Правда, работать с таким списком несколько сложнее.
В системах с непрерывным размещением часто каждый непрерывный фрагмент диска описывают так же, как файл, но отмечают его флажком «свободен».
Удобный и простой способ заключается в использовании битовой карты (bitmap) свободных кластеров. Она представляет собой массив, содержащий по одному биту на каждый кластер, причем значение 1 означает «кластер занят», а 0 – «кластер свободен». Для поиска свободного непрерывного фрагмента нужного размера система должна будет просмотреть весь массив.
Главное назначение носителей внешней памяти – долговременное хранение информации. Любая информация (текст, изображение, программа, видеофильм и т.д.) на внешнем носителе хранится в виде файла. Файл (file) – это поименованная область на диске, в которой хранится отдельный экземпляр информации определенного типа.
Файл характеризуется набором параметров (свойств) (имя, расширение, размер, дата создания, дата последней модификации, время создания и изменения) и атрибутами, используемыми операционной системой для его обработки ("архивный", "системный", "скрытый", "только для чтения", "каталог" и др.).
Файловая структура может быть одноуровневой – это простая последовательность файлов. Многоуровневая файловая структура – древовидный способ организации файлов на диске. При этом существуют специальные файлы, которые в одних операционных системах называют каталогами (directory), в других – папками, назначение которых – регистрация в них файлов (в том числе и других каталогов). Наличие поддержки каталогов в операционной системе позволяет выстроить иерархическую (многоуровневую, древовидную) организацию размещения файлов на носителе. В этом случае файлы, имеющие одинаковую природу (файлы операционной системы, документы, офисные программы, игровые программы, результаты расчетов, домашние задания, рисунки и т.д.), размещаются в отдельных каталогах. Такая структура хранения информации позволяет уверенно ориентироваться в принадлежности той или иной информации, особенно если учесть, что на современных носителях информации могут храниться тысячи, а то и десятки тысяч файлов! Работа с информацией была бы значительно затруднена, если бы она была беспорядочно размещена на носителе.
Любой носитель изначально имеет один каталог, который создается операционной системой без нашего участия, – корневой. Корневой каталог на каждом носителе внешней памяти существует в единственном экземпляре. Все другие каталоги создаются либо пользователем, либо могут быть автоматически созданы программами.
Носители информации обозначаются символами латинского алфавита, после которых следуют две точки: А:, В: – дисководы для гибких дисков (дискет), С: – жесткий диск (винчестер), далее по алфавиту D:, E:, F: и т.д. – жесткие диски, логические диски или дисководы для компакт-дисков и др. по числу дисководов.
На рисунке приведен пример иерархической структуры размещения информации на носителе ("С:\" обозначает корневой каталог диска С:, имена каталогов написаны прописным шрифтом, файлов – строчным).
Пусть в корневом каталоге диска С: имеются два каталога 1-го уровня (GAMES и TEXT), а в каталоге GAMES один каталог 2-го уровня (CHESS). При этом в каталоге TEXT имеется файл proba.txt, а в каталоге CHESS – файл chess.txt.
Полное имя файла однозначно определяет местоположение любого файла на носителе. Оно состоит из пути к файлу, включающему логическое имя устройства и иерархическую систему каталогов, от корневого каталога до того, в котором содержится файл, и собственно имени файла и расширения: C:\GAMES\CHESS\chess.exe.
Правила задания имени файла определяются операционной системой и используемой файловой системой. Каждый файл имеет собственный уникальный адрес.
Для операционной системы данные на дисках организованы в дорожки и секторы. Дорожки (40 или 80 на дискете) представляют собой узкие концентрические кольца на диске. Каждая дорожка разделена на части, называемые секторами. При чтении или записи устройство всегда считывает или записывает целое число секторов независимо от объема запрашиваемой информации. Размер сектора на дискете равен 512 байтам. Количество секторов – 18. Цилиндр – это общее количество дорожек, с которых можно считать информацию, не перемещая головок. Поскольку гибкий диск имеет только две стороны, а дисковод для гибких дисков – только две головки, в гибком диске на один цилиндр приходится две дорожки. В жестком диске может быть много дисковых пластин, каждая из которых имеет две (или больше) головки, поэтому одному цилиндру соответствует множество дорожек. Кластер (или ячейка размещения данных) – наименьшая область диска, которую операционная система использует при записи файла (минимальный размер адресуемого пространства). Обычно кластер – один или несколько секторов.
Перед использованием дискета (жесткий диск) должна быть форматирована, т.е. должна быть создана ее логическая и физическая структура (разбиение диска на дорожки и секторы). Самая первая дорожка магнитного диска (нулевая) считается служебной – там хранится служебная информация – таблица размещения файлов (FAT-таблица). В этой таблице компьютер запоминает адреса записанных файлов. По команде пользователя, компьютер находит по имени файла в этой таблице номер дорожки и номер сектора, после чего магнитная головка переводится в нужное положение, файл считывается и направляется в оперативную память для обработки.
Нетрудно подсчитать общую емкость гибкого диска: 2 (стороны)×80 (дорожек)×18 (секторов)×0,5 байт=1440 Кбайт (1,44 Мбайт). Если вспомнить, что 1 Кбайт равен 1024 байтам, то, более точно, емкость гибкого диска равна 1 457 664 байта.
В операционных системах семейства Windows имя может содержать от 1 до 255 символов, причем набор символов, из которых можно составлять имена файлов, расширяется. В частности, можно использовать буквы национальных алфавитов, пробелы и т.д. Не допускается использование следующих символов: \ / : * ? " < >|. Строчные и прописные буквы в именах файлов не различаются. То же касается и имен файлов (папок в Windows). По другому дело обстоит в операционных системах семейства Unix. Там строчная и прописная буквы различаются, поэтому имена, записанные одними и теми же буквами, но имеющие различия в регистрах, будут разными.
Расширение имени файла записывается после точки и может содержать от 1 до 3 символов в DOS и больше 3 – в Windows. Чаще всего в расширение вкладывается определенный смысл (хотя пользователь может задавать и бессмысленные расширения) – оно указывает на содержимое файла или на то, какой программой был создан данный файл, данные какого типа сохранены в нем. Например:
- .DOC, .TXT – расширения текстовых файлов,
- .СОМ, .ЕХЕ – исполнимых файлов,
- .INI – инициализационных файлов,
- .PAS, .BAS, .СРР – исходные тексты программ на соответствующем языке программирования, и т.д.
В операционной системе Windows именно по расширению файлы ассоциируются с определенной программой, с помощью которой они могут быть открыты для просмотра или модификации.
Размер файла измеряется в байтах.
В зависимости от значений атрибутов файлов операционная система разрешает или запрещает те или иные действия над файлами.
Виды атрибутов. Для каждого файла соответствующая ему запись в каталоге (элемент каталога) содержит атрибуты файла. DOS может обрабатывать четыре атрибута файлов: "только для чтения" (read-only), "скрытый" (hidden), "системный" (system), и "архивировать" (archive). Каждый из этих атрибутов может быть либо установлен, либо нет.
Назначение этих атрибутов таково:
- атрибут файла "только для чтения" предохраняет файл от изменений: для изменения или удаления файла с этим атрибутом требуется предварительно снять данный атрибут. Файлы на компакт-дисках имеют атрибут "только для чтения", чтобы показать, что изменить эти файлы нельзя;
- атрибуты "скрытый" и/или "системный" используются некоторыми системными файлами. Файлы с атрибутом "системный" не перемещаются программами оптимизации расположения файлов на диске, а также обычно не копируются на сжатый диск при создании сжатого диска;
- атрибут файла "архивировать" устанавливается при создании файла и сбрасывается программами резервного копирования для обозначения того, что копия файла помещена в архив. Поэтому наличие атрибута "архивировать" обычно значит, что для файла не было сделано резервной копии.
Таким образом, большинство файлов имеет установленным только атрибут "архивировать". Остальные атрибуты ("только для чтения", "скрытый" или "системный"), как правило, не установлены.
В операционной системе Windows кроме перечисленных выше атрибутов имеются атрибуты индексирования (с целью ускорения поиска), сжатия, шифрования (только пользователь, зашифровавший файл (или папку) имеет доступ к его содержимому).
Обычно в Windows по отношению к файлам и каталогам используют несколько иную терминологию.
Наиболее простыми являются документы и программы. Документы – это объекты, содержащие ту или иную информацию: тексты, картинки, звуки и т.д. Развитие мультимедийных возможностей компьютера приводит к тому, что в некоторых документах могут содержаться несколько видов информации одновременно, например, движущееся изображение и звук. Программы служат для обработки документов – это своеобразные инструменты воздействия на документы. Часто их еще называют приложениями, например, приложение MS-DOS или приложение Windows, в зависимости от того, ресурсы какой операционной системы использует данная программа. Между отдельными программами и документами существует устойчивая связь: текстовый редактор работает с текстовыми документами, программа-фонограф воспроизводит звуки и т.п. Windows запоминает такие связи и способна самостоятельно их использовать при просмотре и работе с документами. Группа однотипных документов, а также программ для их обработки могут быть помещены в общую папку (аналог каталога). Папка является еще одним, более крупным объектом Windows. В отличие от документов и программ, являющихся простыми и "неделимыми" объектами, папка может содержать другие объекты, в том числе и новые папки; в частном случае папка может быть пустой.
Также файлы можно разделить на исполняемые (программы) и неисполняемые (файлы данных и документов). Исполняемые файлы могут запускаться операционной системой на выполнение, а неисполняемые файлы могут только изменять свое содержимое в процессе выполнения программ. Далее можно разделить файлы на основные, присутствие которых обязательно для работы операционной системы и программных продуктов, служебные, хранящие конфигурацию и настройки основных файлов, рабочие, содержимое которых изменяется в результате работы основных программных файлов и собственно ради которых и создаются все остальные файлы, а также временные файлы, создающиеся в момент работы основных и хранящие промежуточные результаты.
В процессе работы над файлами и каталогами (далее они называются объектами) производят следующие операции:
· создание (в текущем каталоге создается новый экземпляр объекта, ему дается имя. Созданный объект при этом может быть и пустым);
· копирование (копия объекта создается в другом каталоге или на другом носителе);
· перемещение (производит) копирование объекта в другой каталог или на другой носитель, в исходном каталоге объект уничтожается);
Задание 15. Тип (или расширение) файла обозначается:
1) только тремя символами
2) не более чем четырьмя символами
3) не более чем тремя символами.
Задание 16. Командный файл – это файл, содержащий:
1) последовательность команд операционной системы
2) системную информацию
3) последовательность операторов языка программирования.
Задание 17. Текстовые файлы имеют расширение:
1) .bak 2) .txt 3) .ехе.
Задание 18. Расширение файла .ехе означает, что этот файл:
Задание 19. Шаблон имени и расширения файла – это:
1) специальная форма, в которой в полях имени и расширений типа файла используются символы «+» и «-.»
2) специальная форма, в которой в полях имени и расширений типа файла используются символы «*» и «?»
3) специальная форма, в которой в полях имени и расширений типа файла используются символы «-» и «?».
Задание 20. Символ «*» в обозначении файла означает:
1) любое число любых символов
2) один произвольный символ
3) один конкретный символ.
Задание 21. Имя файла в MS - DOS должно состоять:
1) из не более чем 8 символов
2) только из 8 символов
3) из не более чем 8 символов.
Задание 22. Символ «?» в имени файла означает:
1) любое число любых символов
2) один произвольный символ
3) один конкретный символ.
Задание 23. Путь или маршрут к файлу – это:
1) последовательность операторов
2) последовательность имен диска и каталогов, раз деленных символом «\»
3) перечень и последовательность имен устройств, разделенных символом «:».
Задание 24. Исполняемые файлы имеют расширение:
Задание 25. Каталог – это:
1) постоянная память
2) место хранения имен файлов
3) внешняя память длительного хранения.
Задание 26. Текущий каталог – это:
1) корневой каталог
2) каталог, с которым работают в настоящий момент времени
3) каталог, который находится на одной из панелей программы-оболочки.
Задание 27. Для обозначения каталогов используют:
1) имена и расширения
2) специальные имена
3) обычные имена.
Задание 28. Каталоги образуют:
1) иерархическую структуру
2) сетевую структуру
3) реляционную структуру.
Задание 29. Операционная система это -
1) совокупность основных устройств компьютера;
2) система программирования на языке низкого уровня;
3) программная среда, определяющая интерфейс пользователя;
4) совокупность программ, обеспечивающих взаимодействие аппаратных и программных частей компьютера между собой
5) программ для уничтожения компьютерных вирусов.
Задание 30. Что в операционной системе предназначено для получения информации о функционировании операционной системы?
1) сервисные программы(утилиты)
2) командный процессор
3) справочная система
© 2014-2022 — Студопедия.Нет — Информационный студенческий ресурс. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав (0.01)
Читайте также: