论文部分内容阅读
操作系统作为计算机系统中最基本的系统软件,管理和控制计算机系统中的所有软、硬件资源,保证计算机系统的优异性能,为程序的开发和执行提供良好的环境,是计算机系统的灵魂和核心。计算机理论知识的学习自然离不开操作系统的学习,而操作系统系统的学习具有概念多、抽象和涉及面广的特点,是计算机科学中最难学习和掌握的学科之一,所以在学习操作系统原理方面找到一种便捷的易掌握的方法历来是操作系统学习者的追求目标。而深入学习操作系统原理自然离不开对源码的学习。近年来开源操作系统的出现和软件可视化理论的快速发展使这个目标的实现成为可能。本文的目的就是把软件可视化应用于开源Linux操作系统,通过对Linux操作系统的关键操作的过程可视化,达到深入学习操作系统的目的。Linux操作系统是类Unix(Unix-like)操作系统大家族的一名成员。从20世纪90年代末开始,Linux这位在操作系统届比较新的成员变得非常流行,并且成为最成功的操作系统之一。Linux操作系统最大的优势就是它属于开源软件,它的源码在GNU许可证下可以免费下载。这就解决了以前操作系统学习中无源码尴尬局面。软件可视化(Software Visualizations,SV)是研究如何利用交互式计算机图形技术以及图形、动画、音频、视频等各种手段,增强软件中算法和程序理解性及使用效率的学科。它属于信息可视化的范畴。操作系统作为基本的系统软件当然也可以使用软件可视化技术对它进行深入研究。本文把软件可视化理论应用于Linux操作系统,通过对一定时间段内Linux操作系统执行情况的监控,记录相关对象的执行状态变化,在所监测的时间段结束后以数据驱动的方式可视化所监控时间段内的系统运行过程。本文的特点在于把监控过程和可视化再现过程分离,通过事后数据驱动的方式来再现系统的运行过程,克服了把监控与可视化并行所带来的技术难题,不仅提出了一种内核运行中的数据获取机制和数据驱动中数据格式的定义方法与驱动实现方法,还根据实际需要给出了跨平台数据的重建方法,以及可视化实现中所涉及的对象和变量的形象表示方法。操作系统的功能是系统程序代码执行结果的直接体现,所以程序可视化对于理解操作系统功能具有很好的帮助,本文提供了程序可视化所必需的函数调用流程可视化的实现方法并给出了相应的实例,在理解监控程序功能方面起到了良好的辅助作用。文章的最后通过缺页中断程序的一个可视化实例进一步说明了本文所提出方法的可行性。