1、 操作系统原理 课 程 设 计 报 告 书 题 目: 进程控制模块 学 号: 学生姓名: 专 业:计算机科学与技术卓越班 指导教师: 2014 年年 12 月月 26 日日 目目 录录 1. 系统功能 . 1 2. 系统设计 . 2 2.1. 总体设计 . 2 2.2. 详细设计 . 2 2.2.1. 函数 . 2 2.2.2. 数据结构 3 2.2.3. 算法 . 4 3. 系统实现 . 5 3.1. 开发工具及语言. 5 3.2. 实现步骤 . 5 3.3. 代码 5 4. 系统测试与分析21 5. 总结 .25 1 1. 系统功能系统功能 1、实现进程调度算法选择,有先来先服务调度算法和
2、优先级调度算法; 2、实现进程的创建; 3、实现进程的终止; 4、实现进程的阻塞; 5、实现进程的唤醒; 6、实现手动调度进程和进程自动执行两种模式; 许可 时间片用完 I/O 完成 进程调度 I/O 请求 终止 执行 就绪 阻塞 创建 2 2. 系统设计系统设计 2.1. 总体设计总体设计 定义 3 个类,JieMian 类、Process 类、List 类。 1JieMian 类中布局程序界面,调用进程的创建、执行、终止、阻塞、唤 醒等函数。 2Process 类模拟进程,有 3 个变量,进程的名字 name、进程的时间片 time、进程的优先级 priority,还有对这 3 个变量赋值
3、和得到变量的值得 get 函数、set 函数。 3List 类有两个变量,LinkedList readyList,就绪队列; LinkedList blockList,阻塞队列。 2.2. 详细设计详细设计 2.2.1. 函数函数 包括函数声明(返回值、函数名、形参)和功能描述。 1JieMian():调用 initframe()函数,初始化程序界面 2void initframe():初始化程序界面 3void actionPerformed(ActionEvent e):事件监听函数, 属于库函数, 重写该函数,实现所有按钮的事件的监听。 4void selectModel():选择手动
4、或自动模式; 5void selectAlgorithm():选择调度算法的函数; 6void paiXu():当“先来先服务算法“转到“优先级算法”,对就绪队列 的进程按优先级降序排序; 7void autoModel():进入自动模式,刷新按钮,启动线程; 8void run():线程类的线程函数,实现自动执行就绪队列中的进程,将 时间片用完的进程再放回到就绪队列。 9void manualModel():进入手动模式的函数,刷新按钮。 10void createProcess():创建进程,当创建进程的条件不满足时,提 示错误,成功创建进程后,将进程按照先来先服务算法或优先级算法将进程添
5、加 到就绪队列,然后刷新就绪队列的表格。 11paiXu(Process process):根据进程优先级算法,给就绪队列的进程 排序,如果优先级相同,按先来先服务的方式排序; 12void runProcess ():手动模式下,执行进程的函数,将就绪队列的 第一进程取出执行,并显示正在被执行的进程。 13void readyProcess():手动模式下,让正在执行的进程结束执行,再 放回到就绪队列。 3 14void blockProcess():阻塞进程,将正在执行的进程阻塞,进程被阻 塞后放到阻塞队列,然后刷新阻塞队列的表格。 15void wakeUpProcess():唤醒阻塞队
6、列里的第一个阻塞的进程,将唤 醒的进程按照先来先服务的算法或者优先级算法放到就绪队列中, 并刷新就绪队 列的表格。 16void shutDownProcess():终止进程,将正在执行的进程终止。 17void refresh_ReadyList():刷新就绪队列表格,把就绪队列里的就 绪进程显示在就绪队列的表格中; 18void refresh_BlockList():刷新阻塞队列表格,把阻塞队列的阻塞 进程显示在阻塞队列的表格中; 19void main(String arg):主函数,库函数,JieMian jm = new JieMian();实例化一个 JieMian 类的对象。 2.2.2. 数据结构数据结构 包括数据结构的定义。 1PCB的数据结构的定义: /进程类 public class Process public String name;/进程名 public int time;/时间 public int priority;/