Visual OS: design and implementation of a visual framework for learning operating system concepts

  • Authors:
  • James H. Hill;Aniruddha S. Gokhale

  • Affiliations:
  • Vanderbilt University, Nashville, TN;Vanderbilt University, Nashville, TN

  • Venue:
  • Proceedings of the 43rd annual Southeast regional conference - Volume 1
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

An operating system can be described as software composed of numerous components providing a distinct functionality, such as CPU scheduling, disk scheduling, virtual memory and paging, while working together to efficiently manage the hardware and resources of a computer system. Understanding their features and interplay can be a non-trivial task, in particular, for undergraduate students in Computer Science studying operating systems. To aid in their understanding of the OS dynamics, a number of aids including textbooks, journals and simulators exist. Although these aids suffice to understand simple OS concepts, some algorithms, such as paging, synchronization and process control, and their interactions are too complex to understand without a way to visualize these interactions and operations.This paper provides three contributions to the R&D on visualizing the dynamics of operating systems. First, we describe the design architecture of Visual OS, which is our OS visualization engine. Second, we describe how we used software design patterns to make our framework extensible to accommodate a variety of OS features that cater to different domains, such as generic computing, real-time systems and embedded systems. Finally, we describe how we have used Visual OS for a programming assignment in a senior level OS class at Vanderbilt University.