论文部分内容阅读
作为开源操作系统的典型代表,Linux以其自由开放性和技术先进性跨入教育科研领域,担当起一个优秀实用的计算机操作系统科研和教学平台,人们越来越深刻地认识到深入学习和研究Linux系统内核的必要性,但其源码规模庞大、异常复杂,尤其是新版内核不断推出、功能逐渐增加,这使得深入内部了解它的任务异常艰巨。而近年来可视化技术不断发展,它在提高人类认知能力方面发挥着越来越明显的优势,深入地理、医疗、软件开发、教育等各行业,现在与网络信息搜索、软件可视化、数据挖掘等方向结合具有更广泛的研究及应用价值,本文重点在于探索将可视化与Linux内核执行过程的深入学习相结合的可行性。目前,将可视化技术引入操作系统教学领域或与Linux内核研究相结合的工作已有很多,但存在一些不足。有些演示效果较好的算法可视化软件或工具往往重在表现算法,与实际运行的操作系统脱离,数据来源不真实,并且多以程序或算法动画的形式可视化,缺乏与用户的交互;有些以真实操作系统为数据源的可视化工作,采用静态绑定形式预先定义若干过程或活动,对它们进行可视化模拟,这种绑定限制了其适用范围;有些可视化以监控和分析系统性能为目的,关注于可视化系统的整体状态和资源利用率等信息,与源码的数据结构和函数脱节,不能满足深入学习内核的需要。为了改进目前工作中的不足,本文以内核运行时获得的真实数据为基础,并以内核函数和数据结构为主体进行可视化,针对系统在某段时间内相对完整的一个执行过程,直观地可视化出此过程中各种关键操作的执行细节。文中首先给出关键过程可视化的工作流程,重点研究以下内容:1、将可视化数据源设置为运行中的Linux操作系统,提取出固定时段内内核的各种关键状态,定义数据采集点描述不同的内核状态,为采集点分类并规定数据记录格式,从而确定出一种对关键状态进行描述的方法;2、通过分析得出数据采集应遵循的基本原则和有待解决的关键问题,结合这些原则探讨常见内核数据采集方法的可用性,在此基础上解决相应问题并给出一种现实可行的采集方法。随后,通过跟踪一个过程实例展示如何在源码中设置数据采集点,解析采集到的数据记录,以可视方式处理数据从而验证内核状态描述方法的可用性。从本文最后给出的可视化效果展示可知,结合内核运行时真实数据以关键函数和数据结构为重点的过程可视化,可以从源码出发实现对所跟踪过程以及相应数据结构、算法的深层次理解,且可视化结果真实可信,具有进一步研究和开发的意义。