خط لوله (نرم‌افزار): تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
ویرایش دستوری
Nadergharibianfard (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
خط ۴:
 
== خط لوله چند پردازنده‌ای ==
خط لوله اغلب در یک سیستم عامل چند وظیفه‌ای، توسط همه عناصری که زمان یکسانی برای پردازش می‌خواهند اجرا و راه‌اندازی شده و به‌طور خودکار به درخواست داده‌های خوانده شده توسط هر فرایند و داده‌های نوشته شده توسط فرایند بالادست سرویس دهی می‌شود. در این روش پردازنده اصلی به‌طور طبیعی میان فرایندها توسط زمانبند تعویض می‌شود تا بتوان زمان بیکاری را به حداقل رساند. در مدل‌های رایج دیگر، عناصر به صورت ریسمان‌های بسیار کم وزن یا به عنوان coroutinesها به منظور کاهش سربار سیستم عامل اغلب با فرایندها درگیر می‌شوند. بسته به سیستم عامل، ریسمان‌ها ممکن است به‌طور مستقیم توسط سیستم عامل یا توسط مدیریت ریسمان زمانبندی شوند. Coroutinesها همواره توسط مدیر نوعی از اشکال coroutine زمانبندی می‌شوند. معمولاً، درخواست‌های خواندن و نوشتن عملیات را مسدود می‌کنند. به این معنی که توقیف منبع در دست فرایند معلق است تا زمانی که همه اطلاعات بتوانند در فرایند مقصد نوشته شوند و همچینین اجرای فرایند مقصد پس از خواندن به تعلیق افتاده تا حداقل برخی از داده‌های درخواست شده بتواند منبع فرایند را به دست‌آورد. بدیهی است، این مسئله نمی‌تواند باعث ایجاد بن‌بست شود که در آن هر دو فرایندا به‌طور نامحدود در انتظار پاسخ یکدیگر بمانند از این رو حداقل یکی از دو فرایند بزودی درخواست سرویس خود را توسط سیستم عامل اعلام می‌کند و اجرا را ادامه می‌دهد. برای اجرا، بیشتر [[سیستم‌عامل|سیستم عامل‌ها]] برای اجرای لوله از لوله‌های بافر استفاده می‌کنند که اجازه می‌دهد منابع فرایند اطلاعات بیشتری را فراهم کند تا فرایند مقصد به‌طور متداول بتواند داده را دریافت کند یا اینکه مایل به دریافت باشد. تحت بیشتر Unices یا سیستم عامل‌های شبه لینوکس دستورها ویژه‌ای در دسترس است که لوله یک بافر را اجرا می‌کنند که پیاده‌سازی یک بافر لوله به‌طور بالقوه بسیار بزرگتر و با قابلیت تنظیم اندازه است که به‌طور معمول " بافر " نامیده می‌شود. این دستور می‌تواند مفید باشد اگر فرایند مقصد به‌طور قابل توجهی کندتر از منبع فرایند باشد، اما به هر حال مد نظر است که این منبع فرایند بتواند تاحد امکان وظیفه خود را در اسرع وقت تکمیل کند. به عنوان مثال، اگر منبع فرایند شامل یک فرمان باشد که آهنگ صوتی را از روی یک سی دی را بخواند، فرایند مقصد شامل یک فرمان داده است که شکل موج‌های صوتی را به فرمت MP3 فشرده‌سازی می‌کند. در این نمونه عمل میانگیری یا بافرینگ در تمام سرعت‌ها در بافر لوله به سی دی درایو اجازه می‌دهد که سریعتر بچرخد و کاربر بتواند سی دی را از درایو پاک کند قبل از آنکه رمزگذاری فرایند به پایان رسد. چنین فرمان بافر را می‌تواند با استفاده از پیاده‌سازی اولیه سیستم عامل که موجود است برای خواندن و نوشتن اطلاعات به کار رود. انتظار بیهوده می‌تواند به وسیله‌ی استفاده از امکاناتی مانند نظرسنجی یا انتخاب یا چند ریسمانه موقوف شود.
 
== ماشین مجازی / سیستم مدیریت محتوا و MVS ==