چکیده
امروزه سیستم عاملها بخشی جداییناپذیر سیستمهای کامپیوتری هستند. سیستم عاملهای زمان واقعی (RTOS) نوع خاصی از سیستم عامل هستند که هدف اصلی آنها درستی عمل و ارائه نتایج صحیح و معتبر در یک زمان محدود و از پیش تعیین شده است. RTOS بهطور گسترده در حوزه ایمنی بحرانی استفاده میشود. در این حوزه تمام نیازهای سیستم باید مرتفع گردد و اگر سیستم نتواند یک فاجعه رخ میدهد. از این رو، تحملپذیری خطا یک نیاز ضروری از RTOS به کار برده شده در حوزه ایمنی بحرانی است. در دهههای گذشته، تکنیکهای تحملپذیری خطا برای حفاظت از بخشهای مختلف یک RTOS در برابر خطاها مطرح شده است. در این مقاله، پس از ارائه مفاهیم اساسی و RTOS، برخی از ویژگیهای این سیستم عامل بررسی شده و پس از آن تعدادی از تکنیکهای تحملپذیری خطا که میتواند برای هر یک از ویژگیهای کاربردی و تاثیر آنها بر قابلیت اطمینان سیستم بهکار برده شود بررسی شده است. سهم اصلی از این کار بررسی و طبقهبندی تکنیکهای مختلف تحملپذیری خطا قابل اجرا در RTOS براساس ویژگیهای سیستم عامل است.
1. مقدمه
"یک سیستم عامل بهعنوان یک واسطه بین کاربر یک کامپیوتر و سختافزار کامپیوتر عمل میکند. هدف از یک سیستم عامل ارائه یک محیط است که در آن کاربر میتواند برنامه را به شیوهای مناسب و کارآمد اجرا کند"[1]. در واقع نقش اصلی یک سیستم عامل بهکار بردن برخی از روشهای مدیریت سیستم کامپیوتر، مانند پردازنده برنامهریزی، پردازش و مدیریت موضوع، ارتباط بین فرآیند، مدیریت حافظه، مدیریت I / O، کنترل همزمانی، بخش انتقادی، هماهنگسازی، قطع و راهاندازی رویداد، کنترل ساعت و غیره است که بهعنوان ویژگیهای سیستم عامل شناخته شده است.
در جهان غیرزمان واقعی، دامنه مقادیر، بُعد محاسبات و صحت نتایج با شرط کافی برای مشخص کردن نتایج معتبر است. گنجاندن حوزه زمان در سیستمهای زمان واقعی یک بُعد جدید به محاسبات میافزاید. برنامههای زمان واقعی علاوه بر تصحیح نتایج، باید به تولید نتایج معتبر نیز منجر شود. در این برنامه، صحت نتایج تولید شده و معتبر بودن آنها در یک زمان محدود و از پیش تعیین شده بهدست آمده است که نتایج درست در زمان تولید، بهدست میآید.
سیستم عاملهای اشتراک زمانی یک محیط برای اجرای برنامه ارائه میکنند و نتایج صحیح را با استفاده از منابع نسبتا کارآمد فراهم میکنند. کنترل RTOS معمولی و کنترل برخی از فرآیندهای خارجی/اشیاء، باید از تغییرات در پروسه خارجی/شی آگاه شده و به آنها به موقع پاسخ دهد. بهمنظور پاسخگویی به چنین محدودیت زمانی، RTOS با توجه به زمان واقعی مورد نیاز باید به موقع و قابل پیشبینی باشد درحالیکه طراحی ویژگیهای سیستم عامل که پیش از ذکر شد. در واقع، RTOS باید هر دو ویژگی مناسب و پیشبینی را برای توسعه نرمافزار فراهم کند.
یک سیستم به نام ایمنی بحرانی است اگر وقوع یک شکست در مواجه با نیازمندیهای سیستم باعث اثرات فاجعه بار شود. علاوه بر نیازهای از پیش تعریف شده، این سیستم باید محدودیتهای زمان واقعی را برآورده کند اگر آنها میخواهند به انجام وظایف در نظر گرفته شده خود بهطور موثر بپردازند [2]. از این رو RTOS بهطور گسترده در سیستمهای ایمنی حساس استفاده میشود. هواپیماهای نظامی و غیر نظامی، نیروگاههای هستهای و دستگاههای پزشکی نمونههایی از سیستم ایمنی بحرانی هستند.
در سیستمهای ایمنی مهم، علاوه بر سختافزار، برنامهها و سیستم عامل میزبان نیز باید مقاوم در برابر خطا و عملیات باشد. بهعبارت دیگر، سیستم عامل به کار گرفته شده در حوزه ایمنی بحرانی باید نتایج صحیح و معتبری را در حضور و در غیاب خطا تولید کند. چنین ویژگی بهعنوان محاسبات قابل اعتماد شناخته شده است [3]. نیازمندیهای این اعتبار برای اجرای تکنیکهای تحملپذیری خطا بر روی سیستم عامل است [4]. با وجود تلاشهای انجام شده برای جلوگیری از حذف خطاها در مراحل توسعه سیستمهای ایمنی بحرانی، خطای نرمافزار هنوز بهطور کامل حذف نشده است و همچنین سختافزار سیستم هنوز هم ممکن است در حین کار بهدلیل خطای داخلی یا خارجی شکست بخورد. ازاینرو، اجرای تکنیک تحملپذیری خطا در RTOS برای تحمل خطاها در یک سیستم ایمنی بحرانی بسیار مهم است.
در این مقاله برای اولین بار برخی از مفاهیم اساسی RTOS ارائه شده و سپس تعدادی از مهمترین ویژگیهای RTOS بررسی میشود. پس از آن، برخی از تکنیکهای تحملپذیری خطای قابل اجرا با ویژگیهای ذکر شده همراه با تاثیر آنها بر قابلیت اطمینان سیستم بررسی شده است. تکنیکهای مورد بررسی شامل هر دو روش مبتنی بر نرمافزار-سختافزار است و برای تحمل خطای گذرا و دائمی بهکار برده میشود.
سازماندهی مقاله به شرح زیر است. در بخش 2 برخی مفاهیم اساسی و انواع مختلف RTOS ارائه شده است. بخش 3 به بررسی تعدادی از ویژگیهای RTOS همراه با برخی از تکنیکهای تحملپذیری خطا است که میتواند برای هر یک از ویژگیها استفاده شود. در نهایت در بخش 4 مقاله نتیجهگیری بیان شده است.
2. مفاهیم اساسی
در این بخش برای اولین بار برخی از تعاریف RTOS آورده شده است و سپس سه نوع از این سیستم عامل همراه با ملزومات اولیه مورد بحث ارائه شده است.
Abstract
Nowadays operating systems are inseparable part of computer systems. Real-time operating systems (RTOS) are a special kind of operating systems that their main goal is to operate correctly and provide correct and valid results in a bounded and predetermined time. RTOSs are widely used in safety-critical domains. In these domains all the system’s requirements should be met and a catastrophe occurs if the system fails. Hence, fault tolerance is an essential requirement of RTOSs employed in safety-critical domains. In the past decades, several fault tolerance techniques have been proposed to protect different parts of an RTOS against faults and errors. In this paper, after presenting primary concepts of RTOSs, some features of these operating systems are reviewed and then a number of fault tolerance techniques that can be applied to each feature and their impact on system reliability is investigated. The main contribution of this work is to review and categorize several fault tolerance techniques applicable to RTOSs based on the operating system’s features.
I. INTRODUCTION
“An operating system acts as an intermediary between the user of a computer and the computer hardware. The purpose of an operating system is to provide an environment in which the user can execute programs in a convenient and efficient manner”[1]. In fact the main role of an operating system is to employ some methods to manage a computer system, such as scheduling processor(s), process and thread management, inter-process communication, memory management, I/O management, concurrency control, critical sections, synchronization, interrupt and event handling, controlling timers and clocks and etc. which are known as operating systems’ features.
In the non-real-time world, the value domain is the sole dimension of computations and correctness of results is the sufficient condition to consider results as valid results. The inclusion of the time domain in real-time systems adds a new dimension to the computations. Real-time applications in addition to correct results, have to produce valid results too. In these applications, correctness is achieved when correct results are produced and validness is achieved when correct results are produced on-time, in a bounded and predetermined time.
Time-sharing operating systems provide an environment to run applications and produce correct results by utilizing resources fairly and efficiently. A typical RTOS monitors and controls some external processes/objects, and it should become aware of changes in the external process/object and respond to them in a timely manner. In order to meet such timing constraints, RTOSs should provide timeliness and predictability by considering real-time requirements while designing operating system’s features as mentioned before. In fact, RTOSs should provide both predictability and suitable feature set for application development.
A system is called safety-critical if the occurrence of a failure in meeting system requirements causes to catastrophic effects. In addition to meeting predefined requirements, these systems should satisfy real-time constraints if they want to perform their intended functions effectively [2]. Hence RTOSs are widely used in safety-critical systems. Military and civilian aircrafts, nuclear plants, and medical devices are examples of safety-critical systems.
In safety-critical systems, in addition to hardware, applications and the host operating system ought to be faulttolerant and their operations should not be failed. In other words, the operating systems employed in safety-critical domains should produce correct and valid results in the presence or in the absence of faults. Such feature is known as reliable computing [3]. Requirement of this reliability is to implement fault tolerance techniques on the operating system [4]. In spite of the efforts made to prevent and remove faults during development phases of safety-critical systems, software faults aren’t eliminated yet completely and also the system hardware may still fail during operation because of internal or external faults. Hence, implementing fault tolerance techniques on an RTOS to tolerate faults and errors in a safety-critical system is crucial.
In this paper first some basic concepts of RTOSs are presented and then a number of the most important features of RTOSs are reviewed. Afterward, some fault tolerance techniques applicable to the mentioned features along with their impact on system reliability is investigated. The investigated techniques include both hardware-based and software-based techniques which are employed to tolerate transient and permanent faults.
The organization of this paper is as follows. Section 2 presents some basic concepts and different types of RTOSs. Section 3 investigates a number of RTOSs’ features along with some fault tolerance techniques that can be applied to each feature. Finally Section 4 concludes the paper.
II. BASIC CONCEPTS
In this section first some definitions of RTOSs are presented and then three kinds of these operating systems along with their primary requirements are discussed.
چکیده
1. مقدمه
2. مفاهیم اساسی
A) سیستم عامل زمان واقعی (RTOS)
B) مهلت نرم، سفت و سخت
3. ویژگی RTOSS، و فنون تحملپذیری خطا
A) مدیریت حافظه
B) ملاحظات هسته
C) فرایند و مدیریت موضوع
D) برنامهریزی
E) ارتباطات
F) مدیریت I / O
G) بررسی وقفه
H) زبانهای برنامهنویسی
4. نتیجهگیری
منابع
Abstract
1. INTRODUCTION
2. BASIC CONCEPTS
A) Real-Time Operating System (RTOS)
B) Soft, Firm and Hard Deadlines
3. RTOSS’ FEATURES AND FAULT TOLERANCE TECHNIQUES
A) Memory Management
B) Kernel Considerations
C) Process and Thread Management
D) Scheduling
E) Communications
F) I/O Management
G) Interrupt Handling
H) Programming Languages
4. CONCLUSION
REFERENCES