操作系统试验报告 试验一_第1页
操作系统试验报告 试验一_第2页
操作系统试验报告 试验一_第3页
操作系统试验报告 试验一_第4页
操作系统试验报告 试验一_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——操作系统试验报告试验一>i;while(i){}return0;

if(i==1){}

elseif(i==2){

cout>i;

coutnext;

while(p!=0q->next=item;item->next=0;q->next=item;q=p;p=p->next;

PCB*p,*q;q=queue,p=q->next;while(p!=0)

-7-

}

{}

item->next=q->next;q->next=item;

q=p;p=p->next;

voidsort_queue(PCB*temp->next=0;while(queue->next){}

queue->next=temp->next;deletetemp;

PCB*p;p=queue->next;queue->next=p->next;insert_queue(temp,p);

PCB*newp=0;staticlongid=0;newp=newPCB;id++;newp->ID=id;newp->State=0;newp->CPUtime=0;

-8-

}

newp->priority=rand()%3+1;newp->ALLtime=rand()%3+1;newp->next=NULL;

pushback_queue(ready_queue,newp);//print(newp);

//coutnext=0;ready_queue=newPCB;ready_queue->next=0;

inti=0,pcb_number=-1;/*闲逛进程放入就绪队列*/idleprocess=NULL;

idleprocess=(PCB*)malloc(sizeof(PCB));idleprocess->ID=0;idleprocess->State=0;idleprocess->CPUtime=0;idleprocess->priority=0;idleprocess->ALLtime=0;idleprocess->next=NULL;

idleprocess->next=ready_queue->next;/*闲逛进程放入就绪队列*/

-9-

ready_queue->next=idleprocess;

//也可以假定初始时系统中只有一个idle进程//输入初始进程的个数

while(pcb_number>pcb_number;

coutState=2;pcb->CPUtime-=2;if(pcb->CPUtimeblocked\\n\pcb->next=block_queue->next;block_queue->next=pcb;

pcb->CPUtime+=2;

ID==0){}else{

pcb->State=1;pcb->CPUtime+=4;

pcb->priority=pcb->priority-3;/*每运行一个时间片,其优先数减3*/if(pcb->priorityrunning\\n\

print(pcb);

printf(\变迁1:ready->running\\n\

if(rand()%3==1)/*PCB不是闲逛进程,满足条件侧阻塞此进程*/{

if(pcb->CPUtime-2ALLtime)

block(pcb);

else/*已执行完毕,应当销毁进程*/{}

-12-

coutrunning\\n\

else{}

if(rand()%5==1){}

if(rand()%7==1)

wakeup();insert(3);pcb->State=1;

pcb->CPUtime=pcb->ALLtime;print(pcb);

printf(\变迁1:ready->running\\n\

if(rand()%3==1)/*PCB不是闲逛进程,满足条件侧阻塞此进程*/{}else{}

coutDestrory\deletepcb;

_state=1;block(pcb);

voidproc_priority()//优先权调度算法模拟{

sort_queue(ready_queue);PCB*temp=0,*running=0;

-14-

}

inttimes=0;coutnext;ready_queue->next=running->next;coutnext;ready_queue->next=running->next;cout0){

times=times-running->ALLtime;/*每次运行一个进程减去ALLtime;*/if(times>=0){

Run_loop(running);

-15-

}}

}

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论