مقدمه
برای آشنایی با سیستم عامل بلادرنگ (Real-time) بهتر است ابتدا با وظیفه سیستم عاملهای معمولی آشنا شویم و سپس به بررسی سیستمعاملهای بلادرنگ بپردازیم.
به زبان ساده، هر کامپیوتر متشکل از تعدادی قطعات سختافزاری است که هر کدام از این قطعات وظیفه معینی را برعهده دارند. به منظور دستیابی به بهترین بهرهوری از عملکرد این سختافزارها، نیاز است توسط یک سیستم مرکزی، وظایف مورد انتظار از هر سختافزار با توجه به نیاز کاربر در هر زمان مدیریت شود. برای مثال، زمانی که یک کاربر در حال انجام محاسبات گرافیکی است، کارت گرافیک باید حجم پردازش بیشتری را در مقایسه با سایر زمانها انجام دهد. وظیفه سیستم عامل ایجاد این هماهنگیها بین سختافزارهای کامپیوتر با توجه به نیاز کاربر است.
ارتباط سیستم عامل و سخت افزار
مهمترین وظایف یک سیستم عامل
یک سیستم عامل (OS) چندین عملکرد ضروری را برای اطمینان از عملکرد روان کامپیوترها و دستگاهها انجام میدهد:
- مدیریت حافظه: تخصیص حافظه (RAM) به برنامهها یکی از مهمترین وظایف سیستم عامل است. بهخصوص اینکه با پیشرفت کامپیوترها، امروزه عموماً در هر کامپیوتر همزمان چند برنامه با هم در حال اجرا هستند.
- مدیریت پردازنده: زمان و منابع CPU را مدیریت میکند.
- مدیریت دستگاه: سیستم عامل وضعیت دستگاههایی که به کامپیوتر متصل هستند (مانند موس، صفحهکلید، پرینتر و غیره) را در هر لحظه ردیابی میکند و منابع پردازشی و حافظهای لازم را در اختیار این تجهیزات قرار میدهد.
- مدیریت فایل: سیستم عامل کارهایی مانند ساخت، حذف، جابجایی و ذخیره فایلها را انجام میدهد و در عین حال آنها را ایمن نگه میدارد.
- مدیریت ذخیرهسازی: سیستم عامل به فایلها و دایرکتوریها دسترسی پیدا کرده و آنها را سازماندهی میکند، استفاده از دستگاه ذخیرهسازی را بهینه میکند و بازیابی کارآمد دادهها را تضمین میکند.
- امنیت: سیستم عاملها از فایروالها و سایر اقدامات امنیتی برای جلوگیری از دسترسی غیرمجاز و نظارت بر فعالیتهای سیستم به منظور جلوگیری از تهدیدات استفاده میکنند.
- نظارت بر عملکرد: سیستمعامل تمام فعالیتهای سیستم، از جمله استفاده از منابع و خطاها را ردیابی میکند تا اطمینان حاصل کند که سیستم به طور موثر کار میکند.
- تشخیص خطا: سیستمعامل به طور مداوم خطاها و تهدیدات را اسکن میکند، از سیستم محافظت میکند و به کاربران در مورد مشکلات احتمالی هشدار میدهد.
- هماهنگی نرمافزار و کاربر: سیستمعامل تضمین میکند که سختافزار و نرمافزار برای تعامل بهینه با کاربر به خوبی با هم کار میکنند.
انواع سیستم عاملها
با توجه به تنوع نیازهای امروزی، سیستمعاملها حالت تخصصی پیدا کردهاند و انواع مختلفی توسعه یافتهاند. در اینجا خلاصهای از انواع مختلف سیستم عاملها آورده شده است:
1. سیستم عامل دستهای (Batch Operating System)
در سیستم عاملهای دستهای، وظایف به دستههای مختلفی دستهبندی میشوند و سیستم عامل آنها را به صورت متوالی و سکانس به سکانس اجرا میکند. کاربرهای سیستمهای عامل Batch به طور مستقیم تعاملی با کامپیوتر ندارند. مثال: کامپیوترهای IBM اولیه.
2. سیستم عامل زمان اشتراکگذاری (Time-Sharing Operating System)
این سیستم عاملها این امکان را میدهند تا چندین کاربر به طور همزمان یک کامپیوتر دسترسی داشته باشند. در این سیستمعاملها، وظایف ارسال شده به سختافزارها با سرعت تغییر میکند تا همزمان چند کاربر امکان استفاده از یک کامپیوتر را داشته باشند.
تفاوت سیستمعاملهای Time-Sharing و Batch در این است که در سیستمعاملهای Time-Sharing هدف اصلی مینیمم کردن زمان پاسخدهی است، در حالی که در سیستمهای Batch هدف اصلی حداکثر کردن استفاده از ظرفیت پردازنده است.
مزیت سیستمهای عامل اشتراک زمانی به صورت زیر است:
- مزیت پاسخدهی سریع
- جلوگیری از تکرار نرمافزار
- کاهش زمان بیکاری پردازنده
معایب سیستمهای عامل اشتراک زمانی به صورت زیر هستند:
- مسئله خوانایی
- بحث امنیت و یکپارچگی برنامهها و دادههای کاربران
- مسئله ارتباط داده
مثالی از این سیستمعامل: یونیکس.
3. سیستم عامل توزیعی (Distributed Operating System)
گروهی از رایانههای مستقل را مدیریت میکند بهطوری که آنها را به عنوان یک سیستم واحد در نظر کاربران نشان میدهد. مثال: آپاچی هادوپ (Apache Hadoop).
4. سیستم عامل بلادرنگ (RTOS)
سیستم عامل بلادرنگ (Real-time Operating System) یا به اختصار RTOS، یک سیستم عامل تخصصی است. هدف از ساخت RTOSها انجام وظایف در زمانهای دقیق است. یک سیستم عامل بلادرنگ تضمین میکند که وظایف مورد نظر حتما در زمانهای مورد نظر اجرا شوند. این ویژگی باعث میشود تا در برنامههایی که زمانبندی در آنها حیاتی است، RTOSها نقشی کلیدی داشته باشند.
بنابراین میتوان ویژگیهای یک سیستم عامل بلادرنگ را به صورت زیر عنوان کرد:
- رفتار قطعی: RTOS تضمین میکند که وظایف محول شده در زمانهای تعیین شده دقیقاً تکمیل میشوند. این ویژگی برای برنامههایی مانند اتوماسیون صنعتی، روباتیک و هوافضا بسیار مهم است.
- تأخیر کم: RTOS تأخیر وقفه و تأخیر سوئیچینگ رشته را به حداقل میرساند و پاسخ سریع به رویدادها را تضمین میکند.
- اولویتبندی کارها: وظایف بر اساس اولویت اجرا میشوند و اطمینان حاصل میشود که وظایف با اولویت بالا در ابتدا انجام شوند.
- ماژولاریت: RTOS را میتوان برای برآوردن نیازهای خاص سفارشیسازی و مقیاس کرد.
سیستمهای عامل بلادرنگ سخت
سیستمهای بلادرنگ سخت تضمین میکنند که وظایف حیاتی در طی زمان معینی پایان مییابند. در سیستمهای بلادرنگ سخت، درایوهای ذخیرهسازی ثانویه محدود هستند یا کلاً وجود ندارند و دادهها در ROM ذخیره میشوند.
برای مثال، فرض کنید در فرآیند پرتاب یک فضاپیما، مخزنهای سوخت باید دقیقاً در زمان مشخصی از بدنه فضاپیما جدا شوند. در صورتی که این اتفاق به هر دلیلی نیافتد، وزن مخازن باعث میشود سرعت فضاپیما کاهش یابد و با سرعت مناسب وارد مدار خارج از جو نشود. در چنین شرایطی از سیستمعاملهای بلادرنگ استفاده میشود.
سیستمهای عامل بلادرنگ نرم
سیستمهای بلادرنگ نرم محدودیتهای کمتری دارند. در این سیستمها، یک وظیفه حیاتی نسبت به وظایف دیگر اولویت مییابد و این اولویت را تا زمانی که به پایان نرسیده است حفظ میکند. سیستمهای بلادرنگ نرم کاربر کمتری نسبت به سیستمهای بلادرنگ سخت دارند. برای نمونه، پروژههای چندرسانهای، واقعیت مجازی و پروژههای علمی پیشرفته مانند کاوش زیردریا و روباتهای کاوشگر فضایی مواردی از کاربردهای این سیستمها هستند.
شرکت NI نیز با توجه به کاربرد محصولاتش در صنایع پیشرفته تحقیقاتی و صنعتی، یک سیستم عامل بلادرنگ با نام LabVIEW Real-time تحت لینوکس توسعه داده که در صورت خواست خریدار بر روی کنترلرهای PXI آن استفاده میشود. در این مقاله میتوانید با تجهیزات PXI و تاریخچه آن بیشتر آشنا شوید.