Конвеєр (Unix)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Pipeline.svg

Конвеєр — механізм міжпроцесної взаємодії, що забезпечує конвеєрну обробку даних таким чином, коли результати обробки, отримані в одному процесі, передаються в інший і т.д.

Реалізація[ред.ред. код]

В Unix-подібних операційних системах обмін даними відбувається через неіменовані канали, які забезпечують передачу даних так, що вихідний потік кожного процесу (stdout) безпосередньо з'єднується зі стандартним потоком вводу (stdin) наступного. Програми, що використовуються у конвеєрі прийнято називати фільтрами, оскільки принцип їх роботи подібний до стосу сит, через які «просіваються» дані. Концепцію було запропоновано Дугласом Макілроєм для оболонок Unix і дано назву за аналогією зі справжніми конвеєрами.

В більшості Unix-подібних операційних системах, процеси конвеєра запускаються одночасно та їхні стандартні потоки зв'язуються, всі ці процеси плануються ядром операційної системи разом із іншими процесами. Важливою особливістю реалізації конвеєрів в Unix є застосування буферизації під час передачі даних. Завдяки буферизації, записування та зчитування даних у конвеєрі може відбуватись без звернення до зовнішніх пристроїв та із різною швидкістю, без втрати даних.

В інших операційних системах, наприклад, MS-DOS, конвеєри модулюються шляхом створення тимчасових файлів для збереження проміжних результатів. При цьому задачі (процеси) виконуються послідовно.

Створення конвеєра в командному інтерпретаторі виконується командою:

command1 [arglist1] | command2 [arlist2] 

Де: command1, command2 — команди, між процесами яких має бути забезпечена обмін даними через канал; символ '|' — оператор створення неіменованого каналу.

Кількість команд у конвеєрі синтаксично не обмежена, але такі обмеження можуть встановлюватись операційною системою або командним інтерпретатором.

Див. також[ред.ред. код]

Посилання[ред.ред. код]

Інформаційні технології Це незавершена стаття про інформаційні технології.
Ви можете допомогти проекту, виправивши або дописавши її.