Организация файловой системы. Понятие "файл", "каталог". Требования к именам файлов и каталогов. Полное имя файла. Типы файлов. Использ
1. Организация
файловой системы. Понятие "
Файловая система — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п. Файловая система определяет формат содержимого и способ физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имени файла (папки), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.
В широком смысле понятие "файловая система" включает:
- совокупность всех файлов на диске,
- наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске,
- комплекс системных программных средств, реализующих управление файлами, в частности: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.
Файл — это понятие, привычное любому пользователю компьютера. Для пользователя каждый файл — это отдельный предмет, у которого есть начало и конец и который отличается от всех остальных файлов именем и расположением («как называется» и «где лежит»). Как и любой предмет, файл можно создать, переместить и уничтожить, однако без внешнего вмешательства он будет сохраняться неизменным неопределенно долгое время. Файл предназначен для хранения данных любого типа — текстовых, графических, звуковых, исполняемых программ и многого другого. Аналогия файла с предметом позволяет пользователю быстро освоиться при работе с данными в операционной системе.
Имена файлов
Файлы идентифицируются именами. Пользователи дают файлам символьные имена, при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. До недавнего времени эти границы были весьма узкими. Так в популярной файловой системе FAT длина имен ограничивается известной схемой 8.3 (8 символов - собственно имя, 3 символа - расширение имени), а в ОС UNIX System V имя не может содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлу действительно мнемоническое название, по которому даже через достаточно большой промежуток времени можно будет вспомнить, что содержит этот файл. Поэтому современные файловые системы, как правило, поддерживают длинные символьные имена файлов. Например, Windows NT в своей новой файловой системе NTFS устанавливает, что имя файла может содержать до 255 символов, не считая завершающего нулевого символа.
Длинные имена поддерживаются не только новыми файловыми системами, но и новыми версиями хорошо известных файловых систем. Например, в ОС Windows 95 используется файловая система VFAT, представляющая собой существенно измененный вариант FAT. Среди многих других усовершенствований одним из главных достоинств VFAT является поддержка длинных имен. Кроме проблемы генерации эквивалентных коротких имен, при реализации нового варианта FAT важной задачей была задача хранения длинных имен при условии, что принципиально метод хранения и структура данных на диске не должны были измениться.
Обычно разные файлы могут иметь
одинаковые символьные имена. В этом
случае файл однозначно идентифицируется
так называемым составным именем,
представляющем собой последовательность
символьных имен каталогов. В некоторых
системах одному и тому же файлу
не может быть дано несколько разных
имен, а в других такое ограничение
отсутствует. В последнем случае
операционная система присваивает
файлу дополнительно уникальное
имя, так, чтобы можно было установить
взаимно-однозначное
Типы файлов
Файлы бывают разных типов: обычные файлы, специальные файлы, файлы-каталоги.
Обычные файлы в свою очередь подразделяются на текстовые и двоичные. Текстовые файлы состоят из строк символов, представленных в ASCII-коде. Это могут быть документы, исходные тексты программ и т.п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют ASCII-коды, они часто имеют сложную внутреннюю структуру, например, объектный код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов - их собственные исполняемые файлы.
Специальные файлы - это файлы, ассоциированные с устройствами ввода-вывода, которые позволяют пользователю выполнять операции ввода-вывода, используя обычные команды записи в файл или чтения из файла. Эти команды обрабатываются вначале программами файловой системы, а затем на некотором этапе выполнения запроса преобразуются ОС в команды управления соответствующим устройством. Специальные файлы, так же как и устройства ввода-вывода, делятся на блок-ориентированные и байт-ориентированные.
Каталог - это, с одной стороны, группа файлов, объединенных пользователем исходя из некоторых соображений (например, файлы, содержащие программы игр, или файлы, составляющие один программный пакет), а с другой стороны - это файл, содержащий системную информацию о группе файлов, его составляющих. В каталоге содержится список файлов, входящих в него, и устанавливается соответствие между файлами и их характеристиками (атрибутами).
В разных файловых системах могут использоваться в качестве атрибутов разные характеристики, например:
- информация о разрешенном доступе,
- пароль для доступа к файлу,
- владелец файла,
- создатель файла,
- признак "только для чтения",
- признак "скрытый файл",
- признак "системный файл",
- признак "архивный файл",
- признак "двоичный/символьный",
- признак "временный" (удалить после завершения процесса),
- признак блокировки,
- длина записи,
- указатель на ключевое поле в записи,
- длина ключа,
- времена создания, последнего доступа и последнего изменения,
- текущий размер файла,
- максимальный размер файла.
Каталоги могут
Каталоги могут образовывать иерархическую структуру за счет того, что каталог более низкого уровня может входить в каталог более высокого уровня .
/usr
/bin
/arch
/ls
/raw
/lib
/libhistory.so.5.2
/libgpm.so.1
/home
/lost+found
/host.sh
/guest
/Pictures
/example.png
/Video
/matrix.avi
/news
/lost_ship.mpeg
(Иерархическая файловая система в Unix и UNIX-подобных операционных системах)
Иерархия каталогов может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть - если файл может входить сразу в несколько каталогов. В MS-DOS каталоги образуют древовидную структуру, а в UNIX'е - сетевую. Как и любой другой файл, каталог имеет символьное имя и однозначно идентифицируется составным именем, содержащим цепочку символьных имен всех каталогов, через которые проходит путь от корня до данного каталога.
Логическая организация файла
Программист имеет дело с логической
организацией файла, представляя файл
в виде определенным образом организованных
логических записей. Логическая запись
- это наименьший элемент данных,
которым может оперировать
Физическая организация и адрес файла
Физическая организация файла
описывает правила расположения
файла на устройстве внешней памяти,
в частности на диске. Файл состоит
из физических записей - блоков. Блок -
наименьшая единица данных, которой
внешнее устройство обменивается с
оперативной памятью. Непрерывное
размещение - простейший вариант физической
организации (рисунок 2.34,а), при котором
файлу предоставляется
Следующий способ физической организации - размещение в виде связанного списка блоков дисковой памяти (рисунок 2.34,б ). При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока. В отличие от предыдущего способа, каждый блок может быть присоединен в цепочку какого-либо файла, следовательно фрагментация отсутствует. Файл может изменяться во время своего существования, наращивая число блоков. Недостатком является сложность реализации доступа к произвольно заданному месту файла: для того, чтобы прочитать пятый по порядку блок файла, необходимо последовательно прочитать четыре первых блока, прослеживая цепочку номеров блоков. Кроме того, при этом способе количество данных файла, содержащихся в одном блоке, не равно степени двойки (одно слово израсходовано на номер следующего блока), а многие программы читают данные блоками, размер которых равен степени двойки.
Популярным способом, используемым, например, в файловой системе FAT операционной системы MS-DOS, является использование связанного списка индексов. С каждым блоком связывается некоторый элемент - индекс. Индексы располагаются в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла. При такой физической организации сохраняются все достоинства предыдущего способа, но снимаются оба отмеченных недостатка: во-первых, для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока, и, во-вторых, данные файла занимают блок целиком, а значит имеют объем, равный степени двойки.
В заключение рассмотрим задание физического расположения файла путем простого перечисления номеров блоков, занимаемых этим файлом. ОС UNIX использует вариант данного способа, позволяющий обеспечить фиксированную длину адреса, независимо от размера файла. Для хранения адреса файла выделено 13 полей. Если размер файла меньше или равен 10 блокам, то номера этих блоков непосредственно перечислены в первых десяти полях адреса. Если размер файла больше 10 блоков, то следующее 11-е поле содержит адрес блока, в котором могут быть расположены еще 128 номеров следующих блоков файла. Если файл больше, чем 10+128 блоков, то используется 12-е поле, в котором находится номер блока, содержащего 128 номеров блоков, которые содержат по 128 номеров блоков данного файла. И, наконец, если файл больше 10+128+128(128, то используется последнее 13-е поле для тройной косвенной адресации, что позволяет задать адрес файла, имеющего размер максимум 10+ 128 + 128(128 + 128(128(128.
Права доступа к файлу
Определить права доступа к файлу - значит определить для каждого пользователя набор операций, которые он может применить к данному файлу. В разных файловых системах может быть определен свой список дифференцируемых операций доступа. Этот список может включать следующие операции:
- создание файла,
- уничтожение файла,
- открытие файла,
- закрытие файла,
- чтение файла,
- запись в файл,
- дополнение файла,
- поиск в файле,
- получение атрибутов файла,
- установление новых значений атрибутов,
- переименование,
- выполнение файла,
- чтение каталога,
и другие операции с файлами и каталогами.
В самом общем случае права доступа могут быть описаны матрицей прав доступа, в которой столбцы соответствуют всем файлам системы, строки - всем пользователям, а на пересечении строк и столбцов указываются разрешенные операции (рисунок 2.35). В некоторых системах пользователи могут быть разделены на отдельные категории. Для всех пользователей одной категории определяются единые права доступа. Например, в системе UNIX все пользователи подразделяются на три категории: владельца файла, членов его группы и всех остальных.
Общая модель файловой системы
Функционирование любой
Задачей символьного уровня является
определение по символьному имени
файла его уникального имени.
В файловых системах, в которых
каждый файл может иметь только одно
символьное имя (например, MS-DOS), этот уровень
отсутствует, так как символьное
имя, присвоенное файлу
На следующем, базовом уровне по
уникальному имени файла
Следующим этапом реализации запроса к файлу является проверка прав доступа к нему. Для этого сравниваются полномочия пользователя или процесса, выдавших запрос, со списком разрешенных видов доступа к данному файлу. Если запрашиваемый вид доступа разрешен, то выполнение запроса продолжается, если нет, то выдается сообщение о нарушении прав доступа.
На логическом уровне определяются координаты запрашиваемой логической записи в файле, то есть требуется определить, на каком расстоянии (в байтах) от начала файла находится требуемая логическая запись. При этом абстрагируются от физического расположения файла, он представляется в виде непрерывной последовательности байт. Алгоритм работы данного уровня зависит от логической организации файла. Например, если файл организован как последовательность логических записей фиксированной длины l, то n-ая логическая запись имеет смещение l((n-1) байт. Для определения координат логической записи в файле с индексно-последовательной организацией выполняется чтение таблицы индексов (ключей), в которой непосредственно указывается адрес логической записи.
2. История развития компьютера. Принцип действия.
Начало развития технологий принято
считать с Блеза Паскаля, который
в 1642г. изобрел устройство, механически
выполняющее сложение чисел. Его
машина предназначалась для работы
с 6-8 разрядными числами и могла
только складывать и вычитать, а
также имела лучший, чем все
до этого, способ фиксации результата.
Машина Паскаля имела размеры 36´13´8
сантиметров, этот небольшой латунный
ящичек было удобно носить с собой.
Инженерные идеи Паскаля оказали
огромное влияние на многие другие
изобретения в области
Следующего этапного результата добился
выдающийся немецкий математик и
философ Готфрид Вильгельм
В 1812 году английский математик Чарльз
Бэббидж начал работать над так
называемой разностной машиной, которая
должна была вычислять любые функции,
в том числе и
Лишь в 40-х годах ХХ века удалось
создать программируемую
С появлением в 80-х годах первых персональных компьютеров, темпы развития резко возросли. Практически каждый день появляются новые разработки, и ПК становится все более доступен и все более необходим. В настоящее время нет ни одной сферы деятельности, где не использовались бы компьютеры
К началу XX века времени потребность в автоматизации вычислений, особенно для военных нужд — баллистики, криптографии стала настолько велика, что над созданием машин типа построенных Эйкеном и Цузе одновременно работало несколько групп исследователей .
В 1943 г. группа американских специалистов под руководством Джона Мочли и Преспера Экерта начала конструировать подобную машину уже на основе электронных ламп, а не реле. Их машина, названная ENIAC, работала в тысячу раз быстрее, чем Марк-1, однако для задания ее программы приходилось в течение нескольких часов или даже нескольких дней подсоединять нужным образом провода. Для упрощения процесса задания программ, Мочли и Экерт стали конструировать новую машину, которая могла бы хранить программу в своей памяти. В 1945 г. к работе был привлечен знаменитый математик Джон фон Нейман, который подготовил доклад об этой машине.Этот доклад стал всемирно известным, так, как в нем фон Нейман ясно и просто сформулировал общие принципы функционирования компьютеров. С той поры компьютеры стали гораздо более мощными, но они соответствуют тем принципам, которые изложил в своем докладе в 1945 г Джон фон Нейман.
Устройства, которые должен иметь компьютер:
Для того, чтобы быть универсальным и эффективным устройством обработки информации, компьютер должен иметь следующие устройства:
- арифмепгическо-логическое устройство, выполняющее арифметические и логические операции;
- устройство управления, которое организует процесс выполнения программ;
- запоминающее устройство, или память для хранения программ и данных;
- внешние устройства для ввода-
Память компьютера должна состоять из некоторого количества пронумерованных ячеек, в каждой из которых могут находиться или обрабатываемые данные, или инструкции программ. Все ячейки памяти должны быть одинаково легко доступны для других устройств компьютера.
С каждым новым поколением ЭВМ увеличивались быстродействие и надежность их работы при уменьшении стоимости и размеров, совершенствовались устройства ввода и вывода информации. В соответствии с трактовкой компьютера – как технической модели информационной функции человека – устройства ввода приближаются к естественному для человека восприятию информации (зрительному, звуковому) и, следовательно, операция по её вводу в компьютер становится всё более удобной для человека.
Современный компьютер – это универсальное, многофункциональное, электронное автоматическое устройство для работы с информацией. Компьютеры в современном обществе взяли на себя значительную часть работ, связанных с информацией. По историческим меркам компьютерные технологии обработки информации ещё очень молоды и находятся в самом начале своего развития.
Электронные лампы
В 1883 году Томас Эдисон, пытаясь продлить срок службы лампы с угольной нитью, ввел в ее вакуумный баллон платиновый электрод и пропустил через него положительное напряжение. Заметив, что в вакууме между электродом и нитью протекает ток он не смог найти никакого объяснения столь необычному явлению. Эдисон ограничился тем, что подробно описал его, на всякий случай взял патент и отправил лампу на Филадельфийскую выставку. Американский изобретатель не распознал открытия исключительной важности – термоэлектронная эмиссия. Он не понял, что его лампа накаливания с платиновым электродом по существу была первой в мире электронной лампой.
Первым, кому пришла в голову мысль о практическом использовании «эффекта Эдисона» был английский физик Дж.А. Флеминг (1849 – 1945). Работая с 1882 года консультантом эдисоновской компании в Лондоне, он узнал о «явлении» от самого Эдисона. Свой диод – двухэлектродную лампу Флейминг создал в 1904 году.
В октябре 1906 года американский инженер Ли де Форест изобрёл электронную лампу – усилитель, или аудион, как он её тогда назвал, имевший третий электрод – сетку. Им был введён принцип, на основе которого строились все дальнейшие электронные лампы, – управление током, протекающим между анодом и катодом, с помощью других вспомогательных элементов.
ЭВМ 1-ого поколения. Эниак (ENIAC)
Начиная с 1943 года группа специалистов под руководством Говарда Эйкена, Дж. Моучли и П. Эккерта в США начала конструировать вычислительную машину на основе электронных ламп, а не на электромагнитных реле. Эта машина была названа ENIAC (Electronic Numeral Integrator And Computer) и работала она в тысячу раз быстрее, чем «Марк-1». ENIAC содержал 18 тысяч вакуумных ламп, занимал площадь 9´15 метров, весил 30 тонн и потреблял мощность 150 киловатт. ENIAC имел и существенный недостаток – управление им осуществлялось с помощью коммутационной панели, у него отсутствовала память, и для того чтобы задать программу приходилось в течение нескольких часов или даже дней подсоединять нужным образом провода. Худшим из всех недостатков была ужасающая ненадежность компьютера, так как за день работы успевало выйти из строя около десятка вакуумных ламп.
ENIAC стал первым представителем
1-го поколения компьютеров.
Устройство и работа компьютера по «принципу фон Неймана»
Необходимо отметить огромную роль американского математика фон Неймана в становлении техники первого поколения. Нужно было осмыслить сильные и слабые стороны ENIAC и дать рекомендации для последующих разработок. В отчете фон Неймана и его коллег Г. Голдстайна и А.Беркса (июнь 1946 года) были четко сформулированы требования к структуре компьютеров. Отметим важнейшие из них:
· машины на электронных элементах должны работать не в десятичной, а в двоичной системе счисления;
· программа, как и исходные данные, должна размещаться в памяти машины;
· программа, как и числа, должна записываться в двоичном коде;
· трудности физической реализации запоминающего устройства, быстродействие которого соответствует скорости работы логических схем, требуют иерархической организации памяти (то есть выделения оперативной, промежуточной и долговременной памяти);
· арифметическое устройство (процессор) конструируется на основе схем, выполняющих операцию сложения; создание специальных устройств для выполнения других арифметических и иных операций нецелесообразно;