Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОПЕРАЦИОННЫЕ СИСТЕМЫ И ОБОЛОЧКИ.doc
Скачиваний:
46
Добавлен:
21.09.2019
Размер:
799.74 Кб
Скачать

6.3.2. Подсистема ввода/вывода

В ОС UNIX команды ввода/вывода, применяемые к файлам и физическим

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

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

устройства программу. Стандартные файлы ввода и вывода, приписываемые

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

Система ввода/вывода ОС UNIX, в отличие от большинства систем, ориентирована

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

заканчивающаяся разделителем. Понятие потока позволяет проще добиться

независимости от устройств и унификации файлов с физическими устройствами и

конвейерами.

56

6.3.3. Перенаправление ввода/вывода

Механизм перенаправления ввода/вывода является одним из наиболее элегантных,

мощных и одновременно простых механизмов в ОС UNIX. Для того чтобы обеспечить

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

файла или из вывода других программ и направить их вывод в файл или на ввод других

программ.

Реализация этого механизма основана на следующих свойствах ОС UNIX:

- любой ввод/вывод трактуется как ввод из некоторого файла и вывод в

некоторый файл. Клавиатура и монитор тоже интерпретируются как файлы;

- доступ к любому файлу производится через его дескриптор:

o файл с дескриптором 1 называется файлом стандартного ввода (stdin);

o файл с дескриптором 2 называется файлом стандартного вывода (stdout);

o файл с дескриптором 3 называется файлом стандартного вывода

диагностических сообщений (stderr);

- программа, запущенная в некотором процессе, наследует от породившего

процесса все дескрипторы открытых файлов.

Файл стандартного ввода клавиатура, файлы стандартного вывода и вывода

диагностических сообщений экран терминала.

При запуске любой команды можно сообщить интерпретатору:

- какой файл или вывод какой программы должен служить файлом стандартного

ввода для запускаемой программы:

- какой файл или ввод какой программы должен служить u1092 файлом стандартного

вывода;

- какой файл или ввод какой программы должен служить файлом вывода

диагностических сообщений.

Все, что требуется для нормального функционирования механизма перенаправления

ввода/вывода, - придерживаться соглашения об использовании дескрипторов stdin, stdout

и stderr.

6.4. Файловая система

Файл в ОС UNIX – множество символов с произвольным доступом. В файле

содержатся произвольные данные, помещенные туда пользователем и ничего более.

6.4.1. Структура файловой системы

Информация на дисках размещается поблочно, по 512 байт в каждом блоке, блок

равен сектору. Диск разбивается на следующие области:

- неиспользуемый блок;

- управляющий блок или суперблок, в котором содержится размер диска и

границы других областей;

- i-список, состоящий из описаний файлов, называемых i-узлами;

- область для хранения содержимого файлов.

Каждый i-узел содержит:

- идентификационный номер владельца;

- идентификационный номер группы владельцев;

- права доступа;

- физические адреса на диске, где находится содержимое файла;

57

- размер файла;

- время создания файла;

- время последней модификации файла;

- время последнего изменения атрибутов;

- число ссылок на файл;

- тип файла: каталог, обычный файл или специальный файл.

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

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

свободных блоков.