操作系统课程设计报告1

操作系统课程设计报告1

ID:14060888

大小:274.50 KB

页数:15页

时间:2018-07-25

操作系统课程设计报告1_第1页
操作系统课程设计报告1_第2页
操作系统课程设计报告1_第3页
操作系统课程设计报告1_第4页
操作系统课程设计报告1_第5页
资源描述:

《操作系统课程设计报告1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、东莞理工学院城市学院《计算机操作系统》课程设计题目:通用处理机调度演示程序专业:软件工程年级:2012级小组成员:李伟强廖泓燊指导教师:彭义春老师时间:2014.12.10—2012.12.地点:3B312东莞理工学院城市学院计算机与信息科学系制2014年12月此次的课程设计所选的题目为“通用处理机调度演示”,通过此次课设能够更加理解操作系统中处理机的工作方式,同时在设计不同算法的过程中,也可以明确的知道各种调度算法的使用优劣,视不同的环境条件下,调用不同的算法可也达到比较想要的结果。目录1.概

2、述课程设计内容:设计目的:在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个,也就是能运行的进程数大于处理机个数,为了使系统中的进程有条不紊地工作,必须选用某种调度策略,在一定的时机选择一个进程占有处理机。要求我们设计一个模拟处理机调度算法,以巩固和加深处理机调度的概念。2.课程设计任务及要求2.1设计任务通用处理机调度演示系统,需要模拟进程调度的五种算法:先来先服务调度算法,短作业优先调度算法,高响应比优先调度算法,时间片轮转调度算法,静态优先权优先调度算法,时间片轮转算法。每

3、个作业包括多个进程,进程可以并发,每一个进程用一个进程类表示,进程类包含如下信息:PCB名称,进入内存时间,服务时间,状态标志,进程大小,内部PCB标志,进程的优先级。既可以用户自己输入相关进程,又可以读取外部文件,能够比较同一组数据在不同调度算法下的平均周转时间和平均带权周转时间。因为多数信息需要在执行过程中进行数据处理和动态显示,要求直观而规范的呈现演示过程2.2设计要求(1)进程调度算法包括:时间片轮转算法、先来先服务算法、短作业优先算法、静态优先权优先调度算法、高响应比调度算法。(2)每

4、一个进程有一个PCB,其内容可以根据具体情况设定。(3)进程数、进入内存时间、要求服务时间、作业大小、优先级等均可以在界面上设定。(4)可读取样例数据(要求存放在外部文件中)进行进程数、进入内存时间、时间片长度、作业大小、进程优先级的初始化。(5)可以在运行中显示各个进程的状态:就绪、执行(由于不要求设置互斥资源与进程间的同步关系,故只有两种状态)。(6)采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列。(7)有性能比较功能,可比较同一组数据在不同调度算法下的

5、平均周转时间。(8)具有一定的数据容错性。3.算法及数据结构3.1算法的总体思想3.2先来先服务算法模块3.2.1功能系统将按照作业到达的先后次序来进行调度,或者优先考虑在系统中等待时间最长的作业,不管作业所需执行时间的长短,从后备作业队列中选择几个最先进入该队列的作业,将它们调入内存,为它们分配内存和创建进程,然后放入就绪队列。3.2.2数据结构(包括变量的定义,要注释!)voidrun_FCFS(pcb*p1)//运行未完成的进程{time=p1->arriveTime>time?p1->a

6、rriveTime:time;p1->startTime=time;printf("时刻:%d,当前开始运行作业%s",time,p1->name);time+=p1->serviceTime;p1->state='T';p1->endTime=time;p1->lastTime=p1->endTime-p1->arriveTime;p1->lsTime=p1->lastTime/p1->serviceTime;x+=p1->lastTime;y+=p1->lsTime;printf

7、("arrivetimeservetimestartimeendtimelastimelstime");printf("%6d%10d%10d%8d%10.1f%10.2f",p1->arriveTime,p1->startTime,p1->serviceTime,p1->endTime,p1->lastTime,p1->lsTime);voidFCFS()//找到当前未完成的进程调度算法程序设计实验报告{inti;p=head;for(i=0;istate=

8、='F'){q=p;//标记当前未完成的进程run_FCFS(q);}p=p->next;}}voidgetInfo()//获得进程信息并创建进程{intnum;printf("进程个数:");scanf("%d",&n);for(num=0;numname,&p->arriveTime,&p->service

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

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

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