مقدمه:
مهمترین کاربرد سیستمهای بلادرنگ در رابطه با عملیات کنترل پردازش است . خاصیت مهم سیستم عاملهای بلادرنگ این است که هر فعل و انفعال با کامپیوتر بایستی یک پاسخ در مدت زمانی که از قبل تعیین شده است دریافت دارد . سیستم بایستی بتواند این زمان پاسخ را گارانتی بکند (عواقب زمان پاسخ بد در رابطه با سیستمی که یک هواپیما و یا یک کارخانه شیمیایی را کنترل میکند را میتوان براحتی تصور کرد ) . مسئله زمان پاسخ در عمل به این معناست که معمولاً نرم افزار بصورت خاص-منظور است و به کاربرد بخصوصی اختصاص یافته است . دستگاههای جنبی چنین سیستمهایی نیز به احتمال قوی دستگاههای بخصوصی هستند . مثلاً ممکن است که از وسایل حس کننده که با سیگنالهای آنالوگ عمل می کنند به جای ترمینالهای عادی استفاده شوند.
فهرست مطالب:
فصل اول : زمانبندی بلادرنگ
مقدمه
مشخصات سیستم های بلادرنگ
زمانبندی بلادرنگ
رویکردهای ایستای مبتنی بر جدول
رویکردهای ایستای مبتنی بر اولویت و با قبضه کردن
رویکردهای پویا بر اساس برنامه ریزی
رویکردهای پویا با بهترین کوشش
زمانبندی ایستا مبتنی بر جدول
زمانبندی ایستای مبتنی بر اولویت و با قبضه کردن
زمانبند مهلت زمانی
زمانبندی Linux
زمانبندی Unix SVR4
فصل دوم : الگوریتم های برنامه ریزی و حمایت سیستم های اجرایی برای سیستم های بلادرنگ
خلاصه
برنامه ریزی بلادرنگ
متریک های اجرا در سیستم های بلادرنگ
الگوهای برنامه ریزی
الگوریتمهای برنامه ریزی برای این الگوها
برنامه ریزی ثابت Table –Driven
برنامه ریزی priority driven preemptive
برنامه ریزی دینامیک
برنامه ریزی Best –Effort دینامیک
موضوعات برنامه ریزی مهم
برنامه ریزی با محدودیتهای توان خطا
برنامه ریزی با احیای منابع
سیستم اجرایی بلادرنگ
هسته های کوچک ، سریع و اختصاصی
توسعه های زمان واقعی برای سیستم های اجرای بازرگانی
سیستم های اجرای تحقیق
هسته MARS
هسته SPRING
هستهMARUTI
هسته ARTS
فصل سوم : بررسی ارتباط میان اجزای یک سیستم جامع بلادرنگ
خلاصه
شرح عملگرهای بهبودیافته
تشریح مطالعات تجربی
فصل چهارم : منابع
فهرست جدول ها و شکلها :
شکل 1 – 1 : زمانبندی یک فرایند بلادرنگ
شکل 1 – 2 : زمانبندی وظیفه های بلادرنگ متناوب با مهلتهای زمانی کامل شدن
شکل 1 – 3 : زمانبندی وظیفه های بلادرنگ نامتناوب با مهلتهای زمانی در شروع
شکل 1 – 4 : مثالی از زمانبندی Linux
شکل 1 – 5: طبقه های اولویت در SVR4
جدول 1 -1 : اطلاعات اجرای دو وظیفه متناوب
جدول1 – 2: اطلاعات اجرای پنج وظیفه نامتناوب
شکل 3– 1: معماری سیستم جامع
شکل 3 – 2 : پروتکل ارتباط RS- 232C
شکل 3 – 3: خطای checksum
شکل 3 – 4 : زمان تزریق خطا
شکل 3 – 5 : عملگرهای جهش یافته
شکل 3 – 6 : مثالی از CRM
شکل 3 – 7 : مثالی از CRH
جدول 3 – 1: رابط میان RTOS و برنامه
جدول 3 – 2 : محل تزریق خطا
جدول 3 – 3 : RTOS و برنامه های کاربردی
جدول 3 – 4 : تعداد رابطهای بین RTOS و برنامه
پایان نامه سیستم عاملهای بلادرنگ
تعداد صفحات:84
فرمت فایل:doc
مقدمه:
مهمترین کاربرد سیستمهای بلادرنگ در رابطه با عملیات کنترل پردازش است . خاصیت مهم سیستم عاملهای بلادرنگ این است که هر فعل و انفعال با کامپیوتر بایستی یک پاسخ در مدت زمانی که از قبل تعیین شده است دریافت دارد . سیستم بایستی بتواند این زمان پاسخ را گارانتی بکند (عواقب زمان پاسخ بد در رابطه با سیستمی که یک هواپیما و یا یک کارخانه شیمیایی را کنترل میکند را میتوان براحتی تصور کرد ) . مسئله زمان پاسخ در عمل به این معناست که معمولاً نرم افزار بصورت خاص-منظور است و به کاربرد بخصوصی اختصاص یافته است . دستگاههای جنبی چنین سیستمهایی نیز به احتمال قوی دستگاههای بخصوصی هستند . مثلاً ممکن است که از وسایل حس کننده که با سیگنالهای آنالوگ عمل می کنند به جای ترمینالهای عادی استفاده شود
مشخصات سیستمهای عامل بلادرنگ: سیستمهای عامل بلادرنگ را میتوان با داشتن ملزومات یگانه در پنج حوزه عمومی زیر مشخص نمود: · قطعی بودن · پاسخ دهی · کنترل کاربر · قابلیت اطمینان · نرمش با خطا سیستم عاملی قطعی است که عملیات خود را در زمانهای ثابت یا فواصل زمانی از پیش تعیین شده ، انجام دهد. وقتی چند فرایند در رقابت برای منابع و زمان پردازنده هستند ، هیچ سیستمی نمی تواند قطعی باشد. در یک سیستم عامل بلادرنگ ، درخواستهای فرایند برای خدمت توسط رخدادها و زمانبندی های خارجی اعمال می شود. میزان پاسخگویی سیستم عامل به درخواستها ، اولاً به سرعتی که می تواند به وقفه ها پاسخ دهد و ثانیاً به اینکه آیا سیستم ظرفیت کافی برای اداره تمام درخواستها ، در زمان معلوم دارد یا خیر، وابسته است . یک معیار مفید برای قابلیت عملکرد قطعی سیستم عامل، حداکثر تأخیر از زمان ورود یک وقفه دستگاه با اولویت بالا ، تا زمان شروع خدمت است . در سیستم های عامل غیر بلا درنگ ، این تأخیر ممکن است در محدوده دهها تا صدها میلی ثانیه باشد ، در حالیکه در یک سیستم عامل بلادرنگ ممکن است این تأخیر حد بالایی از محدوده چند میکرو ثانیه تا یک میلی ثانیه داشته باشد . یک مشخصه مربوط ولی مجزا ، پاسخ دهی است. قطعی بودن درباره این است که سیستم عامل پس از تصدیق ، چه مدت صرف خدمت دادن به وقفه می نماید . موارد پاسخ دهی عبارتند از : 1. مقدار زمان لازم برای اداره اولیه وقفه و شروع به اجرای روال خدماتی وقفه . اگر برای اجرای روال خدماتی وقفه نیاز به تغییر متن باشد ، تأخیر بیش از حالتی است که می توانست روال خدماتی وقفه در متن فرایند جاری اجرا گردد . 2. مقدار زمان لازم برای اجرای روال خدماتی وقفه. معمولاً این زمان بستگی به سخت افزار دارد. 3. تأثیر تو در تو بودن وقفه ها . اگر یک روال خدماتی وقفه با ورود وقفه دیگری دچار وقفه شود، خدمت مربوط به آن دچار تأخیر میگردد. قطعی بودن و پاسخ دهی به همراه هم ، زمان پاسخ به رخدادهای خارجی را تعیین می کنند. ویژگی زمان پاسخ در سیستم های بلادرنگ بسیار حساس است ، زیرا چنین سیستم هایی باید نیازهای زمانی اعمال شده توسط افراد ، دستگاهها و جریان داده ها در خارج از سیستم را رعایت کنند. عموماً کنترل کاربر در یک سیستم بلادرنگ بسیار وسیع تر از کنترل کاربر در سیستم عامل عادی است . در سیستم عامل عادی، کاربر یا هیچ گونه کنترلی بر عمل زمانبندی ندارد یا فقط می تواند رهنمونهای کلی ارائه کند. مثلاً کاربران را از نظر اولویت طبقه بندی نماید . ولی در یک سیستم بلادرنگ لازم است به کاربر اجازه کنترل دقیق اولویت وظیفه داده شود. کاربر باید بتواند میان وظیفه های سخت و نرم تفاوت قائل شود و اولویتهای نسبی در هر طبقه را تعیین نماید . همچنین یک سیستم بلادرنگ به کاربر اجازه می دهد تا مشخصاتی مثل استفاده از صفحه بندی یا مبادله فرا یند ، کدام فرایندها باید در حافظه اصلی مقیم باشند ، کدام الگوریتم های انتقال از دیسک به کار گرفته شوند و اینکه فرایندهای در اولویتهای متفاوت چه حقوقی داشته باشند را تعیین نماید . قابلیت اطمینان : قابلیت اطمینان نوعاً در سیستم های بلادرنگ بسیار مهمتر از سیستم های عادی است . یک خرابی گذرا در سیستم غیر بلادرنگ ممکن است تا تعمیر یا تعویض آن ، منجر به سطح خدمت دهی پایین تر گردد . ولی در سیستم بلادرنگی که در حال پاسخ دهی و کنترل رخدادها در زمان حقیقی است ، از دست رفتن یا کاهش کارآمدی یک پردازنده می تواند عواقب فاجعه آمیزی (از ضرر مادی گرفته تا آسیب دیدگی کلی دستگاهها یا حتی ازدست رفتن جانها )داشته باشد. همانگونه که در سایر موارد نیز دیده می شود . تفاوت سیستم عامل بلادرنگ و غیر بلادرنگ در یک درجه است . حتی یک سیستم بلادرنگ نیز باید به گونه ای طراحی شود که به حالات مختلف خرابی ، پاسخ دهد. نرمش با خطا: به مشخصه ای اشاره دارد که با خرابی سیستم ، تا حد ممکن قابلیتها و داده های آن حفظ شود . مثلاً یک سیستم سنتی UNIX ، وقتی خراب شدن داده ها در هسته سیستم عامل را تشخیص دهد ، یک پیام شکست بر روی میز فرمان متصدی ارائه کرده ، محتویات حافظه را برای تجزیه و تحلیل بعدی شکست ، بر روی دیسک تخلیه می کند و به اجرای سیستم پایان می دهد . در مقابل، یک سیستم بلادرنگ سعی بر این دارد که یا اشکال را تصحیح کندیا در حالیکه به اجرا ادامه می دهد تأثیرات اشکال را حداقل سازد . نوعاً ، سیستم به کاربر یا فرایند کاربر اطلاع می دهد که باید عمل اشکال زدایی را آغاز کند و سپس به عملیات خود (احتمالاًدر سطح پایین تری از خدمت دهی ) ادامه می دهد. در صورتی که خاموش کردن سیستم لازم باشد ، برای حفظ سازگاری پرونده و داده ها نیز تلاش خواهد شد. یکی از موارد مهم نرمش با خطا به عنوان پایداری شناخته می شود. یک سیستم بلادرنگ پایدار در مواردی که ارضای تمام مهلتهای زمانی وظیفه غیر ممکن باشد ، مهلتهای زمانی وظیفه های بسیار حساس و اولویت بالاتر را (حتی با عدم رعایت مهلتهای زمانی وظیفه های با حساسیت کمتر ) برآورده می کند. برای برآوردن نیازهای ذکر شده ، سیستمهای بلادرنگ امروزی نوعاً شامل خصوصیات زیر هستند :
این فایل در قالب ورد و قابل ویرایش در 76 صفحه می باشد.
فصل اول : زمانبندی بلادرنگ۷
مقدمه۸
مشخصات سیستم های بلادرنگ۹
زمانبندی بلادرنگ۱۴
رویکردهای ایستای مبتنی بر جدول۱۶
رویکردهای ایستای مبتنی بر اولویت و با قبضه کردن۱۶
رویکردهای پویا بر اساس برنامه ریزی۱۶
رویکردهای پویا با بهترین کوشش۱۷
زمانبندی ایستا مبتنی بر جدول۱۸
زمانبندی ایستای مبتنی بر اولویت و با قبضه کردن۱۸
زمانبند مهلت زمانی۱۸
زمانبندی Linux 26
زمانبندی Unix SVR428
فصل دوم : الگوریتم های برنامه ریزی و حمایت سیستم های اجرایی برای سیستم های بلادرنگ۳۱
خلاصه۳۲
برنامه ریزی بلادرنگ۳۵
متریک های اجرا در سیستم های بلادرنگ۳۶
الگوهای برنامه ریزی۳۸
الگوریتمهای برنامه ریزی برای این الگوها۴۰
برنامه ریزی ثابت Table –Driven 41
برنامه ریزی priority driven preemptive 42
برنامه ریزی دینامیک ۴۳
برنامه ریزی Best –Effort دینامیک۴۴
موضوعات برنامه ریزی مهم۴۵
برنامه ریزی با محدودیتهای توان خطا۴۵
برنامه ریزی با احیای منابع۴۶
سیستم اجرایی بلادرنگ ۴۶
هسته های کوچک ، سریع و اختصاصی۴۷
توسعه های زمان واقعی برای سیستم های اجرای بازرگانی۴۸
سیستم های اجرای تحقیق۵۰
هسته MARS51
هسته SPRING52
هستهMARUTI 52
هسته ARTS 52
فصل سوم : بررسی ارتباط میان اجزای یک سیستم جامع بلادرنگ ۵۵
خلاصه۵۶
شرح رابط میان RTOS و برنامه کاربردی۵۸
شرح عملگرهای بهبودیافته۶۳
تشریح مطالعات تجربی۶۹
فصل چهارم : منابع۷۳
[۱] M. A. Tsoukarellas, V. C. Gerogiannis and K. D. Economides, “Systemically Testing a Real-Time Operating System”, IEEE Micro, Vol.15, pp.50-60, ۱۹۹۵٫
[۲] EIA/TIA-232-C, Interface Between Data Terminal Equipment and Data Circuit-Terminating Equipment Employing Serial Binary Data Interchange, EIA (Electronic Industries Alliance), 1991.
[3] A. Sung, B. Choi and S. Shin, “An Interface Test Model for Hardware-dependent Software and Embedded OS API of the Embedded System”, Journal of Computer Standards and Interfaces, ELSEVIER, ۲۰۰۶, to be published.
[4] R. A. Demillo, R. J. Lipton and F. G. Sayward, “Hints on Test Data Selection: Help for the practicing programmer”, IEEE Computer, Vol.11, pp.34-31, 1978.
[5] A. J. Offutt, “Investigations of the Software Testing Coupling Effect”, ACM Transactions on Software Engineering and Methodology, Vol.1, pp.5-20, 1992.
[6] M. E. Delamaro, J. C. Maldonado and A. P. Mathur, ”Interface Mutation: An Approach for Integration Testing”, IEEE Transactions on Software Engineering, vol.27, pp228~247, 2001.
[7] Technical Report SERC-TR-41-P, Design of Mutant Operators for the C Programming Language, Software EngineeringResearchCenter, PurdueUniversity, Rev.1.04, 2006.
[8] R. T. Alexander, J. M. Bieman, S. Chosh and B. Ji., ”Mutation of Java Objects”, in the Proc. of International Symposium on. Software Reliability Engineering, pp.341~351, 2002.
[9] H. Yoon, and B. Choi, “Effective Test Case Selection for Component Customization and Its Application to EJB”, The Software Testing, Verification and Reliability Journal, vol.14, pp.45~70, 2004.
[10] A. Jerraya and W. Wolf, “Hardware/Software Interface Codesign for Embedded Systems”, IEEE Computer, Vol.38, pp.63~69, 2005.
[11] IEEE Standard 1003.1-2001, IEEE Standard for Information technology – POSIX (Portable Operating System Interface), IEEE, 2001.
[12] J.J Labrosse, MicroC/OS-II, The Real-Time Kernel, CMP Books, 1999.
[13] A. Mader, “A Classification of PLC Models and Applications”, in the Proc. of International Workshop on Discrete Event Systems — Discrete Event Systems, Analysis and Control, Kluwer Academic Publishers, pp.239-247, 2000.
[14] TMS320C32 Digital Signal Processor available in , Texas Instrument, 1998.
[15] IEC, International Standard for Programmable Controllers: Programming Languages, Technical Report IEC 1131 part 3, IEC (International Electro technical Commission), 1993.
[16] KNICS-PLC-SDS331-01, Software Design Specification for the PLC Processor Module, KAERI (Korea Atomic Energy Research Institute), 2006.
[17] S. E. Chodrow, F. Jahnian,and M. Donner, “Run-Time Monitoring of Real-Time Systems”, in the Proc. of Run-Time Systems Symposium, IEEE, pp.74-83, 1991.
[18] S. Ricardo and Jr. J. R. de Almeida, “Run-Time Monitoring for Dependable Systems: an Approach and a Case Study”, in the Proc. of International Symposium on Reliable Distributed System, IEEE, pp.41-49, 2004.
[19] SPRU296, Code Composer User’s Guide, Texas Instrument, 1999.
[20] J.H. Andrews, L.C. Briand and Y. Labiche, “Is Mutation an Appropriate Tool for Testing Experiments?”, in the Proc. of International Conference on Software Engineering, pp. 402~411, ۲۰۰۵
مهمترین کاربرد سیستمهای بلادرنگ در رابطه با عملیات کنترل پردازش است . خاصیت مهم سیستم عاملهای بلادرنگ این است که هر فعل و انفعال با کامپیوتر بایستی یک پاسخ در مدت زمانی که از قبل تعیین شده است دریافت دارد . سیستم بایستی بتواند این زمان پاسخ را گارانتی بکند (عواقب زمان پاسخ بد در رابطه با سیستمی که یک هواپیما و یا یک کارخانه شیمیایی را کنترل میکند را میتوان براحتی تصور کرد ) . مسئله زمان پاسخ در عمل به این معناست که معمولاً نرم افزار بصورت خاص-منظور است و به کاربرد بخصوصی اختصاص یافته است . دستگاههای جنبی چنین سیستمهایی نیز به احتمال قوی دستگاههای بخصوصی هستند . مثلاً ممکن است که از وسایل حس کننده که با سیگنالهای آنالوگ عمل می کنند به جای ترمینالهای عادی استفاده شوند
سیستمهای عامل بلادرنگ را میتوان با داشتن ملزومات یگانه در پنج حوزه عمومی زیر مشخص نمود:
· قطعی بودن
· پاسخ دهی
· کنترل کاربر
· قابلیت اطمینان
· نرمش با خطا
سیستم عاملی قطعی است که عملیات خود را در زمانهای ثابت یا فواصل زمانی از پیش تعیین شده ، انجام دهد. وقتی چند فرایند در رقابت برای منابع و زمان پردازنده هستند ، هیچ سیستمی نمی تواند قطعی باشد. در یک سیستم عامل بلادرنگ ، درخواستهای فرایند برای خدمت توسط رخدادها و زمانبندی های خارجی اعمال می شود. میزان پاسخگویی سیستم عامل به درخواستها ، اولاً به سرعتی که می تواند به وقفه ها پاسخ دهد و ثانیاً به اینکه آیا سیستم ظرفیت کافی برای اداره تمام درخواستها ، در زمان معلوم دارد یا خیر، وابسته است .
یک معیار مفید برای قابلیت عملکرد قطعی سیستم عامل، حداکثر تأخیر از زمان ورود یک وقفه دستگاه با اولویت بالا ، تا زمان شروع خدمت است . در سیستم های عامل غیر بلا درنگ ، این تأخیر ممکن است در محدوده دهها تا صدها میلی ثانیه باشد ، در حالیکه در یک سیستم عامل بلادرنگ ممکن است این تأخیر حد بالایی از محدوده چند میکرو ثانیه تا یک میلی ثانیه داشته باشد .
یک مشخصه مربوط ولی مجزا ، پاسخ دهی است. قطعی بودن درباره این است که سیستم عامل پس از تصدیق ، چه مدت صرف خدمت دادن به وقفه می نماید . موارد پاسخ دهی عبارتند از :
۱٫ مقدار زمان لازم برای اداره اولیه وقفه و شروع به اجرای روال خدماتی وقفه . اگر برای اجرای روال خدماتی وقفه نیاز به تغییر متن باشد ، تأخیر بیش از حالتی است که می توانست روال خدماتی وقفه در متن فرایند جاری اجرا گردد .
۲٫ مقدار زمان لازم برای اجرای روال خدماتی وقفه. معمولاً این زمان بستگی به سخت افزار دارد.
۳٫ تأثیر تو در تو بودن وقفه ها . اگر یک روال خدماتی وقفه با ورود وقفه دیگری دچار وقفه شود، خدمت مربوط به آن دچار تأخیر میگردد.
قطعی بودن و پاسخ دهی به همراه هم ، زمان پاسخ به رخدادهای خارجی را تعیین می کنند. ویژگی زمان پاسخ در سیستم های بلادرنگ بسیار حساس است ، زیرا چنین سیستم هایی باید نیازهای زمانی اعمال شده توسط افراد ، دستگاهها و جریان داده ها در خارج از سیستم را رعایت کنند.
عموماً کنترل کاربر در یک سیستم بلادرنگ بسیار وسیع تر از کنترل کاربر در سیستم عامل عادی است .
در سیستم عامل عادی، کاربر یا هیچ گونه کنترلی بر عمل زمانبندی ندارد یا فقط می تواند رهنمونهای کلی ارائه کند. مثلاً کاربران را از نظر اولویت طبقه بندی نماید . ولی در یک سیستم بلادرنگ لازم است به کاربر اجازه کنترل دقیق اولویت وظیفه داده شود. کاربر باید بتواند میان وظیفه های سخت و نرم تفاوت قائل شود و اولویتهای نسبی در هر طبقه را تعیین نماید . همچنین یک سیستم بلادرنگ به کاربر اجازه می دهد تا مشخصاتی مثل استفاده از صفحه بندی یا مبادله فرا یند ، کدام فرایندها باید در حافظه اصلی مقیم باشند ، کدام الگوریتم های انتقال از دیسک به کار گرفته شوند و اینکه فرایندهای در اولویتهای متفاوت چه حقوقی داشته باشند را تعیین نماید .
قابلیت اطمینان نوعاً در سیستم های بلادرنگ بسیار مهمتر از سیستم های عادی است .
یک خرابی گذرا در سیستم غیر بلادرنگ ممکن است تا تعمیر یا تعویض آن ، منجر به سطح خدمت دهی پایین تر گردد . ولی در سیستم بلادرنگی که در حال پاسخ دهی و کنترل رخدادها در زمان حقیقی است ، از دست رفتن یا کاهش کارآمدی یک پردازنده می تواند عواقب فاجعه آمیزی (از ضرر مادی گرفته تا آسیب دیدگی کلی دستگاهها یا حتی ازدست رفتن جانها )داشته باشد.
همانگونه که در سایر موارد نیز دیده می شود . تفاوت سیستم عامل بلادرنگ و غیر بلادرنگ در یک درجه است . حتی یک سیستم بلادرنگ نیز باید به گونه ای طراحی شود که به حالات مختلف خرابی ، پاسخ دهد.
به مشخصه ای اشاره دارد که با خرابی سیستم ، تا حد ممکن قابلیتها و داده های آن حفظ شود . مثلاً یک سیستم سنتی UNIX ، وقتی خراب شدن داده ها در هسته سیستم عامل را تشخیص دهد ، یک پیام شکست بر روی میز فرمان متصدی ارائه کرده ، محتویات حافظه را برای تجزیه و تحلیل بعدی شکست ، بر روی دیسک تخلیه می کند و به اجرای سیستم پایان می دهد .
در مقابل، یک سیستم بلادرنگ سعی بر این دارد که یا اشکال را تصحیح کندیا در حالیکه به اجرا ادامه می دهد تأثیرات اشکال را حداقل سازد . نوعاً ، سیستم به کاربر یا فرایند کاربر اطلاع می دهد که باید عمل اشکال زدایی را آغاز کند و سپس به عملیات خود (احتمالاًدر سطح پایین تری از خدمت دهی ) ادامه می دهد. در صورتی که خاموش کردن سیستم لازم باشد ، برای حفظ سازگاری پرونده و داده ها نیز تلاش خواهد شد.
یکی از موارد مهم نرمش با خطا به عنوان پایداری شناخته می شود. یک سیستم بلادرنگ پایدار در مواردی که ارضای تمام مهلتهای زمانی وظیفه غیر ممکن باشد ، مهلتهای زمانی وظیفه های بسیار حساس و اولویت بالاتر را (حتی با عدم رعایت مهلتهای زمانی وظیفه های با حساسیت کمتر ) برآورده می کند.
برای برآوردن نیازهای ذکر شده ، سیستمهای بلادرنگ امروزی نوعاً شامل خصوصیات زیر هستند :
· تعویض سریع فرایند یا نخ
· اندازه کوچک
· قابلیت پاسخ سریع به وقفه های خارجی
· عملکرد چند وظیفه ای با ابزارهای ارتباط بین فرایندها ،از قبیل راهنماها ، علائم و رخدادها
· استفاده از پرونده های ترتیبی خاصکه می توانند داده ها را با نرخ سریعی انباشته کنند.
· زمانبندی یا قبضه کردن بر اساس اولویت
· حداقل سازی فواصل زمانی که طی آن وقفه ها غیر فعال می شوند.
· اولیه هایی جهت تأخیر انداختن وظیفه ها برای یک مدت ثابت و برای توقف یا از سرگیری وظیفه ها
· هشدارها و علائم پایان مهلت زمانی خاص
قلب یک سیستم عامل بلادرنگ زمانبند کوتاه مدت وظیفه هاست برای طراحی چنین زمانبندی، عدالت و حداقل سازی متوسط زمان پاسخ مهم نیست. آنچه مهم است تکمیل (یا شروع) کلیه وظیفه های بلادرنگ سخت در مهلت زمانی آنها و همچنین تکمیل (یا شروع) حداکثر وظیفه های بلادرنگ نرم در مهلت زمانی آنهاست.
اغلب سیستمهای عامل بلادرنگ امروزی قادر نیستند مستقیماً با مهلتهای زمانی مقابله کنند. در عوض، به گونه ای طراحی شده اندکه تا حد امکان به وظیفه های بلادرنگ پاسخگو باشند. به طوری که وقتی یک مهلت زمانی نزدیک می شود ، یک وظیفه به سرعت زمانبندی گردد. از این دیدگاه ،کاربردهای بلادرنگ، نوعاً نیاز به زمانهای پاسخ قطعی (در محدوده چندین میلی ثانیه تا زیر میلی ثانیه ) تحت شرایط بسیار متفاوت دارند. کاربردهای سریعتر(مثلاًدر شبیه ساز هواپیمای نظامی) محدودیتهایی در حدود۱۰ تا۱۰۰ میکرو ثانیه دارند.
شکل۱-۱ طیفی از موارد ممکن را نشان می دهد. در یک زمانبند با قبضه کردن که زمانبندی ساده نوبت گردشی را به کار می گیرد ، یک وظیفه بلادرنگ به صف آماده افزوده می شودتا برهه زمانی بعدی را بدست آورد(شکل ۱-۱ الف) . در این مورد معمولاً مدت زمانبندی برای کاربردهای بلادرنگ قابل قبول نیست . به طور جایگزین، در یک زمانبند بدون قبضه کردن ، می توانیم از یک راهکار زمانبندی اولویت دار استفاده کنیم و به وظیفه های بلادرنگ اولویت بالاتری دهیم. وظیفه بلادرنگی که آماده باشد، به محض اینکه فرایند جاری مسدود گردد یا به پایان برسد ،زمانبندی خواهد شد(شکل۱-۱ ب) . اگر یک وظیفه کند و با اولویت پایین در بخش بحرانی خود در حال اجرا باشد،این عمل می تواند به تأخیر چندین ثانیه ای منجر گردد. پس این رویداد هم نمی توندقابل قبول باشد. یک رویکرد امید بخش تر ترکیب اولویتها و وقفه های بر پایة ساعت است.قبضه کردنها در فواصل منظم رخ می دهند،وقتی یک نقطه قبضه کردن می رسد ، اگر وظیفه با اولویت تری در انتظار باشدوظیفه جاری قبضه می گردد، حتی اگر شامل وظیفه هایی باشد که بخشی از هسته سیستم عامل هستند. چنین تأخیری می تواند در حد چندین میلی ثانیه باشد(شکل۱-۱ ج). اگرچه رویکرد آخر می تواند برای برخی از کاربردهای بلادرنگ کافی باشد، ولی برای کاربردهایی که انتظارات بیشتری دارند کافی نخواهد بود و در این موارد رویکرد انتخاب شده گاهی به نام قبضه کردن فوری خوانده می شود.
در این رویکرد، سیستم عامل تقریباً بلافاصله به وقفه پاسخ می دهد، مگر اینکه سیستم در بخش قفل شده بحرانی قرار داشته باشد. به این ترتیب تأخیر زمانی برای یک وظیفه بلادرنگ می تواند به ۱۰۰ میکروثانیه یا کمتر کاهش یابد.
زمانبندی بلادرنگ یکی از موضوعات فعال در تحقیقات علوم کامپیوتر است. در این قسمت رویکردهای متفاوت زمانبندی بلادرنگ را مرور کرده و نگاهی به دو طبقه مرسوم از الگوریتم های زمانبندی بلادرنگ ،می پردازیم.
در بررسی الگوریتم های زمانبندی بلادرنگ ، مشاهده می شود که رویکردهای متفاوت زمانبندی به موارد زیر بستگی دارد:
۱٫ آیا سیستم قابلیت زمانبندی را تحلیل می کند؟
۲٫ اگر انجام می دهد ،این تحلیل را بطور ایستا انجام می دهد یا پویا ؟
۳٫ آیا نتیجه تجزیه وتحلیل ،خود موجب یک زمانبندی یا طرحی برای توزیع وظیفه ها در زمان اجرا می گردد ؟ بر اساس این ملاحظات ، طبقه های الگوریتمی زیر را مشخص کرده است :
· رویکردهای ایستای مبتنی بر جدول:
در این رویکردها تحلیلی ایستا از زمانبندیهای ممکن انجام می گیرد. نتیجه این تحلیل یک زمانبندی است که در زمان اجرا تعیین می کند چه موقعی یک وظیفه باید شروع به اجرا کند.
· رویکردهای ایستای مبتنی بر اولویت و با قبضه کردن:
باز هم یک تحلیل ایستا انجام می پذیرد، ولی زمانبندی از آن حاصل نمی شود. در عوض، از این تحلیل برای تعیین اولویت وظیفه ها استفاده می گردد، به طوری که یک زمانبند سنتی مبتنی بر اولویت و با قبضه کردن بتواند استفاده شود.
· رویکردهای پویا بر اساس برنامه ریزی :
به جای اینکه امکان سنجی قبل از شروع اجرا و به طور ایستا انجام شود،در زمان اجرا و به صورت پویا صورت می گیرد. وظیفه جدید فقط زمانی برای اجرا پذیرفته می شودکه ارضای محدودیتهای زمانی آن ممکن باشد. یکی از نتایج این تحلیل و امکان سنجی ، زمانبندی یا طرحی است که برای تصمیم در مورد توزیع وقت پردازنده به این وظیفه به کار می رود.
· رویکردهای پویا با بهترین کوشش:
هیچ گونه تحلیل و امکان سنجی انجام نمی گیرد . سیستم سعی می کند تمام مهلتهای زمانی را بر آورده کندو هر فرایند آغاز شده ای که مهلت زمانی آن منقضی شده باشد را قطع می نماید.
زمانبندی ایستای مبتنی بر جدول، برای وظیفه های متناوب کاربرد دارد . ورودیهای تحلیل ، شامل زمان ورود متناوب ، زمان اجرا ، پایان مهلت زمانی متناوب و اولویت نسبی هر وظیفه است . زمانبند سعی می کند نیازهای کلیه وظیفه های متناوب را بر آورده نماید. این رویکرد قابل پیش بینی ولی بدون انعطاف است. زیرا هر تغییر در نیازهای یک وظیفه، نیازمند زمانبندی مجدد است.روش زودترین مهلت زمانی اول یا دیگر روشهای مهلت زمانی متناوب نمونه هایی از این گروه از الگوریتم های زمانبندی هستند.
زمانبندی ایستای مبتنی بر اولویت و با قبضه کردن،از راهکارهای زمانبندی مبتنی بر اولوطت و با قبضه کردن که در اغلب سیستمهای چند برنامه ای غیر بلادرنگ معمول است،استفاده می کند. در یک سیستم غیر بلادرنگ عوامل متعددی برای تعیین اولویت به کار می روند. مثلاً در یک سیستم اشتراک زمانی ، اولویت فرایند بسته به اینکه در تنگنای پردازنده یا در تنگنای ورودی/ خروجی باشدتغییر می کند. در سیستم بلادرنگ تخصیص اولویت به محدودیتهای زمانی هر وظیفه مربوط است. یکی از مثالهای این رویکرد الگوریتم نرخ یکنواخت است، که اولویت ایستای وظیفه بر اساس طول تناوب آنها مشخص می گردد.
در زمانبندی پویا بر اساس برنامه ریزی ، پس از ورود یک وظیفه و قبل از شروع آن کوشش می شود تا علاوه بر وظیفه های زمانبندی شده قبلی ، این جدید نیز در زمانبندی قرار گیرد. اگر ورودی جدید بتواند به گونه ای زمانبندی شود که مهلتهای زمانی آن برآورده شود و هیچ یک از وظیفه هایی که در حال حاضر زمانبندی شده اند مهلت زمانی را از دست ندهند ،در این صورت زمانبندی ، برای جا دادن وظیفه جدید ، مورد تجدید نظر قرار می گیرد.
زمانبندی پویا با بهترین کوشش، رویکردی است که توسط بسیاری از سیستمهای عامل بلادرنگ تجاری امروزی به کار گرفته می شود. زمانی که وظیفه ای وارد می شود، سیستم بر اساس مشخصات وظیفه ،اولویتی به آن می دهد . نوعاً گونه ای از زمانبندی مهلت زمانی (مانند زودترین مهلت زمانی )به کار گرفته می شود. معمولاً وظیفه ها نامتناوب هستندو در نتیجه تجزیه و تحلیل ایستای زمانبندی ممکن نیست. با این نوع زمانبندی ، تا آمدن یک مهلت زمانی یا تکمیل آن وظیفه ،نمی دانیم که محدودیت زمانی برآورده خواهد شدیا خیر. این مهمترین عیب این نوع زمانبندی است، مزیت آن سادگی پیاده سازی آن است
این فایل در قالب ورد وقابل ویرایش در 103 صفحه می باشد .
پایان نامه کارشناسی ارشد مخابرات سیستم
پیاده سازی بلادرنگ کدک صحبت استاندارد G.728
بر روی پردازنده TMS320C5402
چکیده
کدک صحبت استاندارد G.728 ، یک کدک کم تاخیر است که صحبت با کیفیت عالی را در نرخ بیت 16 kbps ارائه می دهد و برای شبکه های تلفن ماهواره ای و اینترنت و موبایل که به تاخیر زیاد حساس هستند ، مناسب است. در این رساله به پیاده سازی بلادرنگ اینکدر و دیکدر G.728 بصورت دوطرفه کامل ( Full Duplex ) بر روی پردازنده TMS320C5402 می پردازیم .
روشی ترکیبی برای برنامه نویسی TMS ارائه می شود که در آن زمان وپیچیدگی برنامه نویسی نسبت به برنامه نویسی دستی به 30% کاهش می یابد . در این روش پس از برنامه نویسی و شبیه سازی ممیزثابت الگوریتم کدک به زبان C ، با استفاده از نرم افزار ( Code Composer Studio ) CCS ، برنامه به زبان اسمبلی ترجمه شده و بهینه سازی دستی در کل کد اسمبلی صورت می گیرد . سپس بعضی از توابع مهم برنامه از نظر MIPS ، بصورت دستی به زبان اسمبلی بازنویسی می شوند تا برنامه بصورت بلادرنگ قابل اجرا گردد . در پایان نتایج این پیاده سازی ارائه می شود .
کلمات کلیدی
کدینگ و فشرده سازی صحبت ، پیاده سازی بلادرنگ ، DSP ، TMS320C5402 ، برد DSK
فهرست
- مقدمه 4
فصل 1 : بررسی و مدل سازی سیگنال صحبت
1-1- معرفی سیگنال صحبت 6
1-2- مدل سازی پیشگویی خطی 10
1-2-1- پنجره کردن سیگنال صحبت 11
1-2-2- پیش تاکید سیگنال صحبت 13
1-2-3- تخمین پارامترهای LPC 14
فصل 2 : روش ها و استانداردهای کدینگ صحبت
2-1- مقدمه 15
2-2- روش های کدینگ 19
2-2-1- کدرهای شکل موج 21
2-2-2- کدرهای صوتی 22 2-2-3- کدرهای مختلط 24
الف- کدرهای مختلط حوزه فرکانس 27
ب- کدرهای مختلط حوزه زمان 29
فصل 3 : کدر کم تاخیر LD-CELP
3-1- مقدمه 34
3-2- بررسی کدرکم تاخیر LD-CELP 36
3-2-1- LPC معکوس مرتبه بالا 39
3-2-2- فیلتر وزنی شنیداری 42
3-2-3- ساختار کتاب کد 42
3-2-3-1- جستجوی کتاب کد 43
3-2-4- شبه دیکدر 45
3-2-5- پست فیلتر 46
فصل 4 : شبیه سازی ممیزثابت الگوریتم به زبان C
4-1- مقدمه 49
4-2- ویژگی های برنامه نویسی ممیزثابت 50
4-3- ساده سازی محاسبات الگوریتم 53
4-3-1- تطبیق دهنده بهره 54
4-3-2- محاسبه لگاریتم معکوس 58
4-4- روندنمای برنامه 59
4-4-1- اینکدر 63
4-4-2- دیکدر 69
فصل 5 : پیاده سازی الگوریتم برروی DSP
5-1- مقدمه 74
5-2- مروری بر پیاده سازی بلادرنگ 75
5-3- چیپ های DSP 76
5-3-1- DSP های ممیزثابت 77
5-3-2- مروری بر DSP های خانواده TMS320 78
5-3-2-1- معرفی سری TMS320C54x 79
5-4- توسعه برنامه بلادرنگ 81
5-5- اجرای برنامه روی برد توسعه گر C5402 DSK 82
5-5-1- بکارگیری ابزارهای توسعه نرم افزار 84
5-5-2- استفاده از نرم افزارCCS 86
5-5-3- نتایج پیاده سازی 94
5-6- نتیجه گیری و پیشنهاد 97
- ضمائم
- ضمیمه (الف) : دیسکت برنامه های شبیه سازی ممیز ثابت به زبان C و
پیاده سازی کدک به زبان اسمبلی - ضمیمه (ب) : مقایسه برنامه نویسی C و اسمبلی 98
- مراجع 103
- مقدمه
امروزه در عصر ارتباطات و گسترش روزافزون استفاده از شبکه های تلفن ،موبایل و اینترنت در جهان ومحدودیت پهنای باند در شبکه های مخابراتی ، کدینگ و فشرده سازی صحبت امری اجتناب ناپذیر است . در چند دهه اخیر روشهای کدینگ مختلفی پدیدآمده اند ولی بهترین و پرکاربردترین آنها کدک های آنالیزباسنتز هستند که توسط Atal & Remedeدر سال 1982 معرفی شدند [2] . اخیرا مناسبترین الگوریتم برای کدینگ صحبت با کیفیت خوب در نرخ بیت های پائین و زیر 16 kbps ، روش پیشگویی خطی باتحریک کد (CELP) می باشد که در سال 1985 توسط Schroeder & Atal معرفی شد [8] و تا کنون چندین استاندارد مهم کدینگ صحبت بر اساس CELP تعریف شده اند .
در سال 1988 CCITT برنامه ای برای استانداردسازی یک کدک 16 kbps با تاخیراندک و کیفیت بالا در برابر خطاهای کانال آغاز نمود و برای آن کاربردهای زیادی همچون شبکه PSTN ،ISDN ،تلفن تصویری و غیره در نظر گرفت . این کدک در سال 1992 توسط Chen et al. تحت عنوان LD-CELP معرفی شد[6] و بصورت استاندارد G.728 در آمد[9] و در سال 1994 مشخصات ممیز ثابت این کدک توسط ITU ارائه شد[10] . با توجه به کیفیت بالای این کدک که در آن صحبت سنتزشده از صحبت اولیه تقریبا غیرقابل تشخیص است و کاربردهای آن در شبکه های تلفن و اینترنت و ماهواره ای در این گزارش به پیاده سازی این کدک می پردازیم .
در فصل اول به معرفی وآنالیز سیگنال صحبت پرداخته می شود و در فصل دوم روش ها و استانداردهای کدینگ بیان می شوند . در فصل سوم کدک LD-CELP را بیشتر بررسی می کنیم و در فصل چهارم شبیه سازی ممیز ثابت الگوریتم به زبان C را بیان می نمائیم. ودر پایان در فصل 5 به نحوه پیاده سازی بلادرنگ کدکG.728 بر روی پردازنده TMS320C5402 می پردازیم.
فرمت فایل : WORD ( قابل ویرایش ) تعداد صفحات:76
مقدمه:
مهمترین کاربرد سیستمهای بلادرنگ در رابطه با عملیات کنترل پردازش است . خاصیت مهم سیستم عاملهای بلادرنگ این است که هر فعل و انفعال با کامپیوتر بایستی یک پاسخ در مدت زمانی که از قبل تعیین شده است دریافت دارد . سیستم بایستی بتواند این زمان پاسخ را گارانتی بکند (عواقب زمان پاسخ بد در رابطه با سیستمی که یک هواپیما و یا یک کارخانه شیمیایی را کنترل میکند را میتوان براحتی تصور کرد ) . مسئله زمان پاسخ در عمل به این معناست که معمولاً نرم افزار بصورت خاص-منظور است و به کاربرد بخصوصی اختصاص یافته است . دستگاههای جنبی چنین سیستمهایی نیز به احتمال قوی دستگاههای بخصوصی هستند . مثلاً ممکن است که از وسایل حس کننده که با سیگنالهای آنالوگ عمل می کنند به جای ترمینالهای عادی استفاده شوند
فهرست مطالب: · فصل اول : زمانبندی بلادرنگ مقدمه............................................................................................................................. 2 مشخصات سیستم های بلادرنگ..................................................................................... 3 زمانبندی بلادرنگ........................................................................................................ 8 رویکردهای ایستای مبتنی بر جدول.......................................................................... 10 رویکردهای ایستای مبتنی بر اولویت و با قبضه کردن............................................... 10 رویکردهای پویا بر اساس برنامه ریزی...................................................................... 10 رویکردهای پویا با بهترین کوشش............................................................................. 11 زمانبندی ایستا مبتنی بر جدول.................................................................................. 11 زمانبندی ایستای مبتنی بر اولویت و با قبضه کردن................................................... 11 زمانبند مهلت زمانی..................................................................................................... 12 زمانبندی Linux ..................................................................................................... 19 زمانبندی Unix SVR4............................................................................................. 21 · فصل دوم : الگوریتم های برنامه ریزی و حمایت سیستم های اجرایی برای سیستم های بلادرنگ خلاصه.......................................................................................................................... 26 برنامه ریزی بلادرنگ.................................................................................................. 29 متریک های اجرا در سیستم های بلادرنگ................................................................ 30 الگوهای برنامه ریزی................................................................................................. 32 الگوریتمهای برنامه ریزی برای این الگوها............................................................... 32 برنامه ریزی ثابت Table –Driven .................................................................... 36 برنامه ریزی priority driven preemptive .................................................. 37 برنامه ریزی دینامیک ................................................................................................. 39 برنامه ریزی Best –Effort دینامیک..................................................................... 40 موضوعات برنامه ریزی مهم........................................................................................ 41 برنامه ریزی با محدودیتهای توان خطا..................................................................... 41 برنامه ریزی با احیای منابع......................................................................................... 43 سیستم اجرایی بلادرنگ ............................................................................................ 43 هسته های کوچک ، سریع و اختصاصی..................................................................... 44 توسعه های زمان واقعی برای سیستم های اجرای بازرگانی..................................... 46 سیستم های اجرای تحقیق.......................................................................................... 48 هسته MARS.............................................................................................................. 50 هسته SPRING......................................................................................................... 50 هستهMARUTI ......................................................................................................... 51 هسته ARTS ............................................................................................................. 51 · فصل سوم : بررسی ارتباط میان اجزای یک سیستم جامع بلادرنگ خلاصه.......................................................................................................................... 54 شرح عملگرهای بهبودیافته......................................................................................... 60 تشریح مطالعات تجربی................................................................................................ 67 فصل چهارم : منابع...................................................................................................... 70
فهرست جدول ها و شکلها :
شکل 1 – 1 : زمانبندی یک فرایند بلادرنگ-------------------9
شکل 1 – 2 : زمانبندی وظیفه های بلادرنگ متناوب با مهلتهای زمانی کامل شدن-----------------------------------------------16
شکل 1 – 3 : زمانبندی وظیفه های بلادرنگ نامتناوب با مهلتهای زمانی در شروع----------------------------------------------18
شکل 1 – 4 : مثالی از زمانبندی Linux----------------------21
شکل 1 – 5: طبقه های اولویت در SVR4 --------------------23
جدول 1 -1 : اطلاعات اجرای دو وظیفه متناوب-----------------16
جدول1 – 2: اطلاعات اجرای پنج وظیفه نامتناوب---------------19
شکل 3– 1: معماری سیستم جامع---------------------------57
شکل 3 – 2 : پروتکل ارتباط RS- 232C ----------------------58
شکل 3 – 3: خطای checksum ----------------------------60
شکل 3 – 4 : زمان تزریق خطا------------------------------62
شکل 3 – 5 : عملگرهای جهش یافته-------------------------65
شکل 3 – 6 : مثالی از CRM ------------------------------66
شکل 3 – 7 : مثالی از CRH ------------------------------66
جدول 3 – 1: رابط میان RTOS و برنامه---------------------59
جدول 3 – 2 : محل تزریق خطا----------------------------63
جدول 3 – 3 : RTOS و برنامه های کاربردی -----------------68
جدول 3 – 4 : تعداد رابطهای بین RTOS و برنامه--------------69