操作系统上机答案(全).doc
文本预览下载声明
1.进程调度
2.可变分区存储管理方案中的内存分配3.页式存储管理方案中的内存分配
4.虚拟存储管理器的页面调度
5.磁盘存储空间的管理
7.磁盘调度8.作业调度9.银行家算法
10.死锁检测算法
返回首页
/*进程调度算法有FIFO,优先数调度算法,时间片轮转调度算法,分级调度算法,目前主要是考FIFO和优先数调度算法(静态优先级)。
进程名 进程状态(1就绪 2等待 3运行)??所需时间??优先数(0级最高)
:进程执行流 和等待时间 平均等待时间
:FIFO,优先数调度算法,时间片轮转调度算法
VC++调试通过
(C)copyright by Neo
??欢迎大家测试 请问题请Email:sony006@163.com??*/
#includestdio.h#includestring.h#includeiostream.h
const int block_time=10; //定义时间片的长度为10秒const int MAXPCB=100; //定义最大进程数
//定义进程结构体typedef struct node{char name[20];int status;int time;int privilege;
int finished;int wait_time;}pcb;
pcb pcbs[MAXPCB];int quantity;
//初始化函数void initial(){int i;
for(i=0;iMAXPCB;i++){strcpy(pcbs[i].name,);??pcbs[i].status=0;??pcbs[i].time=0;??pcbs[i].privilege=0;
??pcbs[i].finished=0;??pcbs[i].wait_time=0;}
quantity=0;}
//读数据函数int readData(){FILE *fp;char fname[20];int i;
cout请输入进程流文件名:;cinfname;if((fp=fopen(fname,r))==NULL){cout错误,文件打不开,请检查文件名endl;}else{while(!feof(fp)){?? fscanf(fp,%s %d %d %d,pcbs[quantity].name,pcbs[quantity].status,pcbs[quantity].time,pcbs[quantity].privilege);?? quantity++;??}????//输出所读入的数据cout输出所读入的数据endl;cout进程名 endl;??for(i=0;iquantity;i++){?? cout??pcbs[i].name???? pcbs[i].status??????????pcbs[i].time????????pcbs[i].privilegeendl;??}??return(1);}return(0);
}
//重置数据,以供另一个算法使用void init(){ int i;
for(i=0;iMAXPCB;i++){
pcbs[i].finished=0;??pcbs[i].wait_time=0;}}
//先进先出算法void FIFO(){int i,j;int total;
//输出FIFO算法执行流coutendlendl;coutFIFO算法执行流:endl;cout进程名????等待时间endl;for(i=0;iquantity;i++){cout??pcbs[i].name???????? pcbs[i].wait_timeendl;????for(j=i+1;jquantity;j++){?? pcbs[j].wait_time+=pcbs[i].time;??}}total=0;for(i=0;iquantity;i++){??total+=pcbs[i].wait_time;}cout总等待时间:total??平均等待时间:total/quantityendl;
}
//优先数调度算法void privilege(){int i,j,p;int passed_time=0;int total;
int queue[MAXPCB];int current_privilege=1000;
for(i=0;iquantity;i++){current_privilege=1000;??for(j=0;jquantity;j++){?? if((pcbs
显示全部