Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора 115 питань.doc
Скачиваний:
2
Добавлен:
17.09.2019
Размер:
626.69 Кб
Скачать

45. Характеристика операцій над файлами.

Операционная система должна предоставить в распоряжение пользователя набор операций  для работы с файлами, реализованных через системные вызовы. Чаще всего при работе с файлом пользователь выполняет не одну, а несколько операций. Во-первых, нужно найти данные файла и его атрибуты по его символьному имени, во-вторых, считать необходимые атрибуты файла в отведенную область оперативной памяти и проанализировать права пользователя на выполнение требуемой операции. Затем выполнить операцию, после чего освободить занимаемую данными файла область памяти. Рассмотрим в качестве примера основные файловые операции ОС Unix:

Create. Создание файла, не содержащего данных. Смысл данного вызова - объявить, что файл существует и присвоить ему ряд атрибутов.

Delete. Удаление файла и освобождение занятого им дискового пространства.

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

Close. Если работа с файлом завершена, его атрибуты и адреса блоков на диске больше не нужны. В этом случае файл нужно закрыть, чтобы освободить место во внутренних таблицах файловой системы.

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

Read. Чтение данных из файла. Обычно это происходит с текущей позиции. Пользователь  должен задать объем считываемых данных и предоставить буфер для них.

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

Get attributes. Предоставляет процессам нужные им сведения об атрибутах файла.  В качестве примера можно привести, утилиту make, которая использует информацию о времени последней модификации файлов.

Set attributes. Дает возможность пользователю установить некоторые атрибуты. Наиболее очевидный пример - установка режима доступа к файлу.

Rename. Возможность переименования файла создает дополнительные удобства для пользователя. Данная операция может быть смоделирована копированием данного файла в файл с новым именем и последующим его удалением.

46. Папки (каталоги, директорії) та їх характеристика. Операції над папками.

Все современные файловые системы поддерживают многоуровневое именование файлов за счет поддержания во внешней памяти дополнительных файлов со специальной структурой –папок (каталогов).

Каждая папка содержит  список папок и/или файлов, содержащихся в даной папке. Папки имеют один и тот же внутренний формат, где каждому файлу соответствует одна запись в файле папки. Когда система открывает файл, она ищет имя файла в папки. Затем извлекаются атрибуты и адреса блоков файла на диске или непосредственно из записи в папки или из структуры, на которую запись в папки указывает. Эта информация помещается в системную таблицу в главной памяти. Все последующие  ссылки на этот файл используют  эту информацию.

Число папок зависит от системы. В ранних ОС имелась только одна  корневая папка (папка),  затем появились папки для пользователей  (по одной папки на пользователя). В современных ОС используется произвольная структура дерева папок.

Система обязана обеспечить пользователя набором операций, необходимых для работы с папками, реализованных через системные вызовы.  Рассмотрим в качестве примера некоторые системные вызовы ОС Unix.

Create. Создание папки. Вновь созданная папка включает записи с именами '.' и '..', однако считается пустой.

Delete. Удаление папки. Удалена может быть только пустая папка.

Opendir. Открытие папки для последующего чтения. Например, чтобы перечислить файлы, входящие в директорию, процесс должен открыть директорию и считать имена всех файлов, которые она включает.

Closedir. Закрытие папки после ее чтения для освобождения места во внутренних системных таблицах.

Readdir. Данный системный вызов возвращает содержимое текущей записи в открытой папки. Вообще говоря, для этих целей может быть использован системный вызов Read, но в этом случае от программиста потребуется знание внутренней структуры папки. Readdir возвращает содержимое записи в стандартном формате, независимо от используемой структуры папок.

Rename. Имена папок можно менять, также как и имена файлов.

Link. Связывание - это техника, которая позволяет информации о файле появляться более чем в одной папки. Данный системный вызов связывает существующий файл с абсолютным именем папки, используя их в качестве параметров. При помощи вызова Link можно связать файл сразу с несколькими папками.

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

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