您所在位置: 网站首页 / 操作系统课程设计六种算法.docx / 文档详情
操作系统课程设计六种算法.docx 立即下载
2025-08-27
约4万字
约67页
0
36KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

操作系统课程设计六种算法.docx

操作系统课程设计六种算法.docx

预览

免费试读已结束,剩余 62 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

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
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

操作系统课程设计六种算法

文档大小:36KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用