Using Complete System Simulation for Temporal Debugging of General Purpose Operating Systems and Workload

Digital convergence is precipitating the addition of soft real-time applications to mainstream desktop and server operating environments. Most traditional debuggers for mainstream systems lack a notion of temporal correctness, making them unsuitable for real-time system design and analysis. We propose leveraging complete system simulation to build a temporal debugger which is capable of analyzing mixed real-world workloads. Traditional real-time system debuggers based on simulation utilize slow, but accurate, simulators. Complete system simulators accept an approximate model of time in exchange for higher performance. The higher performance allows these simulators to analyze high-end commercial operating systems and applications. We describe a temporal debugger design based on complete system simulation and report on some early experiences in analyzing a simple workload. The tool offers a non-intrusive, predictable environment for debugging complex workloads with partial real-time constraints. The simulator foundation allows for interactive debugging of time-critical sequences while preserving a model of execution time flow.

[1]  Håkan Grahn,et al.  SimICS/Sun4m: A Virtual Workstation , 1998, USENIX Annual Technical Conference.

[2]  Mendel Rosenblum,et al.  Using complete machine simulation to understand computer system behavior , 1998 .

[3]  J. K. Doyle,et al.  A portable PDP‐11 simulator , 1984, Softw. Pract. Exp..

[4]  Anoop Gupta,et al.  Complete computer system simulation: the SimOS approach , 1995, IEEE Parallel Distributed Technol. Syst. Appl..

[5]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .

[6]  Scott Devine,et al.  Using the SimOS machine simulator to study complex computer systems , 1997, TOMC.

[7]  William Anderson An overview of Motorola's PowerPC simulator family , 1994, CACM.

[8]  Bernhard Plattner Real-Time Execution Monitoring , 1984, IEEE Transactions on Software Engineering.

[9]  Frank Gielen,et al.  The design of DARTS: a dynamic debugger for multiprocessor real-time applications , 1991, Proceedings. EUROMICRO `91 Workshop on Real-Time Systems.

[10]  John H. Howard,et al.  A virtual machine emulator for performance evaluation , 1980, CACM.

[11]  Peter S. Magnusson Efficient instruction cache simulation and execution profiling with a threaded-code interpreter , 1997, WSC '97.

[12]  Johan Montelius,et al.  Using SimICS to Evaluate the Penny System , 1997, ILPS.

[13]  F.J.A. Gielen,et al.  The Design of D.A.R.T.S.: A dynamic debugger for multiprocessor real-time applications , 1991 .

[14]  David Whalley,et al.  On Debugging Real-Time Applications , 1994 .

[15]  Edgar Nett,et al.  An adaptive approach to object-oriented real-time computing , 1998, Proceedings First International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC '98).

[16]  Farnam Jahanian,et al.  An approach to monitoring and assertion-checking of real-time specifications , 1996, Proceedings of the 4th International Workshop on Parallel and Distributed Real-Time Systems.

[17]  Peter S. Magnusson,et al.  Efficient memory simulation in SimICS , 1995, Proceedings of Simulation Symposium.

[18]  Jan Maluszy¿ski Using SIMICS to Evaluate the Penny System , 1997 .

[19]  R. Bedicheck Some efficient architecture simulation tech-niques , 1990 .

[20]  Jeffrey J. P. Tsai,et al.  A noninvasive architecture to monitor real-time distributed systems , 1990, Computer.

[21]  Peter S. Magnusson A Design for Efficient Simulation of a Multiprocessor , 1993, MASCOTS.

[22]  Donald E. Knuth The art of computer programming: fundamental algorithms , 1969 .