处理机调度实验报告+下载

处理机调度实验报告+下载

ID:38664606

大小:260.00 KB

页数:13页

时间:2019-06-17

处理机调度实验报告+下载_第1页
处理机调度实验报告+下载_第2页
处理机调度实验报告+下载_第3页
处理机调度实验报告+下载_第4页
处理机调度实验报告+下载_第5页
资源描述:

《处理机调度实验报告+下载》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、黄冈师范学院提高型实验报告实验课题处理机调度算法基于优先数调度算法实现(实验类型:□综合性√设计性□应用性)实验课程操作系统原理实验时间2008-2009第一学期学生姓名专业班级学号-13-一、实验目的和要求成绩:1、让学生能掌握Linux系统结构、实现机理和各种典型算法2、系统地了解操作系统的设计和实现思路3、增强实际应用能力和动手操作能力4、设计进程调度算法,进程数不定5、包含几种调度算法,并加以实现6、输出进程的调度过程——进程的状态、链表等二、实验条件Windows2000/WindowsME/Linux等操作系统,装有PASCAL、C、

2、C++等语言工具的环境三、实验原理分析无论是在批处理系统,分时系统还是实时系统,用户进程数一般都多于处理机数,这将导致用户数相互争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态的把处理机分配给处于就需队列中的某一个进程,以使之执行。在操作系统中,由于进程总数多于处理机,它们必然竞争处理机。进程调度的功能就是按一定策略、动态地把处理机分配给处于就绪队列中的某一进程并使之执行。根据不同的系统设计目标,可有多种选择某一进程的策略。本实验是采用优先数法进程调度算法来模拟演示进程调度,编程语言为C语言。四、实验方案或步

3、骤1、需求分析1.题目——优先权法算法实现简化假设1)进程为计算型的(无I/O)2)进程状态:ready、running、finish3)进程需要的CPU时间以时间片为单位确定2.算法描述1)优先权法——动态优先权当前运行进程用完时间片后,其优先权减去一个常数。2)轮转法2、概要设计(各个模块的流程图及主函数的流程图,至少包括3-4个)本程序用5个进程,每个进程用一个进程控制块PCB来表示设计流程图-13--13-3、详细设计(各个模块的算法实现,即各个用户自己的头文件)*/首先定义头结点headnode来标志队首*/#include

4、.h>#include#include4、代码清单(包含头文件<用命令括进去即可#include……>和主函数)#include#includeusingnamespacestd;#defineMAX10structtask_struct{charname[10];/*进程名称*/intnumber;/*进程编号*/floatcome_time;/*到达时间*/floatrun_begin_time;/*开始运行时间*/floatrun_time;/*运行时间*/flo

5、atrun_end_time;/*运行结束时间*/intpriority;/*优先级*/intorder;/*运行次序*/intrun_flag;/*调度标志*/}tasks[MAX];intcounter;/*实际进程个数*/intfcfs();/*先来先服务*/intps();/*优先级调度*/intsjf();/*短作业优先*/inthrrn();/*响应比高优先*/intpinput();/*进程参数输入*/intpoutput();/*调度结果输出*/intmain(){intoption;pinput();printf("请选择调度算

6、法(0~4):");printf("1.先来先服务");printf("2.优先级调度");printf("3.短作业优先");-13-printf("4.响应比高优先");printf("0.退出");scanf("%d",&option);switch(option){case0:printf("运行结束。");break;case1:printf("对进程按先来先服务调度。");fcfs();poutput();break;case2:printf("对进程按优先级调度。");ps();poutp

7、ut();break;case3:printf("对进程按短作业优先调度。");sjf();poutput();break;case4:printf("对进程按响应比高优先调度。");hrrn();poutput();break;}}intfcfs()/*先来先服务*/{floattime_temp=0;inti;intnumber_schedul;time_temp=tasks[0].come_time;for(i=0;i

8、sks[i].run_end_time=tasks[i].run_begin_time+tasks[i].run_time;tasks[

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

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

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