- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计
理解进程的三状态调度过程;
设计调度算法;
编程实现;
测试。
实验结果:
所实现的系统提供一个用户界面,可以在上边发出资源申请命令,系统应能给出是否可以接受申请,并且有结论输出;
所实现的系统根据一个进程调度命令文件,模拟进程的各种调度过程,用适合的表达方式表示出来。
//进程调度的过程模拟
// PStateConvert.cpp : Defines the entry point for the console application.
//
#include stdafx.h
#include stdio.h
#include malloc.h
#include trique.h
#include iostream.h
int r[3]={0};
void readFile(prdy ready)
{
int pid,runtime,iotime,ioclock,key=0;
prdy p[4];
FILE *fp=NULL;
p[0] = ready;
p[1] = (prdy)malloc(sizeof(rdy));
p[2] = (prdy)malloc(sizeof(rdy));
p[3] = (prdy)malloc(sizeof(rdy));
p[1]-next = NULL;
p[2]-next = NULL;
p[3]-next = NULL;
//p-next = NULL;
if((fp = fopen(proCtrFile.txt,rb))==NULL){
printf(打开文件失败!);
}
do{
key ++;
fscanf(fp,%d,pid);
p[key]-que = pid;
fgetc(fp);
fscanf(fp,%d,runtime);
p[key]-rtm = runtime;
fgetc(fp);
fscanf(fp,%d,ioclock);
p[key]-iotm = ioclock;
fgetc(fp);
fscanf(fp,%d,iotime);
p[key]-iolong = iotime;
fgetc(fp);
p[0]-next = p[key];
p[0] = p[0]-next;
if(key == 3) break;
//用三个指针变量来存储中间的输入。因为同一个指针变量指向相同的空间,会使结果
//中出现的值都为一样的;
}while(true);
fclose(fp);
}
void delFromReady(prdy ready){
prdy p,q;
p = ready;
q = p-next;
p-next = q-next;
}
void insertToSus()
{
printf(阻塞过程中... ...\n);
}
void delFromSus()
{
printf(阻塞结束!\n);
}
void insertToReady(prdy ready,prdy runQue)
{
prdy p;
p = ready;
while(p-next){
p = p-next;
}
runQue-next = NULL;
p-next = runQue;
}
void roundrun(prdy ready)
{
prdy p, runQue;
int time;
p = ready;
do{
getchar();//接受任意键
//runQue = insertToRun(p-next);//就绪队列拿出一个进程放入运行队列
runQue = p-next;
delFromReady(ready);
time = r[runQue-que] ++;
if(time == runQue-iotm){
for(int i=0;i runQue-iolong;i++){
insertToSus();
}
delFromSus();
insertToReady(ready,runQue);
}else
if(time == runQue-rtm){
printf( 第%d个进程运行结束! , runQue-que);
}
else{
printf(一个时间片结束!\n);
insertToReady(ready,runQue);
}
printf(\n任意键继续... ...\n);
//delFromRun(runQue);
}whil
您可能关注的文档
最近下载
- 下肢静脉曲张小讲课课件.ppt VIP
- 项目管理知识要点测试试卷及答案.doc VIP
- 云电子胶片及报告系统软件产品技术要求参考版.docx VIP
- 《FDA清洁验证指南》中英文对照.pdf VIP
- 大坝巡视检查记录(日).pdf VIP
- (高清版)DB51∕T 2825-2021 放心舒心消费服务规范 第1部分:家装行业.pdf VIP
- Unit 2 Home Sweet Home单元词汇及语法培优练习题-人教版英语八年级上册.pdf VIP
- 光伏发电工程建设管理浅谈ppt.docx VIP
- 初中信息技术学科培养学生计算思维的策略探究.docx VIP
- 三级安全教育交底三级安全教育交底.doc VIP
文档评论(0)