Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_po_OS_laboratornye.docx
Скачиваний:
7
Добавлен:
27.09.2019
Размер:
1.77 Mб
Скачать

Вопрос 1. Логическая организация файлов. Атрибуты и данные файла. Типы файлов. Операции с файлами.

Определение файла

Файл = атрибуты + данные + операции с файлами

Логическая организация файлов.

Файлы могут быть структурированы несколькими различными способами.

  1. файл - неструктурированная последовательность байтов. В этом случае операционная система не интересуется содержимым файла. Все, что она видит - это байты. Значения этим байтам придают программы уровня пользователя. Такой подход используется как в системе UNIX, так и в Windows.

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

  1. файл представляет собой последовательность логических записей фиксированной длины, каждая со своей внутренней структурой.

Операция чтения возвращает одну запись, а операция записи перезаписывает или дополняет одну запись. Доступ к n-ной записи осуществляется путем последовательного чтения (n-1) предшествующих записей, либо прямо по адресу, вычисленному по ее порядковому номеру.

  1. Файл представляет собой последовательность логических записей разной длины.

Операция чтения возвращает одну запись, а операция записи перезаписывает или дополняет одну запись. Доступ к n-ной записи осуществляется путем последовательного чтения (n-1) предшествующих записей. Вычислить адрес записи по ее порядковому номеру невозможно, поэтому не может быть применен метод прямого доступа.

  1. файл - дерево записей, не обязательно одной и той же длины (индексированные файлы). Каждая запись в фиксированной позиции содержит поле ключа. Дерево сортировано по ключевому полю, что обеспечивает быстрый поиск заданного ключа.

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

При добавлении новых записей операционная система, а не пользователь, должна решать, куда ее поместить

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

В последнем случае говорят, что файл имеет индексно-последовательную организацию, так как поиск включает два этапа:

прямой доступ по индексу к указанной области диска,

а затем последовательный просмотр записей в указанной области.

Атрибуты файла.

При создании файла процесс дает файлу имя. Во многих операционных системах имя файла может состоять из двух частей, разделенных точкой. Часть имени файла после точки называется расширением файла и обычно означает тип файла. В некоторых системах (например, в UNIX) расширения файлов являются просто соглашениями, и операционная система не принуждает пользователя их строго придерживаться. Помимо имени все операционные системы связывают с каждым файлом также и другую информацию, например дату и время создания файла, а также его размер. Атрибуты, относящиеся к защите файла, содержат информацию о том, кто может получить доступ к файлу, а кто нет. Флаги представляют собой биты или короткие поля, управляющие некоторыми специфическими свойствами.

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

Данные файла.

Поле(field) – основной элемент данных. Содержит единственное значение. Характеризуется длиной и типом данных (например, строка ASCII, десятичное число и т.п.).

Запись(record) – набор связанных между собой полей, которые могут быть обработаны как единое целое некоторой прикладной программой.

Файл(file) - набор данных, организованных в виде совокупности записей одинаковой структуры (однородных записей).

Типы файлов.

Многие операционные системы поддерживают различные типы файлов.

Например, в системах UNIX и Windows проводится различие между регулярными (обычными) файлами и каталогами. К регулярным файлам относятся все файлы, содержащие информацию пользователя.

Каталоги — это системные файлы, обеспечивающие поддержку структуры файловой системы.

Регулярные файлы в основном являются либо ASCII-файлами, либо двоичными файлами.

Операции с файлами.

Наиболее часто встречающиеся системные вызовы, относящиеся к файлам.

  1. Create (создание). Файл создается без данных. Этот системный вызов объявляет о появлении нового файла и позволяет установить некоторые его атрибуты.

  2. Delete (удаление). Когда файл уже более не нужен, его удаляют, чтобы освободить пространство на диске.

  3. Open (открытие). Прежде чем использовать файл, процесс должен его открыть. Системный вызов open позволяет системе прочитать в оперативную память атрибуты файла и список дисковых адресов для быстрого доступа к содержимому файла при последующих вызовах.

  4. Close (закрытие). Когда все операции с файлом закончены, атрибуты и дисковые адреса более не нужны, поэтому файл следует закрыть, чтобы освободить пространство во внутренней таблице.

  5. Read (чтение). Чтение данных из файла. Обычно байты поступают с текущей позиции в файле. Вызывающий процесс должен указать количество требуемых данных и предоставить для них буфер.

  6. Write (запись). Запись данных в файл, также в текущую позицию в файле. Если текущая позиция находится в конце файла, размер файла автоматически увеличивается. В противном случае запись производится поверх существующих данных, которые теряются навсегда.

  7. Append (добавление). Он может только добавлять данные к концу файла.

  8. Seek (поиск). Данный системный вызов устанавливает файловый указатель в определенную позицию в файле. После выполнения данного системного вызова данные могут читаться или записываться в этой позиции.

  9. Get attributes (получение атрибутов).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]