进程模拟调度程序

进程模拟调度程序

ID:40662413

大小:494.38 KB

页数:36页

时间:2019-08-05

进程模拟调度程序_第1页
进程模拟调度程序_第2页
进程模拟调度程序_第3页
进程模拟调度程序_第4页
进程模拟调度程序_第5页
资源描述:

《进程模拟调度程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数学与计算机学院课程设计说明书课程名称:操作系统原理-课程设计课程代码:题目:进程调度模拟程序年级/专业/班:09级计科5班学生姓名:学  号:开始时间:2011年12月9日完成时间:2011年12月23日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书撰写质量(45)总分(100)指导教师签名:年月日I摘要随着计算机的普及,在计算机上配置合适的操作系统,已成为不可或缺的因素,操作系统时配置在计算机硬件上的第一层软件,时对硬件系统的首次扩充,其他的诸如汇编程序,编译程序,数据库管理系统等系统软件,以及大量的应用软件,都将

2、依赖于操作系统的支持,取得它的服务。OS作为用户与计算机硬件之间的接口,作为系统资源的管理者,实现了对计算机资源的抽象,因此,不断提高计算机资源的利用率,方便用户,以及器件的不断更新换代,计算机体系结构的不断发展,已经成为推动计算机操作系统发展的主要因素,为了达到这些目的,了解操作系统的发展过程,熟悉操作系统的内部结构,掌握操作系统的运行,已经成为当代大学生,特别是计算机专业的学生所必不可少的知识。操作系统的主要任务是为多道程序的运行提供良好的运行环境,并能最大程度的提高系统中各种资源的利用率和方便用户,为了实现这些功能,操作系统还应该具有处理机管理,存

3、储器管理,设备管理和文件管理等功能。关键词:操作系统;资源利用率;处理机;文件管理I目录1引言11.1问题的提出11.2任务与分析12程序的主要函数22.1建立将要模拟进程调度的所有进程PCB链表22.2模拟CPU运行进程32.3显示42.4排序52.5建立先来先服务调度算法的就绪队列72.6建立最高优先数优先调度算法的就绪队列82.7进程模拟调度92.8主函数123程序运行平台144总体设计145程序结构体的说明146程序运行结果157结论228参考文献239附录24IXXX数计学院课程设计说明书1引言1.1问题的提出随着现在操作系统的日趋成熟,用户对

4、计算机的需求越来越多,处理机在同一时刻处理资源的能力是有限的,从而导致各种任务随时随地的争夺使用处理机,因而此对程序的并发能力提出了更高的要求。引进并发技术后,为了更好地说明并发现象(尤其是动态进程),引入了进程的概念。进程是一个具有一定独立功能的可并发执行的关于某个数据集合一次运行活动的程序。一个程序的启动执行,便是一个进程的建立;一个程序执行结束(正常或者是不正常),便是一个进程的撤销。由于同时处于就绪态(争夺使用CPU资源)的进程通常比较多,因此需要CPU调度算法来决定由哪个进程获得CPU使用权进入运行状态,即进程调度算法。1.2任务与分析本课题主

5、要的目的是编写并调试一个有N个进程并发的进程模拟调度程序。进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。等待I/O的时间以时间片为单位进行计算,可随机产生,也可事先指定。每个进程的状态可以是就绪R(Ready)、运行R(Run)、等

6、待(Wait)或完成F(Finish)四种状态之一。就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。31XXX数计学院课程设计说明书每进行一次调度程序都打印一次运行进程、就绪队列、等待进程以及各个进程的PCB,以便进行检查。重复以上过程,直到所要进程都完成为止。2程序的主要函数2.1建立将

7、要模拟进程调度的所有进程PCB链表算法思想:要建立的进程个数n作为函数参数,头指针作为返回,在函数内部由一重循环建立每个进程PCB的各个数据项,其中进程需要运行时间、到达时间以及优先数全部采用随机生成。代码:plist*creatpro(intn)//建立所有将要进行N个模拟调度的进程{intj;plist*p,*q,*head;p=(plist*)malloc(sizeof(plist));head=p;for(j=0;jname=j+1;p->needtime=1+(int)(10.0*rand()/(RAND_MAX+

8、1.0));p->arrivetime=(int)(10.0*rand()/(R

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

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

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