Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OS_pechat.docx
Скачиваний:
13
Добавлен:
15.04.2015
Размер:
370.32 Кб
Скачать

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

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

Поддержание структуры данных может быть целиком возложено на: 1)приложение (это реальная программа). 2)саму ФС

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

Приложение формирует запросы к ФС, используя общие для всех приложений системные средства (например, указывает смещение относительно начала файла и кол-во байтов, которые необходимо считать/записать).

2) Другая модель, которая применяется в ОС: OS/360, DFC RSX, VMS, а в настоящее время используется редко – это структурированный файл.

В этом случае поддержание структуры файла поручается ФС. ФС видит файл как упорядоченную последовательность логических записей. Приложение может обращаться к ФС с запросом на В/В на уровне записей (н-р, считать запись №25 из файла FILE.DOC).

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

Развитием этого подхода стали СУБД. СУБД поддерживают не только сложную структуру данных, но и взаимосвязи между ними.

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

ФС может использовать 2 способа доступа к логическим записям:

1)последовательный доступ. 2)прямой доступ (например, позиционировать файл на запись с указанным номером)

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

Физическая организация и адресация файла

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

>Скорость доступа к данным

<Объем адресной информации о файле

<Степень фрагментированности дискового пространства

>Максимально возможный размер файла

Способы:1) Непрерывное размещение – простейший вариант физической организации файлов, при котором файл представляется как непрерывная последовательность кластеров диска, образующая непрерывный участок на диске.

1 кластер = 1-8 секторов, 1 сектор = 512 байт

Основное достоинство: высокая скорость доступа и максимально возможный размер файла. Имеет недостатки, которые ограничивают действие на практике: - Для увеличения размера файла требуется дополнительная память, и файл разбивается на части; - При удалении возникает фрагментация, и пространство диска превращается в лоскутное одеяло с маленьким объемом памяти. 2) Размещения файла в списке кластеров в дисковой памяти. При таком способе в начале каждого кластера содержится указатель на начало следующего. В этом случае адресная информация минимальна, т.к. информация о файле задана числом, указывающим адрес следующего кластера, и каждый кластер может быть присоединен к любому кластеру какого-либо файла, и поэтому фрагментация на уровне кластеров отсутствует. Файл может наращивать свой размер, наращивая число кластеров. Недостаток: сложность реализации доступа к произвольно заданному месту файла. 3) Таблица размещения файлов (FAT - “File Allocation Table”).

Использование связанного списка индексов. Этот способ – модифицирование размера файла в списке кластеров. Для файла выделяется память в виде связанного списка кластеров, номер первого кластера запоминается в записи каталога, где хранятся другие характеристики этого файла (с каждым кластером диска связан индекс). Индексы расположены в отдельной области диска. Для MS DOS – таблица FAT, занимающая один кластер.

4) Задание файла размещения. Файл на диске задается в простом перечислении кластеров файла. Недостатки: длина адреса зависит от размера файла. Для больших файлов он может быть значительно больше. Достоинства: - высокая скорость доступа к произвольному кластеру файла (прямая адресация исключает просмотр цепочки указателей при поиске произвольной записи файла). - Фрагментация на уровне файлов отсутствует. Последний подход с некоторыми модификациями используется в традиционных системах типа UNIX.

2.Командный интерпретатор Shell

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

Большинство современных shell обладают рядом дополнительных возможностей: удобное редактирование командной строки, история вводимых команд и т.д. В Linux известно большое количество shell’ов.

Самыми популярными являются:

bash - Bourne Again Shell,

csh - C Shell,

ksh - Korn Shell.

Аналогом shell в операционной системе MS-DOS является COMMAND.COM.

Оболочка Bourne Again Shell запускается командой bash, C Shell командой csh, Korn Shell командой ksh.

Когда пользователь входит в систему, указывая свой пароль, автоматически запускается shell.

Большинство оболочек закрываются путем ввода спец. команд logout, exit, bye или quit (одна из них действует всегда). При выполнении команды система возвращается к исходному состоянию, т.е. выдается запрос имени пользователя и пароля.

Ввод и вывод команд

Командная оболочка сохраняет команды, которые вы набирали ранее, в так называемой истории команд (command history), в файле с названием .bash_history, который расположен в домашнем каталоге. Для извлечения команд из истории команд, следует использовать клавиши ( вверх ) и ( вниз ).

Командная оболочка bash может сохранить до 1000 команд.

Стандартные ввод и вывод

Каждая команда получает в свое распоряжение от shell три канала: Стандартный ввод ( stdin ). По этому каналу вводятся данные в программу. Стандартный вывод ( stdout ). По этому каналу выводятся данные.

Стандартный вывод ошибок ( stderr ). По этому каналу программы выдают информацию и наличие ошибок.

Обычно все эти каналы связаны с монитором и клавиатурой.

Изменение направления ввода и вывода данных

Согласно принципам работы Linux, стандартный ввод можно переназначить. Например: prog < file. Символ < говорит, что стандартный ввод для программы prog переназначается, и данные будут браться не с клавиатуры терминала, а из файла file. Переназначение стандартного вывода: prog > file .Т. е. выводимые данные перенаправляются в файл file. При этом исходное содержание файла file заменяется.

Конвейеры команд

Стандартный вывод одной команды может быть стандартным вводом следующей команды. Обозначается знаком | (вертикальная черта). Последовательность команд, соединённых таким образом, называется конвейером.

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