The exception handling effectiveness of POSIX operating systems

被引:59
作者
Koopman, P [1 ]
DeVale, J [1 ]
机构
[1] Carnegie Mellon Univ, Inst Complex Engineered Syst, Dept Elect & Comp Engn, Pittsburgh, PA 15213 USA
关键词
exception handling; POSIX; operating systems; robustness; testing; Ballista; multiversion comparison;
D O I
10.1109/32.877845
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Operating systems form a foundation for robust application software, making it important to understand how effective they are at handling exceptional conditions. The Ballista testing system was used to characterize the handling of exceptional input parameter values for up to 233 POSIX functions and system calls on each of 15 widely used operating system (OS) implementations. This identified ways to crash systems with a single call, ways to cause task hangs within OS code, ways to cause abnormal task termination within OS and library code, failures to implement defined POSIX functionality, and failures to report unsuccessful operations. Overall, only 55 percent to 76 percent of the exceptional tests performed generated error codes, depending on the operating system being tested. Approximately 6 percent to 19 percent of tests failed to generate any indication of error despite exceptional inputs. Approximately 1 percent to 3 percent of tests revealed failures to implement defined POSIX functionality for unusual, but specified, situations. Between 18 percent and 33 percent of exceptional tests caused the abnormal termination of an OS system call or library function, and five systems were completely crashed by individual system calls with exceptional parameter values. The most prevalent sources of these robustness failures were illegal pointer values, numeric overflows, and end-of-file overruns. There is significant opportunity for improving exception handling within OS calls and especially within C library functions. However, the role of signals vs, error return codes is both controversial and the source of divergent implementation philosophies, forming a potential barrier to writing portable, robust applications.
引用
收藏
页码:837 / 848
页数:12
相关论文
共 35 条
  • [1] [Anonymous], CRAFT SOFTWARE TESTI
  • [2] [Anonymous], 1996, ARIANE 5 FLIGHT 501
  • [3] [Anonymous], 1995, BLACK BOX TESTING
  • [4] [Anonymous], CRASHME RANDOM INPUT
  • [5] [Anonymous], P INT S FAULT TOL CO
  • [6] THE N-VERSION APPROACH TO FAULT-TOLERANT SOFTWARE
    AVIZIENIS, A
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1985, 11 (12) : 1491 - 1501
  • [7] FAULT INJECTION EXPERIMENTS USING FIAT
    BARTON, JH
    CZECK, EW
    SEGALL, ZZ
    SIEWIOREK, DP
    [J]. IEEE TRANSACTIONS ON COMPUTERS, 1990, 39 (04) : 575 - 582
  • [8] CRISTIAN F, 1995, SOFTWARE FAULT TOLER, P81
  • [9] Czeck E. W., 1986, Proceedings of the IEEE/AIAA 7th Digital Avionics Systems Conference (Cat. No.86CH2359-8), P670
  • [10] DEVALE J, 1999, P 16 INT C TEST COMP, P33