操作系统进程调度算法

  • 格式:pptx
  • 大小:11.74 MB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Contents
1 题目理解 title 2 开发环境 title 3 主要功能 title 4 设计思路 title
题目理解
在Linux或Windows环境下编程模拟实现进程调 度,包括:先来先服务,时间片轮转,优先级, 多级反馈队列等进程调度算法。
FCFS先来先服务
这是最简单,最基本的算法,就是按照进程到来的时间 顺序,逐个分配 CPU 资源 优点:简单,方便 缺点:效率低,资源利用率低
设计思路
小组成员共同实现模拟操作的主要算法,每个人分别实现一 个小模拟系统,并且共用一个主界面,具体分工如下: a. 进程调度算法模拟——王西园 b. 磁盘调度算法模拟——罗智惠 c. 请求分页页面置换算法模拟——宋倩云
设计思路
• 模块设计: (共同设计部分) M_interface.java——实现了主界面设计和调用三种算法模拟子界面(共用) (个人设计部分) A_interface.java——实现调用子界面 A_process.java——进程类,利用了链表的数据结构 A_fcfs.java——先来先服务算法的实现 A_rr.java——时间片轮转调度算法的实现 A_psa.java——优先级调度算法的实现 A_mfq.java——多级反馈队列调度算法的实现
RR时间片轮转算法
为 CPU 的执行设定一个时间片大小,每个进程 轮询分配时间片,时间片结束后暂停运行加入等 待队列 时间片不能选择太长,否则退化为FCFS
多级反馈队列
不必事先知道进程所需要的执行时间,还可以较
好地满足各种类型进程的需要 多个就绪队列,赋予不同优先级 每个队列采用FCFS,按队列优先级调度
• 用户用IE打开M_interface.html,进入主界面,通过选择进入子界面
选择调度算法
输入
显示
1:FCFS 2:时间片轮换 3:优先级调度 4:多级反馈队列调度
进程个数
此进程时间片大小 进程名字 CPU时间
进程名字
共需占用CPU时间 还需占用时间 优先级
优先级(进程运行后的优
先级)
状态(WRF)
需要运Βιβλιοθήκη Baidu时间
进程的运行时间以时间片为单位进行计算 就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1 来表示。 如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行 时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未 达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先 数减1(即降低一级),然后把它插入就绪队列等待CPU。 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程 的 PCB,以便进行检查。 重复以上过程,直到所要进程都完成为止。
SJF短作业优先
按照进程预计需要的运行时间,按照从小到大分配资源 优点:简单进程执行速度快 缺点:无法准确预估运行时间,容易造成长进程饥饿
短作业优先算法就是在 FCFS 算法中加入对 waitQueue
等待队列按照运行时间排序
PSA优先级调度
按照进程的优先级选择调度顺序 优先级调度算法 就是将 SJF 算法中的排序,改 为按照优先级排序 对等待队列按进程优先级按从小到大排序
程序框图
每进行一次调度程序都打印一次运
行进程、就绪队列、以及各个进程 的 PCB,以便进行检查。
Thanks
FOR WATCHING & LISTENING
开发环境
系统环境:win10
开发语言:java 软件工具:eclipse
主要功能
(1)每个进程有一个进程控制块(PCB)表示,进程控制块可以包含如下信
息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态 等等。 (2)接收用户输入参数,包括进程个数、进程优先级、时间片长度等信息。 (3)进程的优先数及需要的运行时间可以事先人为指定(可随机)。 (4)每个进程的状态可以是就绪W(wait)、运行R(run)或完成F (finish)三种状态之一。 (5)程序运行结果显示进程调度过程。