لوله بی‌نام

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

در علم کامپیوتر، لوله بی‌نام کانال ارتباطی ساده FIFO است که می‌تواند برای ارتباط درون شبکه‌ای یک طرفه استفاده شود. طریقه کاربرد آن اغلب به اعمال زیرمجموعه فایل IO منتهی می‌شود. عموماً برنامه مادر لوله بی نام را باز می‌کندو فرایند جدیدی را باز می‌کند که جانشین خط‌های دیگر لوله‌ها می‌شود یا اینکه فرایندهای‌های متعدد دیگری را ایجاد می‌کند و آنها را در خط لوله مرتب می‌کند. ارتباط دوطرفه کامل به دو لوله بی نام احتیاج دارد. خط لوله در بیشتر سیستم‌های رایج از یونیکس گرفته تا داس قابل اجراست.

یونیکس[ویرایش]

لوله‌های خطی بخش مهمی از عملکرد یونیکس قدیمی محسوب می‌شوند و پشتیبانی ازآنها به خوبی در سیستم‌های مشابه یونیکس اجرا شده است. لوله‌ها طوری ساخته شده‌اند که از سیستم خطی فراخوان استفاده می‌کنند. که خط جدیدی را می‌سازند و یک جفت فایل توصیف کننده که مربوط به اهداف خطی خواندن و نوشتن است تحویل می‌دهند.

برنامه‌های یونیکس قدیمی زیادی به عنوان صافی‌هایی طراحی شده‌اند که با این خط‌ها قادر به تعامل و کار کردن باشند.

مایکروسافت ویندوز[ویرایش]

لوله‌های بی نام همانند بسیاری از ابزارآلات IO,IPC در ویندوز با عملکردهای API ساخته و پیکربندی شده‌اند که مربوط به تسهیلات خاص IO هستند. در این باب تولید و ایجاد لوله مستلزم ایجاد لوله بی نامی با وسایل جداگانه برای اهداف خواندن و نوشتن است. عملکردهای خواندن و نوشتن IO در لوله با عملکرد فایل خواندن و فایل نوشتن API با تسهیلات استاندارد IO قابل اجرا هستند.

در مایکروسافت ویندوز، خواندن ونوشتن در لوله‌های بی نام همیشه مسدود است. به عبارت دیگر خواندن از یک لوله خالی باعث می‌شود در ارتباط فراخوان وقفه‌ای ایجاد شود تا حداقل یک بایت قابل دسترسی یا انتهای فایل تحویل داده شود که در نتیجه مسدود شدن عملکرد نوشتن لوله ایجاد می‌شود.

مشابه همین رخداد نوشتن در لوله پر باعث وقفه در ارتباط فراخوان می‌شود. این وقفه تا وقتی که فاصله‌ای در دسترس قرار بگیرد که اطلاعاتی در حال نوشتن را ذخیره کند ادامه می‌یابد. خواندن‌ها ممکن است با تعداد بایتهای درخواست شده کمتری برگشت داده شوند.

منابع[ویرایش]

  • Hart, Johnson M. Windows System Programming, Third Edition. Addison-Wesley, 2005. ISBN 0-321-25619-0
  • - Linux man page",from the original on 23 March 2010. Retrieved 2010-02-27.