




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
操作系统课程设计六种算法 第一篇:操作系统课程设计六种算法《计算机操作系统》学号:班级:软技姓名:张靖伟课程设计报告4班1367003270目录实验:进程调度算法——时间片轮转算法2实验:银行家算法3实验:分区分配算法——4实验:页面置换算法——5实验:磁盘调度算法——BF和FFFIFO和LRUSCAN和SSTF1实验:进程调度算法——时间片轮转算法1.实验设计说明用时间片轮转算法模拟单处理机调度。(1)建立一个进程控制块PCB来代表。PCB包括:进程名、到达时间、运行时间和进程后的状态。进程状态分为就绪(R)和删除(C)。(2)为每个进程任意确定一个要求运行时间和到达时间。(3)按照进程到达的先后顺序排成一个队列。再设一个指针指向队首和队尾。(4)执行处理机调度时,开始选择对首的第一个进程运行。(5)执行:a)输出当前运行进程的名字;b)运行时间减去时间片的大小。(6)进程执行一次后,若该进程的剩余运行时间为零,则删除队首,并将该进程的状态置为C;若不为空,则将向后找位置插入。继续在运行队首的进程。(7)若进程队列不空,则重复上述的(5)和(6)步骤直到所有进程都运行完为止。2.实验代码/*****************时间片轮转调度算法*******************/#include#include#include#defineN10inttime=0;boolspe=false;typedefstructpcb/*进程控制块定义*/{charpname[N];intruntime;/*进程名*//*服务时间*/intarrivetime;/*到达时间*/charstate;/*进程状态*/structpcb*next;/*连接指针*/}PCB;typedefstructback_team/*后备队列定义*/{PCB*first,*tail;}BACK_TEAM;typedefstructpre_team/*就绪队列定义*/{PCB*first,*tail;}PRE_TEAM;PCB*creat()/*创建PCB*/{chars[N];printf(“请输入进程名:n”);scanf(“%s”,s);printf(“请输入进程服务时间(/秒):n”);intt;scanf(“%d”,&t);PCB*p=(PCB*)malloc(sizeof(PCB));strcpy(p->pname,s);p->runtime=t;printf(“请输入进程到达时间(/秒):n”);scanf(“%d”,&t);p->arrivetime=t;p->state='R';p->next=NULL;getchar();returnp;}PCB*copy(PCB*p)/*复制一个进程*/{}PCB*getnext(PCB*p,BACK_TEAM*head)/*得到队列中下一个进程*/{}voiddel(BACK_TEAM*head,PRE_TEAM*S)/*释放申请的空间*/{PCB*p=head->first->next;while(p){free(head->first);head->first=p;PCB*s=head->first;if(!p)returnNULL;if(!p)returnNULL;PCB*s=(PCB*)malloc(sizeof(PCB));strcpy(s->pname,p->pname);s->next=NULL;s->arrivetime=p->arrivetime;s->runtime=p->runtime;s->state=p->state;returns;while(strcmp(s->pname,p->pname))s=s->next;returns->next;}}p=p->next;head->first=head->tail=NULL;free(head);free(S);BACK_TEAM*creatbt(BACK_TEAM*head)/*创建后备队列*/{}boolrecognize(PRE_TEAM*s1)/*判断运行是否结束*/{if(!s1||!s1->first)returnfalse;PCB*p=creat();if(!head->first)elsehead->tail->next=p;head->first=p;head->tail=p;returnhead;if(s1->first==s1->tail)if(s1->first->state!='C')elsereturnfalse;returntrue;PCB*test=s1->first;while(test!=s1->tail&&(test->state!='C'))test=test->next;if(tes

Jo****63
实名认证
内容提供者


最近下载
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf