- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
优先级调度算法设计与实现
操作系统实验报告
实验地点: GS4304 实验日期: 2015-11-11 班级: 13数字媒体 学号: 姓名: 一、实验题目:优先级调度算法设计与实现
二、实验过程:
实验代码:
//====================================================================
#include stdio.h
#include dos.h
#include conio.h
#include math.h
#define INTR 0x1C //INT 1Ch
int xx=0; //记录中断次数的全局变量
void interrupt (*oldhandler)(...); //定义中断向量
//进程控制块结构体
struct PRO
{
char id; /*进程id号 */
int pri; //进程优先级
int p; /*优先级递增量*/
int s; /*优先级递减量*/
int status; //进程状态
}A={a,2,1,1,0},B={b,1,1,1,0},C={c,0,1,1,0};
//中断处理函数
void interrupt time(...)
{ int a;
if(A.status==1) A.pri=A.pri-A.s;
else A.pri=A.pri+A.p;
if(B.status==1) B.pri=B.pri-B.s;
else B.pri=B.pri+B.p;
if(C.status==1) C.pri=C.pri-C.s;
else C.pri=C.pri+C.p;
xx++;
}
/*进程选择函数*/
char select()
{if(A.pri=B.priA.pri=C.pri) {A.status=1;B.status=0;C.status=0;return A.id;}
else if(B.priA.priB.pri=C.pri) {A.status=0;B.status=1;C.status=0;return B.id;}
else {A.status=0;B.status=0;C.status=1;return C.id;}
}
/* 求素数函数*/
int prime (int n)
{int k,i,j;
k=sqrt(n);
for(i=2;i=k;i++)
if(n%i==0) return 0;
return n;
}
//主函数
void main ( )
{ int a[3]={100,100,100};
int u, v, w=0, x=0, y=0;
char c;
oldhandler=getvect(INTR); /*获取中断处理 INT 1Ch*/
setvect(INTR,time); /*将中断处理函数设为time()*/
gotoxy(10,2); printf(THE PROCESSES ARE PLAYING:\n);
gotoxy(10,4); printf(Processid Prime Times\n);
while(xx=300)
{u=select();
switch (u)
{
case a: a[0]++; if(a[0]10000) a[0]=100; v=prime(a[0]);
if(v) {gotoxy(10,6); printf( A %6d %6d, v, w++); } break;
case b: a[1]++; if(a[1]10000) a[1]=100; v=prime(a[1]);
if(v) {gotoxy(10,8); printf( B %6d %6d, v, x++); } break;
case c: a[2]++; if(a[2]10000) a[2]=100; v=prime(a[2]);
if(v) {gotoxy(10,10); printf( C %6d %6d, v, y++); } break;
}
gotoxy(13,12); printf(TIME INTERRUPT %d,xx);
}
setvect(INTR,oldhandler); /*恢复中断*/
getchar();
}
//================================================================ 程序流程图
您可能关注的文档
- ShopNC多用户商城系统商家手册.doc
- Weblogic12c安装部署手册.doc
- WhoGetstheGoodGenes.doc
- Win10升级助手产品常见问题汇总727.docx
- Win7_remote_assistance.doc
- WindowsServer2012中通过WEB修改域用户账号密码.docx
- OracleDataIntegrator用户手册.doc
- WJJ保温模板施工方案(一期).doc
- winxp或win2000用户和计算机帐户管理.doc
- UI用户界面设计课程设计报告.doc
- 2024年最新国家开放大学(电大)《公共行政学》形考任务参考题库.docx
- 2022年9月4日中级会计财务管理考试真题及答案(第二场).pdf
- 2024年(最新)国开电大本科《公共行政学》考试题库(通用题型).docx
- 2024年(最新)国家开放大学(电大)本科《公共行政学》形考题库.docx
- 2024年普通脚手架工(建筑特种工)考试题及答案.pdf
- 2024年自考00319《行政组织理论》全真模拟试题(含答案).pdf
- 2024年(最新)国开(电大)《公共行政学》考试通用题及答案.docx
- 2021年5月信息技术服务管理体系考试真题.pdf
- 2024年国开电大本科《公共行政学》形考任务参考题库.docx
- 2022年护理三基考试65题(带答案).pdf
文档评论(0)