进程模拟调度时间片和优先级

进程模拟调度时间片和优先级

ID:18809005

大小:168.50 KB

页数:17页

时间:2018-09-25

进程模拟调度时间片和优先级_第1页
进程模拟调度时间片和优先级_第2页
进程模拟调度时间片和优先级_第3页
进程模拟调度时间片和优先级_第4页
进程模拟调度时间片和优先级_第5页
资源描述:

《进程模拟调度时间片和优先级》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、仲恺农业工程学院课程设计进程调度模拟算法实现(优先数算法和时间片算法)课程名称计算机系统开发综合训练(2)姓名杜松耀院(系)信息科学与技术学院专业班级计算机科学与技术121学号201210214104指导教师史婷婷17目录1需求分析32概要设计32.1实验原理32.2数据结构42.3算法描述42.4算法流程图53详细设计63.1源程序代码64调试分析165总结17171需求分析本实验完成的系统是进程调度模拟算法实现(优先数算法和时间片算法),进程是操作系统中最基本、最重要的概念,是在多道程序系统出现后,为了刻画系统内部的动态状况、描述运行程序的活动规律而引进的新概念,所有多道程序

2、设计操作系统程序设计操作系统都建立在进程的基础上。进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。进程执行时的间断性,决定了进程可能具有多种状态。事实上,运行中的进程可能具有三种基本状态,分别是:就绪状态、运行状态、阻塞状态。(本实验为了突出调度模拟算法的主题——优先数和时间片算法,所以没有引入阻塞状态,阻塞态是指进程不具备运行条件,正在等待某个事件完成的状态)优先数调度算法根据确定的优先级来选取进程或线程,总是选择就绪队列中的优先级最高者投入运行。在进程或线程的运行过

3、程中,如果就绪队列中出现优先级更高的进程或线程,系统可预先规定策略:非剥夺式或剥夺式(本实验采用剥夺式策略)。时间片调度算法,具体做法是:调度程序每次把CUP分配给就绪队列首进程或线程使用规定的时间间隔,称为时间片,就绪队列中的每个进程或线程轮转流地运行一个时间片,当时间片耗尽时,就强迫当前运行进程或线程让出处理器,转而排列到就绪队列尾部,等候下一轮调度。本实验所需完成功能如下:(1)、新建进程按顺序进入系统,系统按优先数由大到小排序;(2)、进程优先数和完成任务所需时间,以及CPU分配给队列时间片大小由用户指定并输入;(3)、每个进程在规定队列时间片内没完成任务时,插入就绪队列

4、尾部;若完成任务,则撤销进程。2概要设计2.1实验原理本实验完成进程调度模拟算法实现(优先数算法和时间片算法),首先用户通过界面显示输入时间片大小、进程优先数和进程所需完成时间,然后可以点击运行开始,也可以再多新建几个进程;开始运行后,界面显示运行结果,用户可以在运行时新建进程,也可以在运行后新建进程,进程通过剥夺式策略获得资源插入运行态或就绪队列,当所有进程都完成任务后,运行结束。新建进程按优先数由大到小排序,17加入就绪队列,运行时通过javax.swing.Timer实现时间片的消耗,当用户再次新建进程时,系统将根据优先数由大到小的顺序插入就绪队列中;若进程优先数最大,将剥

5、夺正在运行中的进程资源,并马上运行;当所有进程都完成任务后,运行结束。2.2数据结构(1)、进程控制块数据结构以及图示如下所示:classPCB{privateintprocessID;//进程标识privateintcompleteTimes;//进程完成任务所需时间privateintpriority;//优先数大小privatePCBnext;//指向后一节点指针}PCB结点进程标识完成任务所需时间优先数指向下一结点指针图2.2–1进程控制块数据结构(2)、进程队列数据结构如下:classList{privatePCBhead;//头结点privateinttimes;//

6、时间片大小}PCB_2时间片timesPCB_1时间片timesHead头结点时间片timesnull图2.2–1进程队列数据结构2.3算法描述首先是界面显示,17用户通过界面显示输入时间片大小、进程优先数和进程所需完成时间,然后可以点击运行开始,也可以再多新建几个进程;开始运行后,界面显示运行结果,用户可以在运行时新建进程,也可以在运行后新建进程,进程通过剥夺式策略获得资源插入运行态或就绪队列,当所有进程都完成任务后,运行结束。2.4算法流程图算法流程图如下图所示:开始输入时间片大小、进程优先数和所需完成时间新建进程存盘否是否运行是是是否新建?输出运行结果否结束17图2.4–1

7、算法流程图3详细设计3.1源程序代码(1)、进程控制块:classPCB{privateintprocessID;//进程标识privateintcompleteTimes;//进程完成任务所需时间privateintpriority;//优先数大小privatePCBnext;//指向后一节点指针publicPCB(){priority=0;next=null;}publicPCB(intprocessID,intpriority){this.processID=process

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。