سیستم‌عامل بی‌درنگ

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

سیستم‌عامل بی‌درنگ نوعی سیستم‌عامل است که در آن، زمان، پارامتر کلیدی است. برای مثال در سیستم‌های کنترل فرایند، رایانه‌های بی‌درنگ باید داده‌های فرایند تولید را جمع‌آوری کرده و به کمک آن ماشین‌های داخل کارخانه را کنترل کنند. خیلی اوقات باید فرجه زمانی (deadline) به‌طور دقیق برآورده شود؛ یعنی باید کارها در لحظات خاصی از زمان انجام گیرد. برای مثال اگر یک خودرو در خط مونتاژ در حال حرکت باشد و ربات جوشکاری خیلی زود یا خیلی دیر جوش دهد، خودرو خراب خواهد شد.[۱]

زمانی از یک سیستم بی‌درنگ استفاده می‌شود که لازم باشد عملیات پردازنده یا جریان داده در زمان کاملاً مشخصی انجام شود؛ بنابراین یک سیستم بی‌درنگ اغلب به‌عنوان ابزار کنترلی در یک کاربرد خاص استفاده می‌شود. سیستم‌هایی که آزمایش‌های علمی را کنترل می‌کنند، سیستم‌های تصویربرداری پزشکی، سیستم‌های کنترل صنعتی، و نیز برخی از موتورهای انژکتوری در خودرو، کنترلرهای لوازم خانگی و سیستم‌های جنگ‌افزاری، سیستم‌های بی‌درنگ هستند. این سیستم‌ها برای آنکه به‌درستی کار کنند باید پاسخ درست را در فرجه زمانی از پیش تعیین شده بازگردانند در صورتی که در سیستم‌های اشتراک زمانی مطلوب است (ولی اجباری نیست) که سریع پاسخ دهند.[۲]


فلسفه طراحی[ویرایش]

  • طراخی بر اساس اولویت ـ در این طراحی تنها زمانی وظیفه ای تعویض می‌شود که وظیفه ای با اولویت بالاتر درخواست دهد، به این نوع طراحی را اولویت اولیه نیز می‌نامند.
  • طراحی اشتراک زمانی ـ در این طراحی وظیفه بر اساس وقفه ساعت تعویض می‌شود که در رویدادها Round Robin نامیده می‌شود.

‫‬مشخصات سیستم عامل‌های بلادرنگ[ویرایش]

سیستم عامل‌های بلادرنگ را می‌توان با داشتن ملزومات یگانه در پنج حوزه عمومی زیر، مشخص نمود:
  • قطعی بودن
  • پاسخ دهی
  • کنترل کاربر
  • قابلیت اطمینان
  • نرمش با خطا

سیستم عاملی قطعی است که عملیات خود را در زمان‌های ثابت یا فواصل زمانی از پیش تعیین شده انجام دهد. وقتی چند فرآیند در رقابت برای منابع و زمان پردازنده هستند، هیچ سیستمی نمی‌تواند قطعی باشد. در یک سیستم بلادرنگ ، درخواست‌های فرآیند برای خدمت توسط رخدادها،اولا به سرعتی که می‌تواند به وقفه‌ها پاسخ دهد وثانیا به اینکه آیا سیستم ظرفیت کافی برای اداره تمام درخواست‌ها، در زمان معلوم را دارد یا خیر، وابسته است. یک معیار مفید برای قابلیت عملکرد قطعی سیستم عامل، حداکثر تاخیر از زمان ورود یک وقفه دستگاه با اولویت بالا، تا زمان شروع خدمت است. در سیستم عامل‌های غیربلادرنگ این تاخیر ممکن است در محدوده ده تا صدها میلی ثانیه باشد، در حالی که در یک سیستم عامل بلادرنگ ممکن است این تاخیر حد بالایی از حدود چندمیکرو ثانیه تا یک میلی ثانیه باشد. یک مشخصه مربوط ولی مجزا، پاسخ دهی است.قطعی بودن درباره این است که سیستم عامل قبل از تصدیق، چه مدت صرف خدمت دادن به وقفه می‌نماید. قطعی بودن و پاسخ دهی به همراه هم،زمان پاسخ به رخدادهای خارجی را تعیین می‌کنند ویژگی زمان پاسخ در سیستم‌های بلادرنگ بسیار حساس است، زیرا چنین سیستم‌هایی باید نیازهای زمانی اعمال شده توسط افراد، دستگاه‌ها و جریان داده‌ها در خارج از سیستم را رعایت کنند. عموما کنترل کاربر در یک سیستم بلادرنگ بسیار وسیع تر از کنترل کاربرد در سیستم عامل عادی است.در سیستم عامل‌های عادی کاربر یا هیچ گونه کنترلی بر عمل زمان بندی ندارد رهنمودهای کلی ارائه کند ولی در یک سیستم بلادرنگ لازم است به کاربر اجازه کنترل دقیق اولویت وظیفه داده شود و بتواند میان وظیفه‌های سخت و نرم تفاوت قائل شود. قابلیت اطمینان نوعا در سیستم‌های بلادرنگ بسیار مهم تر از سیستم‌های عادی است. یک خرابی گذرا در سیستم بلادرنگ ممکن است تا تعمیر یا تعویض، منجر به سطح خدمت پایین تر گردد.ولی در سیستم بلادرنگ که در حال پاسخ دهی و کنترل رخدادها در زمان حقیقی است، از دست رفتن با کاهش کارآمدی یک پردازنده می‌تواند عواقب فاجعه آمیزی داشته باشد.

زمان بندی[ویرایش]

بطور کلی وظایف یک دستگاه، سه حالت دارند:

  • آماده اجرا – وقتی وظیفه ای تمام منابع و پیش فرض‌های لازم برای اجرا را دارد اما هنوز اجرا نشده‌است، آماده اجرا نام می‌گیرد. درواقع این حالت نقطه شروع قبل از اجرا می‌باشد.
  • در حال اجرا – این حالت به وظایفی اطلاق می‌شود که در حال انجام و پیاده سازی هستند.
  • مسدود – وقتی یک وظیفه منابع و پیش فرض‌های کافی برای اجرا را در اختیار نداشته باشد، در حالت مسدود قرار می‌گیرد.

الگوریتم‌ها[ویرایش]

برخی از الگوریتم‌های RTOS عبارتند از :

  • زمان‌بندی همکارانه
  • زمان‌بندی پیشگرانه
  • برنامه‌ریزی نرخ مونوتیک
    • زمان‌بندی نوبت گردشی
    • زمان‌بندی پیشگیرانه اولویت اولی، پیاده‌سازی پیشگیرانه
    • Fixed-Priority Scheduling with Deferred Preemption
    • Fixed-Priority Non-preemptive Scheduling
    • Critical section preemptive scheduling
    • Static time scheduling
  • Earliest deadline first approach
  • Stochastic Directed graph with multi-threaded graph traversal

ارتباطات میان‌وظیفه‌ای و به اشتراک گذاری منابع[ویرایش]

سیستم عامل بلادرنگی بر پایه Unix که توسط شرکت LynuxWorks ارائه می شود. این سیستم عامل منطبق با استاندارد POSIX و سازگار با Linux باشد و دارای ویژگی چند نخی است و برای کاربرد های بلادرنگ پیجیده ای که نیاز به پاسخگویی های سریع و قطعی دارند، طراحی شده است. این سیستم عامل اساساً در سیستم های جاسازی شده بلادرنگ، در کاربرد هایی مانند ارتباطات فضایى و فضانوردی، سیستم های نظامی، کنترل فرایند تولید و مخابرات استفاده می شود. این سیستم عامل دارای 512 سطح الویت می باشد.

وقفه موقتی/ غیر فعال کردن وقفه ها[ویرایش]

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

  1. Tanenbaum, Andrew S (۲۰۰۸). "Chapter 1, Introduction". Modern Operating Systems (۳ ed.). Pearson/Prentice Hall. p. ۳۴. ISBN 978-0-13-600663-3.
  2. Silberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg (۲۰۱۳). "Chapter 1, Introduction". Operating System Concepts (۹ ed.). .John Wiley & Sons, Inc. p. ۴۳. ISBN 978-1-118-06333-0.