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
چکیده
امروزه سیستم عامل ها بخش تفکیک ناپذیر سیستم های کامپیوتری هستند. سیستم عامل های بلادرنگ (RTOS)، نوع مخصوصی از سیستم عامل ها هستند که هدف اصلی آن ها عمل کردن به درستی و ارائه نمودن نتایج صحیح و معتبر در زمانی محدود و از پیش تعیین شده است. RTOS ها به طور گسترده در محدوده های امنیت بحرانی استفاده می شوند. در این محدوده ها همه ی نیازمندی های سیستم ها باید اقناع گردد و در صورتی که سیستم با شکست مواجه شود، فاجعه رخ می دهد. بنابراین، تحمل پذیری خطا یک نیازمندی ضروری برای RTOS های به کار گرفته شده در محدوده های امنیت بحرانی هستند. در دهه های گذشته، چندین تکنیک تحمل پذیری خطا برای حفاظت از بخش های مختلف یک RTOS در برابر خطاها و اشتباهات پیشنهاد شده اند. در این مقاله، پس از ارائه ی مفاهیم اولیه RTOS ها، برخی از ویژگی های این سیستم عامل ها بررسی شده و سپس تعدادی از تکنیک های تحمل پذیری خطا می توانند به هر ویژگی اعمال شده و تاثیر آن ها بر قابلیت اطمینان سیستم بررسی شود. همکاری اصلی این مقاله، بررسی و طبقه بندی چندین تکنیک تحمل پذیری خطا است که بر روی RTOS های مبتنی بر ویژگی های سیستم عامل قابل اعمال هستند.
1-مقدمه
"یک سیستم عامل به صورت یک واسط بین کاربر کامپیوتر و سخت افزار آن عمل می کند. هدف یک سیستم عامل، فراهم نمودن محیطی است که در آن کاربر بتواند برنامه ها به شیوه ای مرسوم و موثر اجرا کند" [1]. در واقع، نقش اصلی یک سیستم عامل به کارگیری برخی روش ها برای مدیریت یک سیستم کامپیوتری، همچون زمان بندی پردازنده (ها)، مدیریت فرایند و نخ، ارتباطات درون فرایندی، مدیریت حافظه، مدیریت ورودی-خروجی، کنترل همزمانی، بخش های بحرانی، همگام سازی، کنترل وقفه و رویداد، کنترل کردن تایمر ها و ساعت ها و غیره است که به عنوان ویژگی های سیستم عامل شناخته می شوند.
در دنیای غیر بلادرنگ، محدوده ی ارزش، بُعد یکتای محاسبات است و صحت نتایج، شرط کافی برای بررسی نتایج به عنوان نتایج معتبر است. شمول محدوده زمانی در سیستم های بلادرنگ، بعد جدیدی به محاسبات می افزاید. برنامه های کاربردی بلادرنگ علاوه بر نتایج صحیح، مجبورند نتایج معتبری را تولید کنند. در این برنامه های کاربردی، صحت زمانی به دست می آید که نتایج صحیح تولید شوند و اعتبار زمانی حاصل می شود که نتایج صحیح به موقع و در یک زمان محدود و از پیش تعیین شده تولید شوند...