Организация хранения данных на диске

Автор работы: Пользователь скрыл имя, 11 Июля 2013 в 19:30, реферат

Краткое описание

В ходе сеанса работы с системой пользователь создает и изменяет собственные данные, например, документы, изображения, тексты программ. В простейшем случае пользователь может на¬брать текст, распечатать его, получив твердую копию документа, и завершить свой сеанс работы с системой. При этом пользователь получает результат своей работы — распечатку, а набранный текст представляет собой промежуточные данные, которые не нужно хранить.

Содержание

2.1. Организация хранения данных на диске
2.2. Каталоги
2.3. Операции над файлами и каталогами

Вложенные файлы: 1 файл

Информатика реферат.docx

— 37.90 Кб (Скачать файл)

Простые ОС могут поддерживать файловые системы, имеющие только один каталог —  корневой, в котором хранятся файлы. Более сложные ОС поддерживают работу с деревом каталогов практически неограниченной вложенности. Естественным ограничением глубины вложенности дерева каталогов является длина полных имен файлов, находящихся на нижнем уровне вложенности дерева.

Полное  имя файла — текстовая строка, в которой через специальные символы-разделители указаны имена всех каталогов, задающие путь от корневого каталога до самого файла. В качестве разделителя в UNIX-системах используется символ прямой косой черты «/». Например, для файла file6 полным именем будет /dir1/dir3/dir5/file6. Здесь первая косая черта обозначает корневой каталог, т.е. полным именем файла file1, находящегося в корневом каталоге, будет /file1.

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

Имена файлов и каталогов, находящихся в текущем  каталоге, 
могут быть указаны напрямую, без задания полного имени. На- 
пример, если текущим каталогом является dir4, то к файлам 
filе4 и file5 можно обращаться, используя только их собственные имена file4 и f ile5 вместо указания полного имени.

Относительный путь определяется по отношению к  текущему каталогу, при этом имя  самого каталога обычно не указывается. Тем не менее в UNIX-системах для указания того, что путь считается от текущего каталога, часто используют мнемоническое обозначение «.». Если текущим каталогом является dir3, то относительно него относительный путь к файлу file6 будет задаваться именем ./dir5/file6.

Для задания  в пути родительского каталога используется мнемоника «..». Например, если текущим каталогом является каталог dir7, то относительное имя файла file1 будет выглядеть как . ./. ./file1. Первые две точки указывают на каталог, родительский для dir7 — каталог dir4, а вторые две точки — на каталог, родительский для dir4 — каталог dir1.

Системные файлы  в ОС семейства UNIX распределены по отдельным каталогам. Это позволяет структурировать различные файлы по их назначению. Большинство UNIX-систем имеет стандартную структуру системных каталогов (рис. 2.7). Так, в UNIX-системах обычно выделяются отдельные каталоги для хранения ядра (/boot), системных библиотек (/lib), системных утилит (/bin), системных настроек (/etc), пользовательских программ (/usr), пользовательских данных (/home). Более подробно структура стандартных каталогов UNIX-систем рассмотрена в подразд. 6.1.

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

Пусть каталог, хранящий все данные и программы  комплекса «Контроль знаний», будет  подкаталогом корневого   (рис.   2.8)   и имеет имя  check.

РИС 2.8

Данные приложения будут распределены по двум каталогам — в каталоге check будут содержаться каталоги для хранения рабочих областей студентов (students) и преподавателя (teacher). Задания, предназначенные для выполнения основных действий в системе, будут помещены в каталог scripts. Полные имена каталогов будут иметь следующий вид:

/check

/check/students

/check/teacher

/check/scripts

Рабочая область  каждого студента также будет  представлять собой каталог, имя  которого будет совпадать с учетным именем студента в системе. В каталоге каждого студента выделяется отдельный подкаталог ready для выполненных работ.

Рабочая область  преподавателя будет содержать  по одному каталогу для каждой темы, причем темы будут нумероваться, а  имена каталогов будут иметь  вид theme1, theme2 и т.д. Для собранных у студентов работ в рабочей области преподавателя будет выделен отдельный каталог с именем works.

 

2.3. Операции над файлами  и каталогами

 

Для доступа к файлам ОС предоставляет набор системных  вызовов, реализующих основные функции  работы с файлами (табл. 2.1) [11].

Таблица 2.1. Системные вызовы для работы с файлами

   

Системный вызов

Описание

Create

При вызове создается пустой файл, не содержащий данных. Вызов производится перед первой записью в файл

Delete

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

Open

Такой вызов должен быть произведен перед началом работы с любым файлом. Основная цель вызова — считывание параметров файла в  оперативную память, выделение части  дискового буфера ввода/вывода для  файла и назначение файлу временного пользовательского идентификатора, использующегося в течение работы программы, открывшей файл

Close

Сбрасывает данные, находящиеся  в буфере ввода/вывода в область  диска, хранящую набор данных файла, освобождает ресурсы буфера, удаляет  временный пользовательский идентификатор

Read

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

Write

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

Append

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

Seek

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

Get Attributes

Предназначен для получения  атрибутов файла, например, даты его  создания. Более подробно об атрибутах  см. подразд. 4.4

Set Attributes

Предназначен для установки атрибутов файла

Rename

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


 

 

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

Таблица 2.2. Системные вызовы для работы с каталогами

   

Системный вызов

Описание

Create

Создает пустой каталог, содержащий только элементы «.» и «. .»

Delete

Удаляет пустой каталог, не содержащий никаких других файлов и  подкаталогов, кроме элементов «.» и «. .»

OpenDir

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

CloseDir

Высвобождает память, выделенную под параметры каталога, считанные  вызовом OpenDir

ReadDir

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

Rename

Аналогичен вызову Rename для файла

Link

Создает жесткую ссылку на файл в каталоге

Unlink

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


 

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

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

 

 

 

 

 

 

 

 

1 Существовали ОС, в которых данные на диске рассматривались как структурированные. Примером могут служить индексно-последовательные файлы в ОС ЕС (OS/360).


Информация о работе Организация хранения данных на диске