- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计报告书
实践课题: 操作系统课程设计
姓 名:
学 号:
完成时间: 2010628
指导老师: (老师)
、设计摘要
利用C++,实现进程调度算法,有先来先服务、优先级调度、短作业 优先、响应比高优先,进一步理解了进程调度各种算法的概念及含义。
二、设计背景
在OS中,调度的实质是一种资源分配,调度算法即指:根据系
统的资源分配策略所规定的资源分配算法。 对于不同的系统和系统目 标,通常采用不同的调度算法,如在批处理系统中,为照顾为数众多 的短作业,采用短作业有限调度算法;在分时系统中,为保证系统具 有合理的响应时间,采用轮转法进行调度。采用算法时,则要考虑多 方面因素,以便达到最佳效果。
三、主要技术/算法简介
#in cludeiostream using n amespace std; #defi ne MAX 10 struct task_struct
{
/*进程名称
/*进程名称*/
/*进程编号*/
/*到达时间*/
/*开始运行时间*/
/*运行时间*/
/*运行结束时间*/
/*优先级*/
/*运行次序*/
/ *调度标志*/
/*实际进程个数*/
/*先来先服务*/
int nu mber; float come_time; float run _begi n_time; float run _time;
float run_en d_time; int priority;
int order;
int run _flag; }tasks[MAX];
int coun ter;
int fcfs();
int ps(); /*优先级调度*/
int sjf(); /*短作业优先*/
int hrrn(); /*响应比高优先*/
int pinput(); /*进程参数输入*/
int poutput(); / *调度结果输出*/
void mai n()
{ int opti on;
pin put();
printf(”请选择调度算法(0~4):\n);
printf(1.先来先服务\n);
printf(2.优先级调度\n);
printf(3.短作业优先\n);
printf(4响应比高优先\n);
printf(0.退出 \n);
sca nf(%d,optio n);
switch (opti on)
{
case 0:
printf(运行结束。\n);
break;
case 1:
printf(对进程按先来先服务调度。\n\n ”); fcfs();
poutput();
break;
case 2:
printf(对进程按优先级调度。\n\n);
ps();
poutput();
break;
case 3:
printf(对进程按短作业优先调度。\n\n ”); sjf();
poutput();
break;
case 4:
printf(对进程按响应比高优先调度。 \n\n);
hrrn();
poutput();
break;
}
}
int fcfs() /*先来先服务*/
{
float time_temp=O;
int i;
int nu mber_schedul;
time_temp=tasks[0].come_time;
for(i=0;ico un ter;i++)
{
tasks[i].r un _beg in _time=time_temp;
tasks[i].r un_en d_time=tasks[i].r un _begi n_time+tasks[i].r un _time;
tasks[i].r un _flag=1;
time_temp=tasks[i].r un_en d_time;
nu mber_schedul=i;
tasks[ nu mber_schedul].order=i+1;
}
return 0;
}
int ps() /*优先级调度*/
{
float temp_time=0;
int i=0,j;
int nu mber_schedul,temp_co un ter;
int max_priority;
max_priority=tasks[i].priority;
j=1;
while ((jco unter)( tasks[i].come_time==tasks[j].come_time))
{
if (tasks[j].prioritytasks[i].priority)
{
max_priority=tasks[j].priority;
i=j;
}
j++;
} /*查找第一个被调度的进程 */
/*对第一个被调度的进程求相应的参数 */
nu mber_schedul=i;
tasks[ nu mber_
您可能关注的文档
最近下载
- 2025年中国人民抗日战争胜利80周年铭记历史吾辈自强主题党课PPT.pptx VIP
- 承台土方开挖施工方案.pdf VIP
- 人教版(2019)必修第一册 Unit 3 sports and fitness Reading for Writing 导学案(含答案).docx VIP
- 施工总体进度计划及保障措施.doc VIP
- 《四年级上册语文第四单元复习》课件.pptx VIP
- 重庆独立储能电站项目可行性研究报告.docx
- 《思想政治教育学原理》教学.ppt VIP
- 某楼盘项目首期开盘营销工作倒排计划.xlsx VIP
- 2022人教版四年级上册数学期中测试卷含答案(基础题).docx VIP
- 《尿石症的诊断和治疗(2025EAU指南)》解读PPT课件.pptx VIP
原创力文档


文档评论(0)