Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Unix лекции / lection4.ppt
Скачиваний:
14
Добавлен:
20.04.2015
Размер:
340.99 Кб
Скачать

Каналы

Каналы позволяют передавать данные между процессами в порядке поступления ("первым пришел - первым вышел"), а также синхронизировать выполнение процессов. Их использование дает процессам возможность взаимодействовать между собой

Неименованные

pipe(fdptr)

Именованные

open

Каналы

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

Процессы открывают поименованные каналы так же, как и обычные файлы

Канал следует рассматривать под таким углом зрения, что процессы ведут запись на одном конце канала, а считывают данные на другом

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

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

Каналы

запись в канал, в котором есть место для записи данных;

чтение из канала, в котором достаточно данных для удовлетворения запроса на чтение;

чтение из канала, в котором данных недостаточно;

запись в канал, где нет места для записи.

Пример использования каналов

Монтирование

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

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

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

Системная функция mount (монтировать) связывает файловую систему из указанного раздела на диске с существующей иерархией файловых систем, а функция umount (демонтировать) выключает файловую систему из иерархии

Монтирование

mount(special pathname,directory pathname,options)

mount("/dev/dsk1","/usr",0);

Таблица монтирования:

Ядро поддерживает таблицу монтирования с записями о каждой монтированной файловой системе

номер устройства, идентифицирующий монтированную файловую систему (упомянутый выше логический номер файловой системы);

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

указатель на корневой индекс монтированной файловой системы ("/" для файловой системы с именем "/dev/dsk1" на Рисунке 5.22);

указатель на индекс каталога, ставшего точкой монтирования

Монтирование

umount(special filename)

Ссылки

link(source file name, target file name)

unlink(pathname)

Целостность файловой системы

1)

Освобождение

1)

Освобождение

 

блоков

 

индекса

2)

Освобождение

2)

Освобождение

 

индекса

 

блоков

Соседние файлы в папке Unix лекции