بسياري از كمپاني ها سعي مي كنند Windowse NT را بعنوان يك سيستم عامل استاندارد (OS) در همه سطوح سلسله مراتب صنعتي استفاده كنند . استفاده بعنوان server واضح است ، اما بعضي از مردم مي خواهند كه از آن در سطح كارخانه استفاده كنند . اين درخواستها از رفتار سيستم بي درنگ تقاضا مي شوند .
آيا Windowse NT مي تواند اين نيازها را برآورده سازد ؟
در ابتدا ، ما يك سيستم بي درنگ و مشخصاتي كه سيستم عامل براي تصويب شدن توسط توسعه دهنده نياز دارد را تعريف مي كنيم و همچنين برتري بين سيستم عامل نرم و سخت را تشريح مي كنيم .
در قسمت دوم تشريح مي كنيم كه چگونه و چرا Windowse NT نمي تواند نيازهاي يك سيستم بي درنگ سخت را برآورده سازد .
ما نشان مي دهيم Windowse NT مي تواند تحت شرايط خاصي درخواستهاي يك سيستم عامل بي درنگ نرم و ساده را برآورده سازد .
مقدمه:
Windowse NT با نيازهاي يك سيستم عامل بي درنگ طراحي نشده است . آن بعنوان يك سيستم عامل همه منظوره ( GPOS ) طراحي شده است يا به طور مختصر ، بعنوان يك سيستم عامل وابسته به شبكه ( NOS ) .
به خاطر اين كه Windowse NT توسط توسعه دهنده هاي سيستم عامل VMS ساخته شده ، بعضي از مشخصات جهان بي درنگ معرفي شده است . بعنوان مثال Microsoft نظريه طبقه بندي پردازشهاي بي درنگ را ارائه كرد . آنها به يك طريق زمانبندي مي شوند كه آن مي تواند بعنوان يك RTOS باشد . دومين سرويس وقفه ( ISR ) با يك روش كارآمد طراحي شده است .
آيا اين عناصر اجازه مي دهند كه Windowse NT بعنوان يك RTOS طبقه بندي شود ؟
يك سيستم بي درنگ چيست ؟
تعريف :
يك سيستم بي درنگ به ورودي هاي محرك غير قابل پيش بيني با يك روش بهنگام قابل پيش بيني پاسخ مي دهد .
براي انجام آن بعضي نيازهاي اصلي لازم مي شود :
1 ـ يافتن ضرب العجل . بعد از رخ دادن رويداد يك اقدام در يك زمان محدود و از قبل تعيين شده بايد انجام شود و از بين رفتن زمان ضرب الاجل باعث خطاي نرم افزاري مي شود .
واكنش در مقابل اين فقدان بعنوان يك مشكل اجرايي مطرح مي شود كه مي تواند به وسيله يك پردازنده سريع حل شود . اما اثبات مي شود كه استفاده از يك پردازنده سريع لزوماً مشكل ضرب الاجل را حل نمي كند .
2 ـ پردازشهاي همزمان : هر وقت بيشتر از يك رويداد به طور همزمان رخ مي دهند ، همه ضرب الاجل ها بايد پاسخ داده شوند . به اين معني است كه يك سيستم بي درنگ مشابهت ذاتي نياز دارد .
كه به وسيله استفاده بيشتر از يك پردازنده سيستم بدست مي آيد . سيستم هاي بي درنگ سخت و نرم :
مي توان سيستمها ي بي درنگ را از يك نظر به دو دسته سخت و نرم تقسيم بندي كرد .
خصوصيات سيستمهاي بي درنگ سخت عبارتند از :
تحت هيچ شرايطي تاخير پذيرفته نيست .
اگر تاخير پيش آيد ، نتايج بي فايده اند .
هزينه گذشتن از ضرب الاجل بي اندازه زياد است .
يك مثال خوب براي سيستم بي درنگ سخت سيستم كنترل چرخهاي هواپيماست .
خصوصيات يك سيستم بي درنگ نرم عبارتند از :
نتايج تاخير ارزش بيشتري دارند .
كارآيي پايين تر پذيرش براي تاخير .
بعنوان مثال ماشين Vending و يك زير سيستم شبكه . بسته اي كه توسط يكي از قانون هاي شبكه گم شده را مي توان با درخواست براي دوباره فرستادن آن دوباره بدست آورد . البته با اين كار اجراي سيستم كنترل مي يابد .
نمونه هاي ديگر سيستم هاي بي درنگ كنترل كارخانه نيروي هسته اي ، كنترل ساخت صنعتي ، سيستم هاي تحويل اسلحه ، راهنمايي و هدايت فضايي ، سيستم هاي شناسايي ، كنترل آزمايشات ، آزمايشگاه ، كنترل وسايل ماشين ، روباتها ، سيستم هاي كنترل مسافت سنجي ، كنترل كننده هاي پرينتر ، شكستن ضد قفل ، آژير دزدگير و …
تفاوت بين سيستم هاي بي درنگ سخت و نرم وابسته است به نيازمنديهاي سيستم .
يك سيستم « سخت است اگر » ضرب ا لعجل سيستم نبايد از بين برود .
« و نرم است اگر » ضرب العجل سيستم ON بهتر است كه از بين نرود .
بحثهاي زيادي درباره ارزش دقيق و درست يك سيستم بي درنگ نرم و سخت مطرح است .
مي توان مطرح كرد كه يك سيستم بي درنگ نرم در واقع يك سيستم بي درنگ نيست ، بخاطر اولين نياز : ضرب العجل ازدست رفته . حقيقتاً ، اصطلاح « realtime » اغلب براي اشاره به سيستم سريع ، به طور اشتباه استفاده مي شود . براي يك سيستم سريع ضرب العجل مي تواند تنظيم شود . پس هم معني با سيستم بي درنگ نرم است . بنابر اين ما مي توانيم يك RTOS ( سيستم عامل بي درنگ ) را بعنوان يك OS ( سيستم عامل ) كه مي تواند براي ساختن يك سيستم بي درنگ سخت استفاده شود.
سيستم عامل بي درنگ سخت يا نرم موجود نيست !
مردم اغلب سيستمهاي بي درنگ را با سيستم عامل هاي بي درنگ اشتباه مي گيرند وحتي ازويژگيهاي سيستمهاي سخت و نرم بد استفاده مي كنند . آنها مي گويند فرضاً اين سيستم Hard RTOS و ديگري Soft RTOS است . در حاليكه درواقع ايندو وجود ندارند . يك RTOS خاص فقط مي تواند به شما اجازه دهد كه يك سيستم بي درنگ سخت را توسعه دهيد .
اما داشتن يك RTOS جلوي توسعه يك سيستمي كه ضرب العجل رانگه نمي دارد را نمي گيرد .
اگر به طور مثال ، شما بخواهيد يك سيستم بي درنگ بسازيد به طوريكه به يك رابطه TCP \ IP واكنش نشان دهد ، آن هيچ وقت يك سيستم بي درنگ سخت نيست . البته اگر شما تصميم بگيريد كه يك درخواست روي سيستم عاملي مثل Windowse 3.11 بسازيد ، سيستم شما هيچ وقت يك سيستم بي درنگ سخت نخواهد بود . همان طور كه رفتار نرم افزار سيستم عامل به طور متوسط قابل پيشگويي نيست .
نيازمنديهاي لازم سيستم عامل بي درنگ ( RTOS ) :
نياز اول : يك RTOS بايد قابل پيش گوئي و Molti thread باشد .
يك RTOS بايد قابل پيشگويي باشد و به اين معني نيست كه يك RTOS بايد سريع باشد . اما بيشترين زماني كه كاري انجام مي دهد بايد سريع باشد و بايد با نيازهاي درخواست شده همساز باشد و Windows 3.11 ـ حتي روي يك PeNTium Pro 200 MHZ ـ براي يك سيستم بي درنگ بي فايده است ، چون يك درخواست مي تواند به طور پيوسته كنترل را در دست بگيرد و بقيه سيستم را مسدود كند . اولين نياز اين است كه سيستم عامل بايد چند نخي ( Multi – threaded ) و قابل پس گرفتگي باشد . براي بدست آوردن اين نيازها زمانبند بايد بتواند هر thread را در سيستم قبضه كند و منبع را به آن thread بدهد كه بيشترين نياز را دارد .
سيستم عامل (و معماري سخت افزار ) همچنين بايد وقفه هاي چند سطحي را بپذيرد تا در سطح وقفه انحصاراً اختيارداشته باشد .
نياز دوم : مفهوم اولويت نخ ( thread ) بايد وجود داشته باشد . مشكل پيدا كردن نخي است كه بيشترين نياز به يك منبع را دارد . در يك شرايط مطلوب ، يك RTOS منابع را به نخ يا درايوري مي دهد كه نزديك ترين ضرب الاجل را دارد . براي اين منظور ، اگرچه ، سيستم عامل بايد بداند چه وقتي يك نخ بايد كارش را تمام كند و چگونه هر نخ اين زمان را لازم دارد .
برچسب ها:
سیستم عامل windows nt