Конвейер является средством, с помощью которого можно производить обмен данными между процессами. Принцип работы конвейера основан на следующем механизме. Задача, передающая информацию, действует так, как будто она записывает данные в файл, в то время как задача, для которой предназначается эта информация, читает ее из файла. Операции записи и чтения осуществляются не записями, как это делается в обычных файлах, а потоком байтов. Таким образом, функции, с помощью которых выполняется запись и чтение, являются теми же самыми, что и при работе с файлами. Т.е. канал представляет собой поток данных между двумя (или более) процессами. На самом деле конвейер не является файлом на диске, а представляет собой буферную память, работающую по принципу FIFO. Конвейер имеет определенный размер, который не может превышать 64 Кбайт, и работает как циклический двунаправленный список.
Как информационная структура канал описывается идентификатором, размером и двумя указателями. Конвейеры представляют собой системный ресурс. Чтобы начать работу с конвейером, процесс сначала должен заказать его у ОС и получить в свое распоряжение. Процессы, знающие идентификатор конвейера, могут через него обмениваться данными.
Конвейеры (программные каналы)
05 Мар, 2009
