IJRIT International Journal of Research in Information Technology, Volume 2, Issue 10, October 2014, Pg. 410-415

International Journal of Research in Information Technology (IJRIT)

www.ijrit.com

ISSN 2001-5569

Fault Tolerance in Operating System Chirag Gulati1, Chetna Mahajan2, Ayushi Mishra3 Dronacharya College of Engineering, Gurgaon, HR [email protected] , [email protected] , [email protected]

Abstract Fault-tolerance describes a computer system or component designed so that, in the event that a component fails, a backup component or procedure can immediately take its place with no loss of service .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 safetycritical 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. Keywords: Fault Tolerance, Real time operating system, Fault Environment, faulty system, fault-free system

I. Introduction A fault-tolerant system may be able to tolerate one or more fault-types including -- i) transient, intermittent or permanent hardware faults, ii) software and hardware design errors, iii) operator errors, or iv) externally induced upsets or physical damage. An extensive methodology has been developed in this field over the past thirty years, and a number of fault-tolerant machines have been developed -- most dealing with random hardware faults, while a smaller number deal with software, design and operator faults to varying degrees. A large amount of supporting research has been reported.

Chirag Gulati, IJRIT

410

IJRIT International Journal of Research in Information Technology, Volume 2, Issue 10, October 2014, Pg. 410-415

This architecture model shows that how how hardware and software faults are tolerated separately. Hardware Fault-Tolerance --The majority of fault-tolerant designs have been directed toward building computers that automatically recover from random faults occurring in hardware components. The techniques employed to do this generally involve partitioning a computing system into modules that act as fault-containment regions. Each module is backed up with protective redundancy so that, if the module fails, others can assume its function. Special mechanisms are added to detect errors and implement recovery. Two general approaches to hardware fault recovery have been used: 1) fault masking 2)dynamic recovery. Software Fault-Tolerance -- Efforts to attain software that can tolerate software design faults (programming errors) have made use of static and dynamic redundancy approaches similar to those used for hardware faults. One such approach, N-version programming, uses static redundancy in the form of independently written programs (versions) that perform the same functions, and their outputs are voted at special checkpoints. Here, of course, the data being voted may not be exactly the same, and a criterion must be used to identify and reject faulty versions and to determine a consistent value (through inexact voting) that all good versions can use. An alternative dynamic approach is based on the concept of recovery blocks. Programs are partitioned into blocks and acceptance tests are executed after each block. If an acceptance test fails, a redundant code block is executed. An approach called design diversity combines hardware and software fault-tolerance by implementing a faulttolerant computer system using different hardware and software in redundant channels. Each channel is designed to provide the same function, and a method is provided to identify if one channel deviates unacceptably from the others. The goal is to tolerate both hardware and software design faults. This is a very expensive technique, but it is used in very critical aircraft control applications.

II. Fault and Fault Environment In this section we will discuss about some basic about faults and fault environment and finally fault tolerance. Before moving up to fault tolerance, first let us review to some basic concepts of faults and fault environment. In order to give a better performance and to give a logical output, a system must detect the faults and perform even in case of faults. There are different types of faults which can occur in a real time distributed system. These faults can be broadly classified as: Network faults, Physical fault, media faults, process faults. Network faults occur in a Chirag Gulati, IJRIT

411

IJRIT International Journal of Research in Information Technology, Volume 2, Issue 10, October 2014, Pg. 410-415

network due to network partition, packet loss, communication failure etc. Physical faults can occur in hardware like fault in CPUs, memory fault etc. Media faults occur due to media head crashes. Process faults occur due to shortage of resources, software bugs etc. But, Fault occurs with respect to time are as follows: Permanent: These failures occur by accidently cutting a wire, power breakdown and so on which can cause major disruptions and some part of system may not be functioning as desired. Intermittent: These failures appear occasionally. Mostly they are ignored while testing the system and only appear when the system goes into operation. Transient: They are caused by some inherent fault in the system. However, these failures are corrected by retrying roll back the system to previous state such as restarting software or resending a message. These failures are common to in computer systems. But, in real time system, main focus is on hardware fault tolerance. Due to presence of faults, the system encounters many problems during execution or processing of any event. This ultimately leads to a Fault environment.

III. Fault Tolernace Fault Tolerance can be defined as a property of a system which provides the facility to perform efficiently even in case of any faults. Fault tolerance can be achieved by detecting a faulty process, saving and restoring the computational tasks of the faulty processor, and then distributing the recovered task to the remaining processors so that the system can continue to operate, although with degradation of computing power. An appropriate fault detector can avoid loss due to any link failure, resource failure or in any other fault environment. Hardware Fault tolerance can be achieved by adding extra hardware like processors, resources like memory, I/O devices etc. For tolerating any fault, first we require to detect the fault occurred in the system and then isolating it to the appropriate unit as quickly as possible. The main detection mechanisms are: Sanity monitoring, Watchdog monitoring, Protocol Fault, Transient Leaky Bucket counters. If a unit is really faulty, many fault triggers will be generated for that unit. 3.1 Need of Fault Tolerance The needs of fault tolerance are mentioned below: 1.)Better outcome of results in case of any faults. 2.)For reliable processing of transaction. 3.)To avoid faulty systems. 4.)Limit ourselves to types of failures and errors which are more likely to occur Fault Tolerance – Ability of system to behave in a well-defined manner upon occurrence of faults. Recovery – Recovery is a passive approach in which the state of the system is maintained and is used to roll back the execution to a predefined checkpoint. Redundancy – With respect to fault tolerance it is replication of hardware, software components or computation. Security – Robustness of the system characterized by secrecy, integrity, availability, reliability and safety during its operation.

Chirag Gulati, IJRIT

412

IJRIT International Journal of Research in Information Technology, Volume 2, Issue 10, October 2014, Pg. 410-415

3.2 Fault Tolerance Backplane

IV. RTOS Features and Fault Tolerance Techniques In the previous sections, the importance of implementing fault tolerance techniques on RTOSs, especially those that are employed in safety-critical domains was discussed. In this section, a number of RTOSs’ features along with some fault tolerance techniques that could be applied to each feature are presented. A) Memory Management In order to protect operating systems components prone to failure, fault tolerance begins with memory protection. Since programs behavior depends to data in memory, the existence of faults in these data would cause to program error and failure. Since the flexibility and functionality of applications are being increased and also they need dynamic access to memories, dynamic storage allocation (DSA) algorithms play an important role in the operating systems. In addition to flexibility, real-time applications require predictability too, i.e. memory should be managed dynamically in a bounded and predetermined time. The use of DSA leads to uncertainty in RTOSs, because of the unconstrained response time of DSA algorithms and the fragmentation problem. In a DSA algorithm called TLSF has been developed to be employed in RTOSs. TLSF provides explicit allocation and de-allocation of memory blocks with a bounded and acceptable timing behavior. Using bitmaps and the aid bitmaps is another technique to make allocating and de-allocating memory safely and reliably. This technique was introduced by to be employed in RTEMS RTOS. Redundancy is one of the most important techniques in fault tolerance . This technique can be applied to memory in a way that when a process is loaded, the operating system duplicates its data and states in more than one place/memory (three places/memories to imitate TMR). Whenever a task’sdata/states are changed, these changes are applied to all replicas. Whenever the task wants to read data from memory, a voting is done on replicas to determine if data are changed inadvertently or are corrupted (for any reason, such as heavy ion radiation) and also to determine which data is correct and could be used. Memory redundancy could be supported in both software level and hardware level . B) Kernel Considerations Error detection could be done by hardware or software methods, such as “Transient fault detection via simultaneous multithreading” which is an example of software methods. The kernel of a fault-tolerant RTOS should provide a mechanism that whenever an error occurs, a notification is sent to an a agent that has duty to perform some types of error recovery actions. This agent is called supervisor and must be run in an isolated address space, because data in

Chirag Gulati, IJRIT

413

IJRIT International Journal of Research in Information Technology, Volume 2, Issue 10, October 2014, Pg. 410-415

the address space containing faulty task may be corrupted. For example in Nooks which is a reliability subsystem, Nooks Recovery Manager is an agent for error recovery. C) Scheduling Scheduler is the heart of an RTOS. In fact in order to guaranty system safety, the scheduler by considering tasks attributes have to determine what task should be released and should be preempted at what times. There are different scheduling algorithms in RTOSs. The most important of them are as follows : 1.) RM: Rate Monotonic (RM) is a fixed-priority scheduling algorithm which tasks priority is defined in advance and tasks with smaller period have higher priority. 2.) EDF: Earliest Deadline First (EDF) is a dynamic scheduling algorithm which tasks priority is defined dynamically in run-time in a way that tasks with closer deadline have higher priority. 3.)LLS: similar to EDF, Least Laxity First (LLF) is a dynamic scheduling algorithm. It assigns priority based on the slack time of a process. Slack time is the amount of time left after a job if the job was started now. In LLS processes with smaller slack time have higher priority D) Communications In all operating systems, processes need to communicate with each other through some mechanisms, such as message passing or memory sharing. Message passing methods causes to uncertainty in the system timing, because of systems architecture features, i.e. it’s impossible to determine exactly how long a message passing takes. In an RTOS the maximum latency of message passing should be determined. To achieve such determinacy some token based techniques such as Ring and TDMA can be employed . Moreover if the reliability of communication channels is not 100%, some techniques such as dynamic time redundancy in the lower levels of the communication protocols or using QoS services could be employed to increase the communication channels reliability significantly .

V. Conclusion Fault-tolerance is achieved by applying a set of analysis and design techniques to create systems with dramatically improved dependability. As new technologies are developed and new applications arise, new fault-tolerance approaches are also needed. In the early days of fault-tolerant computing, it was possible to craft specific hardware and software solutions from the ground up, but now chips contain complex, highly-integrated functions, and hardware and software must be crafted to meet a variety of standards to be economically viable. Recent developments include the adaptation of existing fault-tolerance techniques to RAID disks where information is striped across several disks to improve bandwidth and a redundant disk is used to hold encoded information so that data can be reconstructed if a disk fails Another area is the use of application-based fault-tolerance techniques to detect errors in high performance parallel processors. Fault-tolerance techniques are expected to become increasingly important in deep sub-micron VLSI devices to combat increasing noise problems and improve yield by tolerating defects that are likely to occur on very large, complex chips. Fault-tolerant computing already plays a major role in process control, transportation, electronic commerce, space, communications and many other areas that impact our lives. Many of its next advances will occur when applied to new state-of-the-art systems such as massively parallel scalable computing, promising new unconventional architectures such as processor-in-memory or reconfigurable computing, mobile computing, and the other exciting new things that lie around the corner.

Chirag Gulati, IJRIT

414

IJRIT International Journal of Research in Information Technology, Volume 2, Issue 10, October 2014, Pg. 410-415

References [1] A. Silberschatz, P. B. Galvin, and G. Gagne, Operating system concepts: J. Wiley & Sons, 2009. [2] J. S. Ostroff, "Formal methods for the specification and design of real-time safety critical systems," Journal of Systems and Software, vol. 18, pp. 33-60, 1992. [3] L. L. Pullum, Software fault tolerance techniques and implementation: Artech House Publishers, 2001. [4] P. J. Denning, "Fault tolerant operating systems," ACM Computing Surveys (CSUR), vol. 8, pp. 359-389, 1976. [5] J. A. Stankovic and R. Rajkumar, "Real-time operating systems," Real-Time Systems, vol. 28, pp. 237-253, 2004. [6] P. A. Laplante, "Real-Time Systems Design and Analysis," 1993 [7] B. Zhang, X. Xu, and B. Li, "Research on the design of software fault tolerance based on RTEMS," in Computer, Mechatronics, Control and Electronic Engineering (CMCE), 2010 International Conference on, 2010, pp. 402-405. [8] T. Wei, P. Mishra, K. Wu, and J. Zhou, "Quasi-static fault-tolerant scheduling schemes for energy-efficient hard real-time systems," Journal of Systems and Software, vol. 85, pp. 1386-1399, 2012. [9] A. S. Tanenbaum, Modern operating systems vol. 2, 1992. [10] K. P. Birman and T. A. Joseph, "Reliable communication in the presence of failures," ACM Transactions on Computer Systems (TOCS), vol. 5, pp. 47-76, 1987. [11] Y. Amir, D. Dolev, S. Kramer, and D. Malki, "Transis: A communication subsystem for high availability," in Fault-Tolerant Computing, 1992. FTCS-22. Digest of Papers., Twenty-Second International Symposium on, 1992, pp. 76-84. [12] A. Lapidoth and P. Narayan, "Reliable communication under channel uncertainty," Information Theory, IEEE Transactions on, vol. 44, pp. 2148-2177, 1998. [13] R. Thurlow, "RPC: Remote procedure call protocol specification version 2," 2009. [14] Y. Tanimura, T. Ikegami, H. Nakada, Y. Tanaka, and S. Sekiguchi, "Implementation of fault-tolerant GridRPC applications," Journal of Grid Computing, vol. 4, pp. 145-157, 2006. [15] S. L. Blinick, J. C. Elliott, and E. Q. Garcia, "Redundant and fault tolerant control of an I/O enclosure by multiple hosts," ed: Google Patents, 2011. [16] P. M. Chen, E. K. Lee, G. A. Gibson, R. H. Katz, and D. A. Patterson, "RAID: High-performance, reliable secondary storage," ACM Computing Surveys (CSUR), vol. 26, pp. 145-185, 1994. [17] J. Radatz, A. Geraci, and F. Katki, "IEEE standard glossary of software engineering terminology," IEEE Std, vol. 610121990, p. 121990, 1990. [18] A. Avizienis, J.-C. Laprie, and B. Randell, Fundamental concepts of dependability: University of Newcastle upon Tyne, Computing Science, 2001. [19] P. Koopman and J. DeVale, "Comparing the robustness of POSIX operating systems," in Fault-Tolerant Computing, 1999. Digest of Papers. Twenty-Ninth Annual International Symposium on, 1999, pp. 30-37.

Chirag Gulati, IJRIT

415

Fault Tolerance in Operating System - IJRIT

Dronacharya College of Engineering, Gurgaon, HR ... Software Fault-Tolerance -- Efforts to attain software that can tolerate software design faults (programming errors) have made use of static and .... a way that when a process is loaded, the operating system duplicates its data and states in more than one place/memory ...

889KB Sizes 1 Downloads 293 Views

Recommend Documents

Fault Tolerance in Operating System - IJRIT
kind of operating systems that their main goal is to operate correctly and provide ... Keywords: Fault Tolerance, Real time operating system, Fault Environment, ...

Fault Tolerance in Distributed System - IJRIT
Fault-tolerant describes a computer system or component designed so that, in the event that a component fails, a backup component or procedure can immediately ... millions of computing devices are working altogether and these millions of ...

Fault Tolerance in Distributed System - IJRIT
Fault Tolerance is an important issue in Distributed Computing. ... The partial failure is the key problem of the distributed system, .... architecture and design.

A system architecture for fault tolerance in concurrent ...
mechanisms for concurrent systems are ... Our proposed system architecture ful- ...... Communication and Computer Networks, VLSl and Design Automation,.

A system architecture for fault tolerance in concurrent ...
al acceptance test status and t ensure. 1x2 - yt < tolerable processes via cm. 24. COMPUTER. 1 ... Figure 1. Control flow between the application program and the Recovery ..... degree in Computer Engineering or related areas. ... each year with two m

Improving Workflow Fault Tolerance through ...
out two tasks automated by the WATERS workflow described in [1]. ..... Sending an email is, strictly speaking, not idempotent, since if done multiple times ...

Fault Tolerance in Finite State Machines using Fusion
Dept. of Electrical and Computer Engineering. The University of ... ups. Given n different DFSMs, we tolerate k faults by having k backup DFSMs. ⋆ supported in part by the NSF Grants CNS-0509024, Texas Education Board Grant 781, and ... However, fo

Improving Workflow Fault Tolerance through ...
invocations. The execution and data management semantics are defined by the ..... The SDF example in Figure 3 demonstrates our checkpoint strategy. Below ...

Improving Workflow Fault Tolerance through ...
mation that scientific workflow systems often already record for data lineage reasons, allowing our approach to be deployed with minimal additional runtime overhead. Workflows are typically modeled as dataflow networks. Computational en- tities (acto

Modeling and Predicting Fault Tolerance in Vehicular ... - IEEE Xplore
Millersville, PA 17551. Email: [email protected]. Ravi Mukkamala. Department of Computer Science. Old Dominion University. Norfolk, VA 23529.

Evolving messy gates for fault tolerance: some ...
1 This work was carried out while in the School of Computer Science, University of Birmingham. Abstract ... living systems possess a remarkable degree of fault.

Restaurant Management system - IJRIT
“Restaurant Table Management System (RMS)" is android application to .... 9. http://androidcommunity.com/toshiba-10-1-inch-android-tablet-gets-fully-detailed- ...

Hardware Fault Tolerance through Artificial Immune ...
selfVectors=[[1,0,1,1], [1,1,1,0]] detectors=[[1,0,0,0], [0,0,1,0]] for vector in selfVectors: if vector in detectors: nonselfDetected(). Page 9. Systems of state machines. ○ Hardware design. ○ Finite state machines in hardware s1 s2 s3 t1 t2 t3

Restaurant Management system - IJRIT
Abstract- This Android application provides you the whole menu of restaurant.So whenever you cpmes for. Buying or ordering the food,you don't need to worry ...

Evolving Fault Tolerance on an Unreliable ... - Semantic Scholar
School of Computer Science. The Norwegian University of Science and Technology. University of .... fitness amongst the best individuals, one not from the for-.

A Novel Parallel Architecture with Fault-Tolerance for ...
paper we provide a novel parallel architecture named Dual-. Assembly-Pipeline(DAP) with fault-tolerance, in which we join bi-directional data streams by considering the processing nodes' failures. Especially, virtual machines in a ... distributed in

Deadlock in Distributed Operating System
Examples are given to illustrate these methods for avoiding file .... of files, such communications are never required to handle processes using only local files.

Evolving Fault Tolerance on an Unreliable Technology Platform
Dept. of Computer and Information Science. 2. School of Computer Science. The Norwegian ... have developed a fault tolerant hardware platform for the automated design of .... fitness amongst the best individuals, one not from the for-.

A Global Exception Fault Tolerance Model for MPI
Driven both by the anticipated hardware reliability con- straints for exascale systems, and the desire to use MPI in a broader application space, there is an ongoing effort to incorporate fault tolerance constructs into MPI. Several fault- tolerant m

Hamster: An AOP solution for Fault Tolerance in grid ...
that attempts to maximize resource usage by monitoring grid middleware ..... executed against several OurGrid builds, from version 4.1.5 to its earliest version ...

Abrupt Change Detection in Power System Fault ...
Jun 23, 2005 - (FDI) systems; one such domains viz., power systems fault analysis is the .... between zero hertz and half the data sampling frequency. The.

operating- system concepts
Internet electronic mail should be addressed to [email protected]. Physical mail .... In order for two machines to provide a highly available service, the state on the two .... lines, such as a high-speed bus or local area network. h. Clustered.