资源描述
进程调度算法 模拟 计算机151.操作系统算法模拟系统A组.王西园1508010104 进程调度算法 模拟 1 Contents 2 开发环境 title 1 题目理解 title 3 主要功能 title 4 设计思路 title 2 1 1 题目理解 在Linux或Windows环境下编程模拟实现进程调 度,包括:先来先服务,时间片轮转,优先级 ,多级反馈队列等进程调度算法。 3 FCFS先来先服务 这是最简单,最基本的算法,就是按照进程到来的时间 顺序,逐个分配 CPU 资源 优点:简单,方便 缺点:效率低,资源利用率低 SJF短作业优先 按照进程预计需要的运行时间,按照从小到大分配资源 优点:简单进程执行速度快 缺点:无法准确预估运行时间,容易造成长进程饥饿 短作业优先算法就是在 FCFS 算法中加入对 waitQueue 等待队列按照运行时间排序 4 为 CPU 的执行设定一个时间片大小,每个进程 轮询分配时间片,时间片结束后暂停运行加入等 待队列 时间片不能选择太长,否则退化为FCFS 按照进程的优先级选择调度顺序 优先级调度算法 就是将 SJF 算法中的排序,改 为按照优先级排序 对等待队列按进程优先级按从小到大排序 PSA优先级调度RR时间片轮转算法 多级反馈队列 不必事先知道进程所需要的执行时间,还可以较 好地满足各种类型进程的需要 多个就绪队列,赋予不同优先级 每个队列采用FCFS,按队列优先级调度 5 2 2 开发环境 系统环境:win10 开发语言:java 软件工具:eclipse 6 3 3 主要功能 (1)每个进程有一个进程控制块(PCB)表示,进程控制块可以包含如下信 息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等 等。 (2)接收用户输入参数,包括进程个数、进程优先级、时间片长度等信息。 (3)进程的优先数及需要的运行时间可以事先人为指定(可随机)。 (4)每个进程的状态可以是就绪W(wait)、运行R(run)或完成F(finish )三种状态之一。 (5)程序运行结果显示进程调度过程。 7 需要运行时间 进程的运行时间以时间片为单位进行计算 就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1 来表示。 如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行 时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未 达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先 数减1(即降低一级),然后把它插入就绪队列等待CPU。 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程 的 PCB,以便进行检查。 重复以上过程,直到所要进程都完成为止。 8 4 4 设计思路 小组成员共同实现模拟操作的主要算法,每个人分别实现一 个小模拟系统,并且共用一个主界面,具体分工如下: a. 进程调度算法模拟——王西园 b. 磁盘调度算法模拟——罗智惠 c.请求分页页面置换算法模拟——宋倩云 9 设计思路 •模块设计: (共同设计部分) M_interface.java——实现了主界面设计和调用三种算法模拟子界面(共用) (个人设计部分) A_interface.java——实现调用子界面 A_process.java——进程类,利用了链表的数据结构 A_fcfs.java——先来先服务算法的实现 A_rr.java——时间片轮转调度算法的实现 A_psa.java——优先级调度算法的实现 A_mfq.java——多级反馈队列调度算法的实现 •用户用IE打开M_interface.html,进入主界面,通过选择进入子界面 10 1:FCFS 2:时间片轮换 3:优先级调度 4:多级反馈队列调度 选择调度算法 进程个数 此进程时间片大小 进程名字 CPU时间 优先级(进程运行后的优 先级) 输入 进程名字 共需占用CPU时间 还需占用时间 优先级 状态(WRF) 显示 11 程序框图 每进行一次调度程序都打印一次运 行进程、就绪队列、以及各个进程 的 PCB,以便进行检查。 12 Thanks FOR WATCHING & LISTENING 13
展开阅读全文
相关搜索
资源标签