پشتیبانی: 09131253620
ارتباط با ما
تلگرام: 09131253620

برجسته ترین ها
گروه های مقاله ها
HyperLink


سیستم عامل های Real Time بلادرنگ تاریخ درج: ١٣٩۴/٠٣/٢٧

 یک سیستم عامل real time  RTOS)) یک سیستم عامل انتخاب شده چند وظیفه ای است برای درخواست های RT ( درخواست هایی که اولویت زمان، ترتیب اجرای آنها را مشخص می کند).

یک چنین درخواست هایی شامل سیستم های جاسازی شده هستند؛ مانند ترموستات های قابل برنامه ریزی، کنتلرهای دستگاه های خانگی،تلفن های موبایل، روبات های صنعتی، فضاپیماها، کنترل صنعت و غیره.
یک RTOS  به خلق یک سیستم RT کمک می کند، اما ضمانت نمی کند که نتیجه پایانی real time باشد؛ این امر مستلزم پیشرفت حقیقی و صحیح نرم افزار است. یک RTOS لزوما نیازی به توان عملیاتی بالا ندارد؛ ترجیحا، اگر به طرز صحیح استفاده شود هر امکاناتی را آماده می کند، فرجه هایی که معمولا با آنها برخورد می کند( RT نرم یا سخت) را ضمانت می کند.
RTOS به طرز نمونه ای الگوریتم های  خاص زمانبندی را برای تهیه توسعه دهنده RT با وسایل لازم برای تولید رفتارهای قطعی در سیستم نهایی، استفاده می کند.
RTOS بیشتر برای سرعتی بودنش ارزشمند است.over time  بودن اجرا ی فرایندها درRTOS یک عامل کلیدی است، بنابراین وجود یک وقفه یا تاخیر کوتاه در به هنگام سازی نخ ها، تاثیربسزایی در این مهم دارد.
RTOS یک  محیط محاسباتی است که به صورت خروجی با یک دوره زمانی خاص عمل می کند. یک فرجه(deadline) که عکس العمل سیستم را سریع حاضر می کند. دوره پردازش RT همچنین برای توصیف کردن خروجی های "Slow real-time " استفاده می شود،که یک محدوده زمانی طولانی تر اما ثابت دارند.

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

یادگیری تفاوت بین RTOS و سیستم عامل های استاندارد به آسانی این است که خودتان را در یک بازی کامپیوتری تصور کنید. هر یک از عمل هایی که شما در این بازی انجام می دهید مثل اجرای یک برنامه در محیط سیستم عامل است. یک بازی که RTOS در محیط خودش دارد،می تواند می تواند آن را توسعه و گسترش دهد همچنان که شما بدنتان را کشش و بسط (extention) می دهید، زیرا شما می توانید روی یک تاخیر زمانی خاص حساب کنید: زمان بین درخواست شما برای انجام عمل و اجرای قابل توجه کامپیوتر روی همان درخواست.
به هر حال ممکن است یک OS استاندارد احساس متلاشی شدن و از هم گسیختن کند، زیرا تاخیر زمانی نا مطمئن است. برای دست یافتن به زمان معتبر، برنامه های RT و محیط OS آنها باید قبل از هر کار دیگر فرجه های موجود را اولویت بندی کنند. در مثال بازی ممکن است در چهار چوب کمبودها یا کیفیت پایین تر، به هنگام زمان عکس العمل و برخورد اثرات دیدنی(visual ) نتیجه حاصل شود. 
یک مثال نزدیک به یکRTOS قوی که می تواند به حافظه با ظرفیت بالا دستیابی داشته و همچنین چند کاربری باشد، به نام program control" " ، به وسیله خطوط هواپیماهای مسافربری آمریکایی (American Airline) و IBM برای سیستم رزروهای هواپیمایی Sabre (Sabre Airline Reservation System ) پیشرفت کرده بود.
مبحثی وجود دارد درباره چیزی که واقعا محاسبات RT را تشکیل می دهد.
از جمله:
1- فلسفه های طراحی:
1-1 زمانبندی.
1-2 ارتباط دستورات ورودی و اشتراک منابع.
1-3 گرداننده های وقفه و زمانبند.
1-4 تخصیص حافظه.
2- دیدن هم زمان.
3- خطوط خارجی.

• فلسفه های طراحی:
دو طراحی پایه وجود دارد:
1- Event-driven (زمانبندی بر حسب اولویت اجرا). فرایندهای در حال اجرا را فقط زمانی تعویض می کند که فرایند دیگری بیاید که دارای اولویت بالاتر است. این اولویت انحصاری نامیده می شود.
2- Time-sharing(اشتراک زمانی). فرایندهای در حال اجرا را زمانی تعویض می کند که روی یک کلاک یا  مجموعه ای از فرایندها، اختلال ایجاد شود. که اولویت غیر انحصاری یا round robin نامیده می شود.
بیشتر CPUهای اخیر زمان کمتری را برای سوییچ کردن از یک فرایند به دیگری هدر می هند.RTOS های جدیدتر بیشتر از زمانبندی event-driven استفاده می کنند.
• زمانبندی:
در این نمونه طراحی یک فرایند سه حالت دارد:1)اجرا. 2)آماده. 3)مسدود.
بیشتر فرایندها در بیشتر زمان مسدود هستند زیرا CPU فقط می تواند یک فرایند را در هر لحظه اجرا کند. در سیستم های ساده تر لیست فرایندهای حالت آماده معمولا کوتاه است، اغلب دو یا سه فرایند.
در بیشتر سیستم های پیشرفته RT، فرایندهای real time و غیرreal time  منابع محاسباتی را به اشتراک می گیرند ، و طول لیست حالت های آماده می تواند به دلخواه باشد. در یک چنین سیستم هایی یک زمانبند، لیست پر شده ای را از یک لیست خط شده (به صف شده) آما ده می کند که می تواند نا محدود باشد.

• ارتباط دستورات ورودی واشتراک منابع:
سیستم های چندوظیفه ای باید داده های اشتراکی و منابع سخت افزاری را در میان فرایندهای متعدد و مضاعف اداره کنند. این کار معمولا برای دو فرایند در دستیابی به داده های مخصوص مشابه یا منابع سخت افزاری  به طور هم زمان، نادرست است.
سه راه کار معمولی برای حل این مشکل وجود دارد :
1- پوشش موقتی/ به راه انداختن وقفه ها .
2- راهنماها(پرچم های) باینری.
3- پاس کردن(passing) پیغام ها.
اگرچه رفتارهای RTی آنها کمتر از سیستم های پرچم(یا سیستم هایی که به وسیله پرچم اعلام وضعیت می کنند) از خشک می شوند(crisp).
سیستم های پیام پایه(message-based) معمولا خطر قراردادهای بن بست را ندارند، همچنین از سیستم های راهنما(پرچم) بهتر رفتار می کنند.

• تخصیص حافظه:
تخصیص حافظه در سیستم هایRT بحرانی تر است. در ابتدا سرعت اختصاص مهم است، یک برنامه تخصیص حافظه ی استاندارد، یک لیست خط شده با طول نامعین را برای پیدا کردن بخشی آزاد و مناسب از حافظه، می پیماید؛ به هر حال این غیر قابل دسترسی است که همچنان که در یک RTOS در یک زمان معین، همزمان با اجرا، تخصیص حافظه را نیز داشته باشیم.
یک طول واقعی دیگر، سایز بلاک های معین در سیستم های DPS، مشخصا جایی است که یک هسته در حال اجرای یک بخش از بلاک های لوله ای و هسته دیگر در حال اجرای بخش دیگری از آنهاست.( بلاک های لوله ای بلاک هایی هستند که در آنها اجرای فرایند دومی آغاز می شود در حالی که هنوز اجرای فرایند اولی تمام نشده.)

• راهکارها:
 یک سیستم عامل در صورتی RT است که به طور ثابت برنامه هایش را آماده سازد برای اجرای وظایف،درون محدودیت های زمانی خاص؛ معمولا کاربر این انتظار را دارد.
برای درک این تعریف، بعضی یا تمام روش های زیر به کار برده می شوند:
    1-RTOS  دستورات کوتاه را اجرا می کند، بدین ترتیب این اطمینان می رود که همیشه          
        وظایف قبل از فرجه های زمانی اجرا خواهند شد.
    2- RTOS تابع های معین را کاهش می دهد هنگامیکه آنها نمی توانند درون محدودیت      
        های زمانی(فرجه ها) اجرا شوند.(load sheeding )
    3- ناظرهای RTOS از منابع استفاده می کنند و می توانند پردازش های زمینه (در حال 
        اجرا) را مختل کنند، هنگامیکه نیاز باشد از اجرایRT مطمئن شود.
    4- RTOS درخواست های بالفعل را پیش بینی می کند و سیستم را به اندازه کافی آزاد     
        می کند تا اجازه عکس العمل های آنی (بدون درنگ) ر به درخواست های کاربر  
        بدهد.
    5- RTOS ترک های حاوی مقادیر هر منبع را نگه می دارد(زمان cpu در هر قسمت، 
        RAM، پهنای باند ارتباطی، و غیره)، شاید امکان استفاده از آنها در صورت بروز 
        اشتباه به وسیله فرایندهای در حال اجرا وجود داشته باشد شود، و پذیرش یک فرایند 
        جدید رد می شود مگر اینکه برای آن فرایند، باقیمانده منابع تخصیص داده نشده کافی 
        و مناسب باشد.

• هدف ها:
یک RTOS  باید در یک رفتار به موقع به تغییرات پاسخ دهد اما این نباید لزوما به این معنی باشد که یک RTOS می تواند یک خروجی بزرگ از داده ها را به کار برد. در حقیقت در یک RTOS زمان های کوتاه پاسخ نسبت به قدرت بالاتر یا سرعت داده ارزشمندتر هستند. گاهی یک RTOS  حتی نیاز دارد به اینکه داده را رها کند برای تضمین اینکه با فرجه ها ی صریح برخورد کند. در اصل ما را با یک تعریف کامل آماده می کند:
"یک RTOS یک سیستم عامل طراحی شده است برای پیوند دادن فرجه های صریح. ماوراء تعریف تعدادی درخواست ها و نیازمندی هایی وجود دارد که یک RTOS باید در آینده داشته باشد.یک event driven RTOS (یک برنامه کامپیوتری که در آن هر مرحله اجر مربوط به عملیات خارجی است.) سیستمی است که یک حالت را فقط در صورت بروز یک اتفاق یا پیام دریافتی تغییر می دهد. "

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

• هسته :RTOS
قلب (مرکز هر سیستم عامل ) یک RTOS را هسته (kernel)می نامند که وظایفی مثل وظایف زیر را در سیستم عامل دارد:
1- اجرای خودکار مجموعه ای از دستورالعمل ها در ROM پس از روشن شدن کامپیوتر (booting).
2- زمانبندی.
3- توبع کتابخانه ای استاندارد.
اکنون به طرز مختصری هر کدام را توضیح می دهیم:
در هر سیستم جاسازی شده هزینه هایی را برای بازسازی توابع کتابخانه ای بزرگ اختصاص می دهند. اگر قرار باشد در سیستم از توابع استفاده کرد باید آنها کوتها و مهم(مختصر و مفید) باشند. در یک سیستم جاسازی شده هسته مکررا سیستم را boot و پورت ها(درگاه ها) و متغیرهای سراسری را مقدار دهی اولیه می کند. بنابراین زمانبند کارش را شروع  خواهد کرد و هر زمان سنج سخت افزاری را که برای شروع لازم دارد معرفی می کند.
بعد از اتمام این مراحل ، هسته اساسا از قید حافظه رهایی می یابد( هر تابع کتابخانه ای را
می پذیرد) و زمانبند اجرای دستورات اولیه(دستوراتی را از نظر محتوا به دستورات دیگر وابسته هستند) را شروع خواهد کرد.

تگها: real time   بلادرنگ   سیستم عامل   
 

HyperLink

ارسال نظر در مورد این مطلب
نام :  
آدرس ایمیل :  
متن پیام :  
کد امنیتی :  
   
   
نظری برای نمایش وجود ندارد
 
این مطلب را به اشتراک بگذارید: