Abstract
Ever more dependable embedded systems are built with commercial off-the-shelf hardware components that are not intended for highly reliable applications. Consequently, software-based fault tolerance techniques have to maintain a safe operation despite underlying hardware faults. In order to efficiently develop fault tolerant software, fault injection is needed in early development stages. However, common fault injection approaches require manufactured products or detailed hardware models. Thus, these techniques are typically not applicable if software and hardware providers are separate vendors. Additionally, the rise of third-party OTS software components limits the means to inject faults. In this paper, we present a virtual fault injection framework that simulates safety-standard aligned fault models and supports OTS software components as well as widely-used embedded processors such as ARM cores. Additionally, we show how to integrate the framework into various software development stages. Finally, we illustrate the practicability of the approach by exemplifying the integration of the framework in the development of an industrial safety-critical system
چکیده
در حال حاضر سیستم های ادغام یافته ی وابسته، به شکلی روز افزون توسط مؤلفه های سخت افزاریِ تجاری که از قبل آماده شده اند ایجاد می شوند که البته نمی توان یک چنین سیستم هایی را برای اپلیکیشن هایی که قابلیت اطمینان باید در آنها بالا باشد، مناسب دانست. در نتیجه، تکنیک های تحمل پذیری خطای مبتنی بر نرم افزار باید علیرغم خرابی های سخت افزاری، یک حاشیه ی عملیاتی ایمنی را برای این سیستم ها فراهم نمایند. به منظور توسعه ی کارآمد یک نرم افزار تحمل پذیر در برابر خطا، تزریق خطا را باید در گام های اولیه ی توسعه ی نرم افزار انجام داد. اگرچه روش های رایج تزریق خطا نیاز به محصولات تولید شده و یا مدل های سخت افزاری با جزئیات کامل دارند. بنابراین در صورتی که سرویس دهندگان نرم افزاری و سخت افزاری، مجزا از هم باشند، این تکنیک ها کاربردی نخواهد داشت. علاوه بر این، افزایش مؤلفه های نرم افزاری ثالث OTS می تواند منجر به محدود شدن ابزار های تزریق خطا گردد. در این مقاله، یک چارچوب تزریق خطای مجازی را ارائه می دهیم که مدل های خطای تعدیل یافته ی ایمن-استاندارد را شبیه سازی نموده و از مؤلفه های نرم افزاری OTS و همچنین پردازنده های ادغام شده ای مانند هسته های arm پشتیبانی می کند. علاوه بر این، نشان می دهیم که چطور می توان این چارچوب را در گام های توسعه ی نرم افزاری مختلف ادغام نمود. در نهایت با ارائه ی مثالی از ادغام این چارچوب در گام توسعه ی یک سیستم صنعتی امنیتی- بحرانی به تشریح کاربرد پذیری این چارچوب می پردازیم.
1-مقدمه
قابلیت اعتماد را می توان مهم ترین مشخصه ی بسیاری از سیستم های فیزیکی-سایبری و ادغام یافته دانست. به عنوان مثال، یک عملیات قابل اطمینان و ایمن را می توان برای سیستم هایی که خرابی آن ها منجر به تلفات جانی، آسیب های مالی قابل ملاحظه و یا آسیب به میحط می شود ضروری دانست. از آنجایی که چنین سیستم هایی باید ویژگی های زیادی را درک نمایند، این سیستم ها به شکلی فزاینده نیازمند کارائی رایانشی می باشند. در بعضی از دامنه ها، این تقاضا منجر به استفاده از پردازنده های آماده (OTS) شده که این پردازنده ها را نمی توان برای اپلیکیشن هایی با سطح قابلیت اطمینان بالا سر و کار دارند مناسب دانست...