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