Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АОПИ. Старое / АОПИ. Глава 4. Конспекты (18_04_19).rtf
Скачиваний:
59
Добавлен:
10.09.2019
Размер:
588.93 Кб
Скачать

Алгоритмические основы программной инженерии Конспекты

Глава 4. Файловые системы.

§0. Вступление

Файловая система — это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами.

Файлы идентифицируются именами. Пользователи дают файлам символьные имена, при этом учитываются ограничения ОС как на используемые символы, так и на длину имени.

Общая модель файловой системы

§1. Файлы

Файлы, с точки зрения файловой системы, делятся на обычные файлы, файлы каталоги и специальные файлы.

Обычные файлы:

— текстовые (с ASCII символами, например).

— двоичные.

Текстовые файлы состоят из строк символов, представленных в ASCII-коде. Это могут быть документы, исходные тексты программ и т.п. Текстовые файлы можно прочитать на экране и распечатать на принтере.

Двоичные файлы не используют ASCII-коды, они часто имеют сложную внутреннюю структуру, например, объектный код программы или архивный файл.

============================================

Unicode

Юникод (англ. Unicode) — стандарт кодирования символов, включающий в себя знаки почти всех письменных языков мира.

Стандарт состоит из двух основных частей:

1. Универсальный набор символов (англ. Universal character set, UCS). Универсальный набор символов перечисляет допустимые по стандарту Юникод символы и присваивает каждому символу код в виде неотрицательного целого числа, записываемого обычно в шестнадцатеричной форме с префиксом U+, например, U+040F.

2. Семейство кодировок (англ. Unicode transformation format, UTF).

Семейство кодировок определяет способы преобразования кодов символов для передачи в потоке или в файле.

Представления Unicode

UTF-8 — представление Юникода, обеспечивающее наибольшую компактность и обратную совместимость с 7-битной системой ASCII; текст, состоящий только из символов с номерами меньше 128, при записи в UTF-8 превращается в обычный текст ASCII и может быть отображён любой программой, работающей с ASCII; и наоборот, текст, закодированный 7-битной ASCII может быть отображён программой, предназначенной для работы с UTF-8.

UTF-16 (англ. Unicode Transformation Format) — один из способов кодирования символов из Юникода в виде последовательности 16-битных слов.

UTF-32 (англ. Unicode Transformation Format) — один из способов кодирования символов Юникода, использующий для кодирования любого символа ровно 32 бита. Остальные кодировки, UTF-8 и UTF-16, используют для представления символов переменное число байтов.

В потоке данных UTF-16 младший байт может записываться либо перед старшим (англ. UTF-16 little-endian, UTF-16LE), либо после старшего (англ. UTF-16 big-endian, UTF-16BE). Аналогично существует два варианта четырёхбайтной кодировки — UTF-32LE и UTF-32BE.

Разница между текстовым и бинарным представлением файла

d (decimal) — десятичное число.

h (hexadecimal) — шестнадцатеричное число.

b (binary) — двоичное число.

Текстовое представление файла:

0123

Бинарное представление файла:

48495051d

30313233h

110000110001110010110011b

============================================

Специальные файлы — файлы, ассоциированные с устройствами ввода-вывода, которые позволяют пользователю выполнять операции ввода-вывода, используя обычные команды записи в файл или чтения из файла.

Эти команды вначале обрабатываются файловой системой, а затем на этапе выполнения запроса преобразуются ОС в команды управления соответствующим устройствам.

Файлы-каталоги — файлы, в которых содержатся списки содержащихся в них файлах, а также атрибуты этих файлов либо в явном виде (как в MS DOS), либо через указатели на таблицы атрибутов (как в UNIX).

Виды иерархий каталогов:

— Дерево.

— Сеть.

Каталоги образуют дерево, если файлу разрешено находится только в одном каталоге (как в MS DOS) или сеть, если файл может находится в нескольких каталогах (как в UNIX).

Файл-каталог имеет такое же символьное имя, как и любой другой файл.