سیستم های بلادرنگ – قسمت ۱ – مقدمه

اگر مقاله قبلی سایت مرتبط با سیستم های نهفته را مطالعه کرده باشید در آن مقاله اشاره ای مختصر به بحث سیستم های بلادرنگ شد. در آنجا توضیح دادیم که بسیاری از سیستم های کنترل الزامات بلادرنگ دارند و باید علاوه بر تولید خروجی صحیح باید این کار را در مهلت زمانی مشخصی انجام دهند درغیر این صورت بسته به نوع سیستم یا کیفیت سرویس دهی سیستم نزول می کند یا خروجی سیستم کم اثر یا بی اثر می شود یا حتی بدتر ممکن است خطرات مالی و جانی در پی داشته باشد.
عموما اینگونه تصور می شود که افزایش سرعت و عملکرد پردازنده ها و سیستم های کامپیوتری (قانون موور – Moore’s law) تمامی مشکلات از جمله مشکلات بلادرنگ را حل می کنند. اما کاربردهای عملی نشان داد که پردازنده سریع تر الزاما قادر به پاسخدهی بلادرنگ نیست. جان ای آستانکویچ محقق موسسه تحقیقات دفاعی آمریکا(IDA) در مقاله ای با عنوان ” باورهای غلط در مورد پردازش بلادرنگ” به همین موضوع اشاره می کند که به کارگیری پردازدش موازی موجب بهبود راندمان و بازدهی سیستم می شود اما به صورت اتوماتیک الزامات بلادرنگ را بر طرف نمی کند. به عبارت دیگر پردازش سریع با پردازش بلادرنگ متفاوت است. در پردازش سریع هدف به حداقل رساندن زمان پاسخ دهی متوسط (Average Response Time) و حداکثر رساندن بازدهی(Throughput) اجرای مجموعه دستورات معینی است.
اما در پردازش بلادرنگ هدف برطرف کردن نیاز بلادرنگ و زمانی تک تک این دستورات است. بنابراین مهمترین خصوصیت سیستم بلادرنگ قابل پیش بینی بودن آن است. این به آن معناست که عملکرد و زمانبندی سیستم باید تا حد امکان قطعی و دقیق باشد تا مشخصات فنی سیستم را برآورده کند. پردازش سریع می تواند در این مسیر راه گشا باشد اما برای تضمین عملکرد بلادرنگ سیستم کافی نیست. این نکته را نیز نباید از یاد برد که در تمامی سیستم های نهفته یا کاربرد عمومی موضوع زمان بندی و تولید نتایج مطلوب در زمان قابل قبول توسط سیستم اهمیت بسزایی دارد. با این تفاسیر تمامی سیستم ها به شکلی یا شکل دیگر باید سر وقت کار کنند یا به عبارت دیگر بلادرنگ هستند. این مقدمه کوتاه خود اهمیت بررسی جداگانه سیستم های بلادرنگ را در سیستم های نهفته و علم کامپیوتر نشان می دهد.
تقسیم بندی سیستم های بلادرنگ
سیستم های بلادرنگ در حالت کلی به ۳ دسته تقسیم می شوند.
- سیستم های نرم (Soft Real-time)
- سیستم های مقاوم (Firm Real-time)
- سیستم های سخت (Hard Real-time)
برای درک بهتر این تنوع در سیستم های بلادرنگ از تابعی با نام تابع مقدار زمانی می توان استفاده کرد. در شکل ۱ این موضوع نشان داده شده است. این تابع وضعیت مقدار خروجی یک سیستم را در زمان های مختلف نشان می دهد. در این تابع نقطه ای از زمان به عنوان مهلت انجام کاری توسط سیستم مشخص می شود و بسته به نوع سیستم مقدار خروجی بعد از این مهلت به خود مقادیر مختلفی می گیرد.

در سیستم های نرم اگر سیستم خروجی لازم را تا مهلت معین تولید نشود کیفیت سرویس دهی سیستم به تدریج کاهش می یابد تا این در نهایت به صفر می رسد. این تعریف نشان می دهد که از دست دادن مهلت انجام کار در سیستم های نرم فاجعه بار نیست. به عنوان مثال یک کنسول بازی ویدیویی را در نظر بگیرد. اگر سرعت اجرای بازی یا سرعت دریافت ورودی از کنترلر و ارایه خروجی تصویر با سرعت قابل قبول برای بازیکن هماهنگ نباشد موجب نارضایتی وی می شود. مثال های دیگر پخش آنلاین ویدیو یا صوت است. در تمامی این سیستم ها تا اندازه ای تاخیر و از دست دادن مهلت قابل قبول است و در بدترین حالت به صفر رسیدن ارزش سرویس دهی سیستم خطری متوجه کاربر نمی کند یا به سیستم آسیب نمی زند.
اما در سیستم های مقاوم ارزش خروجی با از دست رفتن مهلت زمانی صفر می شود. به عبارت دیگر بعد از این زمان تفاوتی نمی کند که سیستم چطور کار کند و چه خروجی تولید کند و دیگر این خروجی ارزشی ندارد. اما باز هم در این صورت خسارت و آسیبی متوجه سیستم یا کاربر نمی شود. از نمونه این سیستم ها می توان سیستم های موقعیت یابی مبتنی بر GPS ذکر کرد. مثلا اگر موقعیت جغرافیایی یک خودرو به موقع توسط GPS دریافت نشود و خودرو جا به جا شود در نتیجه موقعیت دریافتی غلط و بی استفاده می شود.
در سیستم های سخت از دست رفتن مهلت مقرر زمانی به هیچ وجه مجاز نیست چرا که ممکن است به خسارت مالی و جانی هنگفتی منتهی شود. به عنوان نمونه یک راکتور اتمی را در نظر بگیرید. اگر راکتور به دلیل از دست دادن یم زمان مهم از کنترل خارج شود و انفجار هسته ای رخ دهد تا فاصله چند صد کیلومتری موج انفجار و پرتوهای رادیواکتیو ناشی از آن پخش می شود. یا به عنوان نمونه دیگر یک هواپیما مسافربری را مد نظر بگیرید که به دلیل نقص نرم افزاری در زمان فرود دچار سانحه شود. در همه این مثال ها در صورت تخطی سیستم از زمانبندی بلادرنگ نه فقط سیستم نابود و بلااستفاده می شود بلکه ممکن است خسارت مالی و جانی بزرگی در پی داشته باشد.
سیستم های سخت همان سیستم های ایمنی بحرانی(Safety-Critical) هستند. این سیستم ها باید به صورت ایمن به خطا(Fail-Safe) طراحی شوند. به عبارتی در صورت بروز خطاهای بحرانی سیستم بتواند مانع از آسیب شود یا میزان آسیب را به حداقل برساند. ایمن به خطا بودن به این معنی نیست که در سیستم خرابی بروز نمی کند بلکه در صورت وقوع خطا، سیستم از عواقب مخرب آن می کاهد یا آنرا خنثی می کند. اگر یک چنین سیستمی خراب شود حداقل به میزان قبل از خراب شدن ایمن باقی می ماند. به منظور ارتقاء قابلیت اطمینان و قابلیت دسترسی سیستم های سخت از روش های مختلفی استفاده می شود که معروفترین آنها افزونگی(Redundancy) وتحمل خطا(Fault Tolerance) هستند. بحث ایمنی عملکردی (Functional Safety)بحث مفصلی است که در سری مقالاتی جداگانه به آن خواهیم پرداخت.
منابع
- Real-time computing – Wikipedia
- Real-Time systems by Jane W. S. Liu
دیدگاهتان را بنویسید