Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Байт-ориентированные и блок-ориентированные файлы устройств



Методическое указание

к лабораторной работе

«Работа с ОС UNIX. Работа с файловой системой»

 

 

Орск 2002

 


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

 

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

Файлы содержат разные типы информации Например, файл может содержать исходный код програм­мы на С или C++, он может быть текстовым документом с письмом или исполняемым модулем программы В UNIX существует несколько "родных" форматов файлов, которые можно просмат­ривать или копировать, используя команды системы Однако некоторые файлы нельзя обработать внутрен­ними командами UNIX. Например, файлы базы данных для СУБД независимых разработчиков, таких как Oracle, требуют для обработки специальных программ.

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

Функции, которые обычно выполняются по отношению к файлу, таковы.

• Открытие файла для обработки

• Чтение данных из файла для обработки

• Запись данных в файл после обработки

• Закрытие файла после того, как вся необходимая обработка выполнена

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

Типы файлов

Регулярные файлы

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

Как UNIX узнает о записях? Существует специальный символ, называющийся символом новой строки (newline character), который используется UNIX для поиска места, где одна запись заканчивается, а другая начинается Многие команды UNIX поддерживают обработку текстов. Однако, имейте в виду, что тексто­вые файлы — не единственный тип регулярных файлов Некоторые файлы представляют собой поток бай­тов без каких-либо символов новой строки Хотя UNIX изначально была предназначена для обработки текстовых документов, она не сможет обработать такие файлы,

Ниже следуют примеры нескольких регулярных файлов:

• prog.cсодержит исходный код программы на С

• prog.exeсодержит исполняемый модуль программы.

• invite.docсодержит приглашение.

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

ls -al testfile

Результатом будет

rwxr-xr-r2 guhas staff 1012 Oct 30 18:39 testfile

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

• владелец файла;

• права доступа,

• дата и время создания, дата и время модификации, и т д.,

• тип файла.

Для временной информации в индексном дескрипторе выделено несколько полей:

• время последнего доступа;

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

• время последней модификации индексного дескриптора.

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

Файлы каталогов

Файл каталога представляет собой специальный файл, содержащий информацию о различных файлах, хранящихся в каталоге, расположение файлов, размеры файлов, время создания файлов и время модифи­кации файлов. Этот специальный файл может читать только операционная система UNIX или программа, специально написанная для обработки каталога Файл каталога необязательно просматривать, вместо этого можно использовать команды UNIX для определения атрибутов каталога. Файл каталога похож на теле­фонный каталог — он содержит адресную информацию о файлах, находящихся в каталоге. Когда вы про­сите UNIX обработать файл, система просматривает указанный каталог в поисках информации о файле В каждом каталоге всегда есть два файла:

1. . (одна точка)

2. .. (две последовательные точки)

Одна точка (.) ссылается на текущий каталог, две последовательные точки (..) ссылаются на каталог на один уровень выше (который иногда называется родительским каталогом.) Пример атрибутов каталога testdirпредставлен ниже:

drwxr-xr-x 2guhas writer 512 Oct 30 18:39 testdir

drwxr-хг-хопределяет права доступа к testdir,созданного пользователем guhas,принадлежащим к груп­пе writer.Размер записи каталога testdirсоставляет 512 байтов. Последний раз каталог был модифицирован 30 октября в 18:39.

Байт-ориентированные и блок-ориентированные файлы устройств

Байт-ориентированные файлы устройств используются для небуферированного ввода/вывода, а блок-ориентированные файлы устройств используются тогда, когда данные передаются пакетами фиксирован­ного размера.

Сокеты (Sockets)

Сокет — интерфейс прикладного программирования (API), который используется для обмена инфор­мацией между двумя компьютерами Другими словами, сокет выполняет сетевой ввод/вывод. Абстракция сокета была создана на основе файлов, но сокет не является реальным файлом Для использования сокета в программе следует создать сокет и сконфигурировать его с соответствующими адресами локального и удаленного хостов. После соединения локального сокета с сокетом на удаленном хосте программа может использовать его для обмена информацией с удаленными хостами. Кроме того, существует два способа об­мена информацией между хостами, использующими бесконтактные (connectionless) сокеты. Контактные сокеты обеспечивают передачу данных между двумя хостами, используя установленное соединение. В слу­чае бесконтактного сокета для каждой передачи должен быть специфицирован адрес места назначения, то есть обмен не ограничен двумя точками. Бесконтактный сокет можно использовать для обмена информаци­ей между любыми двумя компьютерами в сети.

Именованные каналы

Именованный канал представляет собой файл, созданный для обмена информацией между двумя про­цессами на одной машине. Посылающий процесс пишет данные в именованный канал, а принимающий процесс считывает данные из именованного канала Канал — это временный файл, который существует так долго, как долго процессы обмениваются информацией. Данные из поименованного канала обрабаты­ваются на основе алгоритма конвейера FIFO (First-in, first-out — первый пришел, первый ушел).

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.