进程管理演示系统的设计与实现

减小字体 增大字体 作者:张琼声 蒋玉新 李春华 刘童璇  来源:www.zhonghualunwen.com  发布时间:2009-09-03 10:54:07

关键词:进程管理;演示系统;操作系统

摘要:进程是资源分配和独立运行的基本单位,是操作系统的核心概念。“操作系统”教学中,进程的概念以及进程管理的实现原理抽象难懂,初学者难以掌握。本文阐述如何以图形化方式设计和实现进程管理的演示系统,以辅助课堂教学。该系统的演示内容包括:进程的概念、进程创建、进程组织、进程关系管理、进程阻塞、进程唤醒、进程撤销、进程调度、进程同步。
  1前言
  
  进程管理是操作系统原理最主要的教学内容之一,而进程及进程的控制原理是学生学习的重点和难点。如何使学生能够在较短的时间内,深入了解进程的概念及进程控制的原理,如何把进程的概念与程序运行的软硬件环境的变化联系起来?如何把进程管理的功能与数据结构和算法的实现结合起来?使学生从根本上掌握进程的概念,理解操作系统中进程管理功能的实现原理和实现技术,把抽象的理论与具体的实现技术结合起来?是“操作系统”课程教学面临的重要问题。
  进程管理演示系统主要用于辅助课堂教学,试图将抽象的理论与系统设计、实现的具体技术相结合,通过动态的、图形化的界面表现进程概念的本质、进程管理的过程、进程管理功能与数据结构和算法实现的关系。把抽象的概念和原理实例化。帮助学生直观地、深入地理解进程的概念和进程管理功能存在的必要性以及相应的实现技术。
  本系统主要实现进程概念、进程控制、进程调度、进程同步行为和实现原理的演示。该系统的特点是用图形化的方式把操作系统原理与程序实现结合起来。论文详细说明了该演示系统的设计方案与实现技术。
  
  2系统设计
  
  2.1系统模块结构
  本系统包括进程概念、进程控制、进程调度、进程同步四个演示模块。其中进程控制演示模块包括进程创建、进程终止、进程阻塞与唤醒三个演示子模块。进程调度演示模块包括单级队列调度和多级队列调度演示两个子模块。进程同步演示模块包括进程互斥和读者—写者问题演示两个子模块。
  本系统用VC++6.0开发,采用单文档结构,所有演示过程都在视图中通过VC控件交互实现。系统使用了延时机制,每当执行一个过程使界面发生变化或执行了关键步骤后,执行一个延时函数,从而给用户足够的时间观察界面的变化。
  2.2进程组织
  (1) 链表组织
  本系统实现多个进程链表,包括总进程链表、多个优先权不同的就绪进程链表和三个对应不同阻塞事情的阻塞进程链表。
  (2) 进程树
  系统按照进程的亲属关系,建立进程树,实现了进程树的管理和图形显示。
  (3) 进程标识符PID的管理
  每一个进程都有唯一的内部标识符PID,本系统通过循环使用来达到有限PID资源的合理利用。当进程创建时分配可用的PID,当进程终止时,释放占用的PID。
  2.3进程执行过程的模拟
  本系统通过定时器和执行时间来模拟进程的执行过程。
  创建进程时,给进程一个随机的执行时间。执行时间长短根据系统参数配置进行灵活控制。进程同步中对临界资源的访问过程也通过访问时间来模拟,根据进程的执行时间,进程访问临界资源的时间总是定义为一个比总执行时间小的值。
  给定进程的执行时间后,通过定时器控制进程的执行。进程执行一条指令用一个定时周期来模拟,在定时处理函数中对进程控制块的相关数据进行修改并同步在界面上更新显示,从而模拟出进程的执行过程。当定时周期数等于给定的进程执行时间时(本系统在进程控制块中添加了已执行时间来记录执行进度,该值就等于定时周期数),进程正常结束。
  2.4进程概念演示模块
  本模块通过显示当前进程的PCB信息、CPU寄存器的变化来演示进程概念。模拟了进程实体、进程控制块、动态特征、短暂存在性、进程切换、并发执行、独立性等特点。
  系统界面上显示的进程信息都直接或间接地从进程控制块中获取。
  2.5进程控制演示模块
  (1) 进程创建演示模块
  本模块实现进程创建过程的演示。用户可以输入新进程的外部标识符即进程名称,若用户没有输入,则系统自动为进程命名,每一个进程的创建都是有引发事件的,用户可以在界面上选择一个引发进程创建的事件。当用户点击“创建进程”按钮时就开始执行创建进程过程并同步显示进程创建的每一个执行步骤。
  (2) 进程终止演示模块
  本模块实现并演示各种不同情况下进程终止的过程。用户可以通过输入PID来终止某个进程,也可以通过选择界面上进程列表中的某个进程来终止被选中的进程。执行态进程被终止后要转进程调度程序。
  (3) 进程阻塞与唤醒演示模块
  本模块实现并演示进程阻塞与唤醒的过程。进程执行过程中用户可以选择阻塞事件并阻塞当前进程。当有阻塞态进程时,用户可以选择相关事件唤醒阻塞列表中的进程。
  本模块设置了三个阻塞事件:打印机服务、I/O设备操作和无新数据输入。
  2.6进程调度演示模块
  本模块实现了单级队列调度和多级队列调度的演示。分别实现了抢占、非抢占、优先级、时间片等调度策略的模拟。多级队列调度的演示,模拟了Minix的三级队列(任务级、服务级和用户级)调度 ,定义了三个优先级不同的就绪队列。
  2.7进程同步演示模块
  (1) 进程互斥演示模块
  本模块实现并演示了多个进程互斥访问同一个临界资源的控制过程。通过该演示过程,使用户了解操作系统是如何实现进程对临界资源的互斥访问的。
  本模块中,对临界资源的访问可以由用户控制,也可以系统自动控制。即在进程执行过程中,用户可以发送访问临界资源的命令,让其执行访问临界资源的过程。自动控制的设计是若某进程没有访问过临界资源,则令其在执行过程的最后时间段自动访问临界资源。
  (2) 读者—写者问题演示模块
  本模块演示多个读进程与写进程同步访问共享数据区的管理过程。创建进程时,用户要指定新进程的类别(读者进程或写者进程)。用户可以通过进程列表选择任何进程执行,执行过程中,用户可以随时让进程访问资源。

[1] [2] [3]  下一页

Tags:

作者:张琼声 蒋玉新 李春华 刘童璇
  • 好的评价 如果您觉得此文章好,就请您
      0%(0)
  • 差的评价 如果您觉得此文章差,就请您
      100%(1)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论