操作系统实验报告3篇
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书
设计题目:操作系统课程设计
班级:信息管理与信息系统2011级
学号:
姓名:
山东科技大学
2013年12 月25 日
课程设计任务书
学院信息科学与工程专业信息学管理与信息系统班级2011-1
姓名
一、课程设计题目:操作系统课程设计
二、课程设计主要参考资料
(1)Abraham Silberschatz & Peter Baer Galvin & Greg Gagne. Operating System Concepts(第七版影印版). 高等教育出版社. 2007.3.
(2)计算机操作系统(第三版)西安电子科技大学出版社
(3)
三、课程设计应解决的主要问题:
(1)CPU调度算法的模拟实现
(2)死锁相关算法的实现
(3)磁盘调度算法的实现
四、课程设计相关附件(如:图纸、软件等):
(1)程序源代码
(2)
五、任务发出日期:2013-10-1 课程设计完成日期:2014-1-1
指导教师签字:
指导教师对课程设计的评语成绩:
指导教师签字:
年月日
设计1 CPU调度算法的模拟实现
一、设计目的
1、根据系统的资源分配策略所规定的资源分配算法
2、利用编程语言,模拟实现先来先服务(FCFS)、最短作业优先(非抢占SJF)、非抢占优先调度算法、时间片轮转调度算法(RR)
3、针对模拟进程,利用CPU调度算法进行调度
4、进行算法评价,计算平均周转时间和平均等待时间
二、设计要求
1、调度所需的进程参数由输入产生(手工输入或者随机数产生)
2、输出调度结果
3、输出算法评价指标
三、设计说明
1、定义public类:
class program{
public:
char name;//进程名
int atime;//进程到达的时间
int stime;//进程服务的时间
int btime;//进程开始执行的时间
int ftime;//进程完成的时间
int rtime;//进程的周转时间
float qrtime;//进程的带权周转时间
};
2、冒泡排序:
class program t;
for( i=1;i for(int j=0;j if(p[j].atime>p[j+1].atime){ t=p[j]; p[j]=p[j+1]; p[j+1]=t; } 3、流程图: (1)①先来先服务调度流程图: ②主要程序 p[0].btime=p[0].atime; p[0].ftime=p[0].atime+p[0].stime; p[0].rtime=p[0].ftime-p[0].atime; p[0].qrtime=(float)p[0].rtime/p[0].stime; for(i=1;i if(p[i].atime>p[i-1].ftime){ p[i].btime=p[i].atime; } else{ p[i].btime=p[i-1].ftime; } p[i].ftime=p[i].btime+p[i].stime; p[i].rtime=p[i].ftime-p[i].atime; p[i].qrtime=(float)p[i].rtime/p[i].stime; } ①短作业优先进程(非抢占优先权)调度流程图: ②(SJF)主要代码 int k=0,x=0; for(i=k+1;i for(j=k+1;j if(p[j].atime x++; } else break; } int min=k+1; if(x>1){ for(j=k+2;j<=x+k;j++){ if(p[j].stime min=j; } } t=p[min]; p[min]=p[k+1]; p[k+1]=t; p[k+1].ftime=p[k].stime+p[k+1].stime; } k++; x=0; } ③优先权调度算法(非抢占): int k=0,x=0; for(i=k+1;i for(j=k+1;j if(p[j].atime x++; } else break; } int min=k+1; if(x>1){ for(j=k+2;j<=x+k;j++){ if(p[j].youxianquan min=j; } } t=p[min]; p[min]=p[k+1]; p[k+1]=t; p[k+1].ftime=p[k].stime+p[k+1].stime;