مقدمه ای بر سیستمهای نهفته و بلادرنگ
- + علم و تکنولوژی
- 28 آذر 1402
- ميثم اللهي رودپشتي
- 0 دیدگاه
- 248 بازدید
- 16 دقیقه
سیستم بلادرنگ[1] یا زمان-واقعی چیست؟
بیشتر نرم افزارهایی که تا به امروز استفاده شدهاند تعاملی[2] بودهاند. به این معنی که به دستورهای کاربران[3] خود پاسخ[4] می دهند. نرم افزار تعاملی همیشه در معرض تاخیر است. ممکن است برای همه ما هنگام کار با کامپیوتر چنین احساسی پیش آمده باشد که یک کلیک موس یا فشردن کیبرد پاسخ مورد نظر را در زمان مورد انتظار ندهد در این صورت معمولا دوباره درخواست خود را تکرار می کنیم ( کلیک مجدد انجام داده یا کیبرد مجدد فشرده می شود) و پس از یک زمان کوتاهی خواهیم دید که درخواست ها پشت سر هم پاسخ داده می شوند. مثلا چند فایل همزمان باز می شوند. چنین سیستمهایی را به شرح زیر تعریف میکنیم:
تعریف: سیستمهای همه منظوره[5] (سخت افزار و نرم افزار) اجزای اصلی سیستم کامپیوتری هستند که عملیات در آنها مشمول محدودیت کارایی نمیشوند. ممکن است مشخصات پاسخ مطلوب وجود داشته باشد، اما مهلت زمانی سخت[6] و پیامدهای مضر شاید غیر از کیفیت پایین سرویس در مقابل پاسخ طولانی نداشته باشند. یعنی اگر پاسخ سیستم طولانی باشد به کسی و جایی آسیب نمی رسانند و فقط کیفیت سرویس را پایین میآورند. در مقابل سیستمهای بلادرنگ با مانیتور، تعامل، کنترل و یا پاسخ به محیط فیزیکی مربوط می شوند. رابط از طریق سنسورها، سیستمهای ارتباطی، محرکها[7] و سایر وسایل ورودی و خروجی است.
در چنین شرایطی لازم است که به موقع به درخواستهای ورودی پاسخ دهیم. تاخیر میتواند خطرناک یا فاجعه بار باشد. در چنین شرایطی سیستم بلادرنگ (زمان-واقعی) به صورت زیر تعریف می شود:
1-زمانی که در آن یک پاسخ رها می شود به اندازه درستی[8] آن پاسخ مهم است. اگه دیر جواب بدی حتی اگر درست هم باشد قبول نمیکنم)
2-پیامدهای پاسخ دیرهنگام به همان اندازه پیامدهای پاسخ نادرست خطرناک است. (دیر فرستادی ای کاش هرگز نمی فرستادی)
آن الزاماتی[9] که توصیف می کنند که یک سیستم چگونه به مجموعه ای از ورودیهای مشخص (هم از سنسورها و هم از پیام های دریافتی از سیستم های ارتباطی) پاسخ دهد ، با توجه به وضعیت فعلی سیستم و خروجی های مورد انتظار (سیگنال ها و پیام هایی که از طریق سیستم های ارتباطی به محرکها ارسال می شوند) و تغییرات وضعیت سیستم به عنوان الزامات عملکردی[10] توصیف میشود. سایر نیازمندهای به عنوان نیازمندهای غیرعملکردی[11] شناخته می شوند مانند ایمنی، کارایی، امنیت و... که در جدول یک آمده است.
نیازمندی های غیر عملکردی | توصیف | مثال |
ایمنی Safety
| با پاسخهای عملیاتی سیستم که از آمدن آسیب به سیستم جلوگیری و محافظت می کند مربوط میشود. | مشخص شده است که افزایش دمای موتور با کاهش دنده موتور (throttle) مربوط میشود اگر این افزایش دما در مدت 5 ثانیه تشخیص داده شود می توان با کاهش دنده موتور مقابله نمود. لذا اگر حداقل در هر 2.5 ثانیه سنسور دما بررسی شود، حتی در بدترین حالت، دما برای بیش از 5 ثانیه از حد بحرانی فراتر نمی رود. |
کارایی Performance | با زمان پاسخ یا توان عملیاتی لازم برای محافظت سیستم از آسیب یا سایر پیامدهای غیر مطلوب مرتبط می شود. | ممکن است لازم باشد که یک سیستم مهار آتش در فاصله 10 میلی ثانیه پس از تشخیص شدت نور 95 درصدی فعال شود و یا ممکن است که لازم باشد یک پهباد 10 ورودی 10 سنسور را در مدت یک ثانیه پردازش نماید که از جمله آنها پردازش فریمهای ویدئویی است. |
تحمل پذیری اشکال Fault tolerance | توانایی محافظت سیستم در برابر انواع مختلف اشکال | یک پهپاد کوادکوپتر که حتی در صورت خرابی یکی از چهار موتور آن قادر به ادامه پرواز باشد ، نسبت به موتوری که به محض خرابی یکی از موتور از کار می افتد ، مقاومت بیشتری در برابر خطا خواهد داشت. پهپادی که در صورت خرابی موتور بلافاصله اقدام به فرود ایمن کرده و محل آن را اعلام کند ، خرابی ایمن[12] است. |
توانمندی Robustness | توانایی محافظت سیستم در برابر آسیبهای ناشی از رابط[13]و اغتشاشات[14] خارجی | هرگونه ارتباط بین هواپیماهای بدون سرنشین یا سایر کارها منوط به تداخل طبیعی[15] است که ممکن است باعث شود پیام دریافتی با پیامی که در ابتدا ارسال شده متفاوت باشد. یک سیستم قوی می تواند چنین گسل های معرفی شده را شناسایی و اصلاح کند. |
مقیاس پذیری Scalability | با افزاش بار اطلاعات سیستم به تواند به طور معقولی عملکرد خود را حفظ نماید. | اگر فرض کنید ده هواپیمای بدون سرنشین در انجام یک کار همکاری داشته و برای برقراری ارتباط هنگام انجام کار به 1 میلی ثانیه در هر ثانیه نیاز دارند. اگر تمام هواپیماهای بدون سرنشین ملزم به برقراری ارتباط با سایر هواپیماهای بدون سرنشین باشند ، صد هواپیمای بدون سرنشین که برای انجام یک کار مشابه تلاش می کنند 10 میلی ثانیه بر ثانیه برای برقراری ارتباط صرف می کنند. در همین حال ، اگر هواپیماهای بدون سرنشین به ده گروه 10 تایی تقسیم شوند که هر یک دارای یک پهپاد تعیین شده به عنوان یک رهبر است ، و پس از آن فقط رهبران ارتباط برقرار می کنند ، ممکن است ارتباطات به 2میلی ثانیه در هر ثانیه کاهش یابد. |
سایر نیازمندیهای غیر عملکردی ممکن است دسترسپذیری[16]، قابل پیکربندی[17] و انطباق با مقررات[18] باشد. لازم به ذکر که ما از یک سیستم بلادرنگ انتظار نداریم که در واحد زمان سریع عمل کند تنها می خواهیم به اندازه ای سریع باشد که به نیازمندیهای عملکردی و غیرعملکردی به طور صحیح پاسخ دهد. بنابرین سیستمی که به خواستههای ما در زمان مورد انتظار پاسخ میدهد یک سیستم بلادرنگ است.
در ذیل چند مثال از سیستم بلادرنگ آمده است.
1-حمل و نقل[19]: سیستمهای کنترلی برای کنترل ترافیک وسایل نقلیه ، کشتی ها ، هواپیماها و فضاپیماها
2-نظامی[20]: سیستمهای تسلیحاتی، ارتباطی و دنبال کننده هدف
3-فرایندهای صنعتی[21]: کنترل تولید از جمله انرژی ، مواد شیمیایی و تولید و ساخت با استفاده از رباتیک.
4-پزشکی[22]: نظارت بر بیمار ، دفیبریلاسیون و پرتودرمانی.
5-ارتباط از راه دور[23]: تلفن، رادیو، تلویزیون، ماهواره، تلفن تصویری، سینمای دیجیتال و شبکههای کامپیوتری
6-خانگی[24]: نظارت و کنترل لوازم خانگی و...
7-مدیریت ساختمان[25]: امنیت، گرمایش، تهویه، تهویه هوا و روشنایی.
جمعبندی: در حالت کلی هر سیستمی دیجیتالی که با انسان و محیط در تعامل است و پیوسته در حال دریافت داده، پردازش روی آن و ارسال یک پاسخ است می تواند یک سیستم زمان واقعی دیجیتال باشد درصوتی که در زمان مورد انتظار پاسخ صحیح را تولید نماید و نیازمندی های ما را برآورده سازد.
چرا مفهوم بلادرنگی برای سیستمهای آنالوگ، ذاتا وجود دارد؟
پردازش در سیستمهای آنالوگ مبتنی بر یک نگاشت فیزکی به یک سیستم فیزیکی است. اما در سیستمهای دیجیتال مفهوم پردازش یک نگاشت ریاضی و قراردادی به عمکلرد سیستم فیزیکی است. برای اینکه این مفهوم مشخص شود یک سیستم انتگرال گیر آنالوگ و دیجیتال را در نظر بگرید.
در چه صورت یک سیستم آنالوگ انتگرال گیر است؟
درصورتی که فیزیک و ذات سیستم مورد نظر نسبت به ورودی که به آن اعمال می شود انتگرال ورودی را در خروجی نشان دهد. در اینجا می بینیم که پردازش همسو با زمان دنیای واقعی پیش میرود.
در چه صورت یک سیستم دیجیتال انتگرال گیر است؟
در صورتی که سیستم دیجیتال نسبت به ورودیهایی که به آن اعمال میشود به تواند رفتار یک سیستم انتگرالگیر یا مدل ریاضی یک سیستم انتگرال گیر را شبیهسازی نماید به طوری که در خروجی آن، انتگرال ورودی مشاهده شود در این صورت این سیستم دیجیتال یک انتگرال گیر است. در اینجا میبینیم که پردازش همسو با زمان دنیای واقعی پیش نمی رود. زیرا پردازش مستقل از ماهیت ذاتی سیستم صورت میگیرد. در واقع سرعت و دقت پاسخ سیستم به کد برنامه و ساعت سیستم وابسته است.
برای درک این موضوع بایستی مشخص کنیم که منظور از زمان چیست؟
به جرات می توان گفت که مسئله زمان ابتدایی ترین مسئله حل نشده است. در پاسخ به این سوال که زمان چیست و کوچک ترین واحد آن چیست تنها می توان گفت که یک تغییر وضعیت عمومی است. با توجه به این دیدگاه می توان بیان کرد که زمان یک جنبه فردی و یک جنبه عمومی دارد. از نظر فردی می توان گفت که زمان برای یک شخص یا یک شی به سرعت فعل و انفعالات داخلی که درون فرد یا شی صورت می گیرد و نسبت به حالت قبل تغیر می دهد وابسته است. مثلا یک شخص سیگاری با یک شخص غیرسیگاری را بعد از 5 سال مقایسه کنید خواهید دید که سرعت تغییرات فیزیکی در شخص سیگاری بیشتر از شخص غیرسیگاری است. اما جنبه عمومی زمان به تغییراتی که از نظر همه یکسان به نظر می رسد اشاره دارد. این تغییرات یکسان لازم است که توسط ابزاری سنجیده شود. ابزارهای مختلفی توسط بشر تا به امروز برای سنجش زمان عمومی اختراع شدند که می توان به ساعت آبی، شنی، خورشیدی، مکانیکی، دیجیتال و... اشاره نمود. هدف همه این ابزارها اندازه گیری سرعت تغییرات یک شی است که از دید همه یکسان به نظر می رسد. مثلا دو شخص یک ساعت مشترک شنی دارند و هر دو روی یک صندلی نشته اند پس از مدت یکسان یکی از این دو احساس خستگی می کند. از دید عمومی زمانی که سپری شده یا مقدار شنی که جابه جا شده است یکسان است اما از دید فردی زمان برای شخصی که احساس خستگی می کند طولانی تر بوده است. بنابرین تعریف عمومی که برای زمان به کار می بریم یعنی تغییراتی که از دید همه یکسان به نظر می رسند می تواند معیار سنجش ما از زمان باشد. در ادامه متداول ترین روشهایی که برای اندازه گیری زمان عمومی یا فیزکی یا واقعی به کار رفته است را به صورت مختصر بررسی می کنیم.
اگر معیار اندازه گیری زمان، خورشید باشد در این صورت ملاقات دوباره یک نقطه از زمین با خورشید را یک روز خورشیدی می گویند. کوچکترین واحد روز خورشیدی ثانیه است که برابر با 1 بر 86400 روز خورشیدی است. در دهه 1940 ثابت شد که دوره تناوب چرخش زمین و به طبع ملاقات خورشید یکسان نیست. این مسئله باعث شد که اخترشناسان برای محاسبه زمان ثابت از میانگین دوره تناوب یک سال زمین استفاده کنند. در سال 1948 ساعت اتمی اختراع شد و این امکان را فراهم نمود که زمان را به صورت دقیق تر و مستقل از گردش زمین محاسبه نمایند. برای این کار، گذر اتم سزیم 133 ملاک سنجش زمان قرار گرفت. در این صورت کوچک ترین واحد زمانی که ثانیه است برابر با 9192631770 گذر اتم سزیم در نظر گرفته شد. هدف از انتخاب این عدد این بود که ثانیه اتمی با ثانیه شمسی متوسط در همان سال معرفی یکسان باشد. در حال حاضر چندین آزمایشگاه در جهان مجهز به ساعت اتمی هستند که همه آنها تعداد گذرهای خود را به ساعت آزمایشگاه BIH پاریس اطلاع می دهند و ساعت BIH میانگین مقادیر را برای تولید زمان بین المللی محاسبه می کند که به اختصار آن را TAI می نامند. لذا، TAI میانگین تعداد گذرهای سزیم 133 ساعتهای اتمی در سراسر جهان بعد از نیمه شب اول ژانویه سال 1958 (سال شروع زمان اتمی) تقسیم بر عدد 9192631770 است. اما مشکلی که هنوز وجود دارد این است که هر 86400 ثانیه TAI در حدود 3 میلی ثانیه از روز شمسی متوسط کمتر است زیرا روز خورشیدی متوسط در حال طولانی شدن است. لذا برای حل این مشکل هر 800 میلی ثانیه اختلاف TAI با ساعت خورشیدی هماهنگی با ساعت خورشیدی صورت می گیرد که این کار به ثانیه کبیسه شناخته می شود. این زمان جدید به عنوان زمان هماهنگ جهانی[26] ((UTC شناخته می شود که همه برای دانستن یک معیار زمانی مشخص زمان خود را با آن هماهنگ کنند. برای اینکه همه افراد به توانند ساعت خود را با ساعت جهانی هماهنگ کنند موسسه NIST یک ایستگاه رادیویی با موج کوتاه به نام WWV راه اندازی کرد که در شروع هر ثانیه UTC یک پالس کوتاه توسط این ایستگاه مخابره می شود.
اما مسئله ای که در این درس با آن برخورد می کنیم این است که سیستمهای دیجیتال غالبا از تایمر برای زمان خود استفاده می کنند. تایمر متشکل از کریستال کوارتز است که با دریافت یک میدان الکتریکی به اندازه مشخصی در واحد زمان نوسان می کند. میزان نوسان یک کریستال کوارتز به میزان جریانی که به آن اعمال می شود و جنس آن بستگی دارد. هر کریستال کوارتز دارای دو ثبات به نام شمارنده و نگهدارنده است. با هر نوسان کریستال کوارتز یک واحد از ثبات شمارنده کاسته شده و با رسیدن به صفر یک وقفه سخت افزاری صورت می گیرد و دوباره مقدار ثبات نگهدارنده در ثبات شمارنده بار شده و عملیات تکرار می شود تا گذرهای ساعت تشکیل شوند. با توجه به این ساختار می توان زمان کامپیوتر را طوری برنامه نویسی کرد که در هر ثانیه یک وقفه صورت گیرد. اما به هر حال مسئله رانش یا عقب ماندن زمان کامپیوتر با زمان واقعی وجود دارد که برای حل این مشکل هماهنگی با ساعت جهانی تا حدودی می تواند پاسخ گو باشد. اما مسئله مهم تر که در اینجا وجود دارد این است که عملیات در کامپیوتر همزمان با ساعت واقعی پیش نمی رود بلکه با ساعت داخلی کامپیوتر هماهنگ است و تنها هر بار یک نگاشتی از زمان واقعی به زمان کامپیوتر صورت می گیرد.
سیستمهای نهان[27] چه نوع سیستمهایی هستند؟
الیسا وایت یک سیستم نهان را سیستم کامپیوتری که به طور هفمند برای یک کاربرد خاص ساخته شده است می شناسد. ساخت هدفمند[28] شامل سخت افزار و نرم افزار میشود.
سیستمهای بلادرنگ غالبا با محیط در تعامل هستند لذا مفهوم زمان-واقعی یا بلادرنگی اکثرا با سیستمهای نهان به کار میرود زیرا پردازش اطلاعات در این سیستم ها همگام با ساعت پردازنده صورت میگیرد اما پاسخی که به محیط خارجی خود میدهند در زمان واقعی است. یعنی از زمان پردازنده خارج شده و در زمان واقعی به صورت یک رویداد نمایان میشود. تمام تلاش ما در طراحی سیستم های بلادرنگ یا زمان واقعی این است که این رخداد درست در زمان مناسب و موثر خودش رخ دهد.
اجزای سیستمهای زمان-واقعی (بلادرنگ) چیست؟
مشخصه تعیین کننده هر سیستم بلادرنگ نیازمندیهای زمانبندی[29] است که در آن نه تنها سیستم باید به ورودیها پاسخ صحیح دهد، بلکه باید این کار را در مدت زمان مشخص انجام دهد. چنین نیازمندیهایی را میتوان به طور کلی در دو دسته بندی بیان کرد.
1. نیازمندیهای مطلق[30] که در آن پاسخ باید در مهلتهای تعیین شده رخ دهد
2. نیازمندیهای نسبی[31] که در آن پاسخ بایستی در یک مدت زمان مشخصی پس از یک رویداد داده شود.
رعایت مهلت زمانی و پاسخ به آن با توجه به ساختار سیستم دیجیتال چندان راحت نیست. از طرفی نمی توان پاسخ صحیح اما با تاخیر را نادیده گرفت لذا بایستی سیستم کامپیوتری خود را همان طور که هستند قبول کنیم و تنها کمی شرایط را متفاوت سازیم تا به پاسخهای صحیح اما با تاخیر اجازه حیات دهیم. در این صورت سیستم دیجیتال که خود را مقید به عملکرد در زمان واقعی میداند، میتواند در هر کدام از شرایط زیر یک سیستم زمان-واقعی باشد.
بلادرنگ سخت[32]: در صورتی که پاسخ سیستم در زمان مشخصی پاسخ داده نشود، حتی اگر پاسخ صحیح هم سیستم پس از مدتی ارائه نماید دیگر سیستم زمان-واقعی نیست و سیستم درست کار نمی کند.
بلادرنگ پایدار[33]: در صورتی که مهلت زمانی رعایت نشود، هر پاسخی که پس از مهلت زمانی بیاید هیچ ارزشی ندارد اما سیستم می تواند به زمان بندی ادامه دهد و هنوز خراب نشده است.
بلادرنگ نرم[34]: در صورتی که پاسخ پس از یک مهلت زمانی فراهم شود ارزش پاسخ کاسته شده اما پاسخ قابل قبول است.
در دو مورد اول اگر احتمال می دهیم که مهلت زمانی رعایت نمی شود بهتر است که محاسبه پاسخ را قبول نکنیم. سیستمهای زمان واقعی پیچیده معمولا متشکل از هر سه نوع مورد فوق می باشند.
برای دانلود جزوه سیستم های نهفته و بی درنگ کلیک کنید
برای دانلود کتاب جامع آموزش برد آردوینو کلیک کنید
[1] Real-Time
[2] Interactive
[3] Command
[4] Respond
[5]General-purpose systems
[6] Hard deadlines
[7]Actuator
[8] Correctness
[9] Requirement
[10] Functional Requirements
[11] Non-functional requirements
[12] Failsafe
[13] Interference
[14] Perturbation
[15] Natural interference
[16] Availability
[17] Configurability
[18] Regulatory compliance
[19] Transportation
[20] Military
[21]Industrial Processes
[22]Medical
[23]Telecommunications
[24]Household
[25] Building Management
[26]Coordinated universal time
[27] Embedded systems
[28] Purpose-Built
[29] Timing requirements
[30] Absolute requirement
[31] Relative requirements
[32] Hard real-time
[33] Firm real-time
[34] Soft real-time