Breathing life into dinosaur courses using DTrace

Chris McDonald, University of Western Australia

Track: Tools & Tech; Audience: Intermediate

The DTrace framework, available on Apple’s OS-X and other contemporary operating systems, enables a process’s execution and its interactions with the operating system kernel to be traced and annotated at a fine grain. DTrace provides well recognized benefits for systems administration, but also a great opportunity for Computer Science Education.

Computing textbooks employ many static ‘before-and-after’ figures, hoping to convey the interactions between programs and operating systems, and the transitions of internal operating system structures. Historically, Computer Science educators have hoped to breathe life into these textbook figures with purpose-developed visualization tools but, unfortunately, these have often required specific and unsustainable programming, compiling, and execution practices. Moreover, many of these tools have a constrained scope, or only support prebuilt demonstrations. These well-intentioned approaches often increase students’ cognitive load, leaving them confused as to what is to be learned.

This presentation will introduce the features and operation of the DTrace framework under OS-X, and outline our approach to improving the teaching of Operating Systems courses using dynamic tracing and annotation. In combination, we employ DTrace to trace the execution of programs, and graphviz and Tcl/Tk to visualize and review their execution. Instructive programs may be provided by the professor, developed and debugged by students themselves, or even be standard systems and application programs. Using this approach we can demonstrate, and students can investigate, concepts such as process execution and scheduling, file-system operations, interprocess communication, and networking. Students can directly learn from the execution of unmodified applications which run programs, manipulate files, and communicate with remote internet-based services.

Categories: Developer
Tags: ,
Bookmark the permalink