Sortof, पाइपलाइन इस तरह से काम करता है: यह पहले पहले कमांड को निष्पादित करता है और फिर आपके मामले में दूसरा कमांड।
यही है, चलो A|B
आज्ञा दी गई है। फिर यह अनिश्चित है कि पहले शुरू होता है A
या नहीं B
। यदि एक से अधिक CPU हैं तो वे ठीक उसी समय शुरू हो सकते हैं। एक पाइप डेटा की एक अपरिभाषित लेकिन सीमित मात्रा में पकड़ सकता है।
यदि बी पाइप से पढ़ने की कोशिश करता है, लेकिन कोई डेटा उपलब्ध नहीं है, B
तो डेटा आने तक इंतजार करेगा। यदि B
एक डिस्क से पढ़ रहा था, B
तो एक ही समस्या हो सकती है और तब तक इंतजार करना पड़ता है जब तक कि डिस्क रीड खत्म न हो जाए। एक कीबोर्ड से एक निकट सादृश्य पढ़ा जाएगा। वहां, B
उपयोगकर्ता को टाइप करने के लिए इंतजार करना होगा। लेकिन इन सभी मामलों में, बी ने एक "रीड" ऑपरेशन शुरू किया है और इसे खत्म होने तक इंतजार करना चाहिए। लेकिन अगर B
कोई ऐसा कमांड है, जिसे A
कुछ बिंदुओं के बाद केवल आंशिक उत्पादन की आवश्यकता होती है, जहां B
एस इनपुट स्तर तक पहुंच जाता है A
, तो उसे एसआईजीपीईटी द्वारा मार दिया जाएगा
यदि A
पाइप में लिखने की कोशिश की जाती है और पाइप भरा हुआ है, तो पाइप A
के कुछ कमरे के खाली होने का इंतजार करना चाहिए। A
एक ही समस्या हो सकती है अगर यह एक टर्मिनल को लिख रहा था। एक टर्मिनल में प्रवाह नियंत्रण होता है और यह डेटा की गति को मध्यम कर सकता है। किसी भी घटना में, A
इसने एक "लिखना" ऑपरेशन शुरू किया है और तब तक प्रतीक्षा करेगा जब तक कि लेखन कार्य समाप्त नहीं हो जाता।
A
और B
सह-प्रक्रियाओं के रूप में व्यवहार कर रहे हैं, हालांकि सभी सह-प्रक्रिया एक पाइप के साथ संचार नहीं करेंगे। न ही दूसरे के पूर्ण नियंत्रण में है।
-m
तर्क है।