版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统实验报告(一)班级:计1001 姓名:车琛 学号:201007010113 实验一 进程调度算法模拟1内容:设计一个简单的进程调度算法,模拟os中的进程调度过程;2要求: 进程数不少于5个; 进程调度算法任选; 可以用动态优先数加时间片轮转法实现进程调度,每运行一个时间片优先数减3; 用c语言编程; 程序运行时显示进程调度过程。3步骤: 设计pcb及其数据结构: 进程标识数:id 进程优先数:priority(优先数越大,优先级越高) 进程已占用时间片:cputime,每得到一次调度,值加1; 进程还需占用时间片:alltime,每得到一次调度,该值减1,一旦运行完毕,alltime为
2、0) 进程队列指针:next,用来将pcb排成队列 进程状态:state(一般为就绪,可以不用) 设计进程就绪队列及数据结构; 设计进程调度算法,并画出程序流程图; 设计输入数据和输出格式; 结构格式:当前正运行的进程:0 当前就绪队列:2,1,3,4 编程上机,验证结果。4提示:假设调度前,系统中有5个进程,其初始状态如下:id01234priority93830290可否考虑用数组或链表去实现cputime00000alltime32634statereadyreadyreadyreadyready 以时间片为单位调度运行; 每次调度alltime不为0,且priority最大的进程运行一
3、个时间片; 上述进程运行后其优先数减3,再修改其cputime和alltime,重复, 直到所有进程的alltime均变为0。5书写实验报告 实验题目; 程序中所用数据结构及说明; 清单程序及描述; 执行结果。代码清单#include<iostream.h>#include<stdlib.h>#include<malloc.h>#include<windows.h>#include<stdio.h>#define minsize 5typedef enum stateready,running,stop,state;typedef s
4、truct pcbint pid;int priority;/ 进程优先级int cputime;int alltime;state state; struct pcb *prev;struct pcb *next;pcb;typedef pcb node;void init_process(node *&head) head= (pcb *)malloc(sizeof(pcb);head->next = head;head->prev = head;void push(node *head,node *pnode)if(head = null|pnode = null)r
5、eturn;node * p = head->next;while(p!=head && pnode->priority < p->priority) p= p->next;pnode->next=p->prev->next; pnode->prev=p->prev;p->prev->next=pnode;p->prev = pnode;void show_process(node *head)if(head=null)return;node *p = head->next;cout<&l
6、t;"当前的就绪队列有:"<<endl;cout<<"*进程调度表*"<<endl;while(p != head)cout<<endl;cout<<"进程号为 "<<p->pid<<" "cout<<"优先级为 "<<p->priority<<" "cout<<"剩余alltime为 "<<p->
7、;alltime<<" "cout<<"运行时间cputime为 "<<p->cputime<<" "cout<<endl;cout<<endl;p = p->next;cout<<"*"<<endl;node * pop_front(node *head)if(head=null|head->next = head)return null;node * p = head->next;p->
8、prev->next = p->next;p->next->prev = p->prev;return p;pcb * create_process(int id,int priority,int cputime,int alltime,state state) pcb *p = (pcb *)malloc(sizeof(pcb);p->pid = id;p->cputime = cputime;p->alltime = alltime;p->priority = priority;p->state = state;p->nex
9、t = null;p->prev = null;return p;void destroy_head(node *head)if(head=null)return;free(head);void destroy(node *pnode)if(pnode = null)return; node *p = pnode;p->prev->next=p->next;p->next->prev=p->prev;cout<<"进程"<<p->pid<<"已经销毁!"<<e
10、ndl;free(p);void process_running(node *head)if(head = null|head->next = head)return;node *p = null;while(head->next!=head)p = head->next;p = pop_front(head);p->cputime += 1;p->alltime -= 1;p->priority -= 3;p->state = running;cout<<endl;cout<<"当前正在执行的进程为:"&l
11、t;<p->pid<<endl;if(p->priority<=0)p->priority =0;cout<<endl; cout<<"进程号为 "<<p->pid<<" "cout<<"优先级为 "<<p->priority<<" "cout<<"剩余alltime为 "<<p->alltime<<" &q
12、uot;cout<<"运行时间cputime为 "<<p->cputime<<" "cout<<endl;cout<<endl;cout<<endl;cout<<endl;if(p->alltime<=0)p->state = stop;destroy(p);p = null;if(p!=null)p->state = ready;push(head,p);show_process(head);char c = getchar();destr
13、oy_head(head);int main()pcb * head=null; init_process(head);pcb *p =null; int priority = 1;int cputime = 0;int alltime = 0;state state = ready;int count = 0; int num = 0;cout<<"请输入当前运行的进程数,至少5个"<<endl;cin>>num;for(int i = 0;i<num;+i)count+=1;cout<<"请输入第 "<<count<<"个进程的优先级和总运行时间alltime"<<endl;cin>>priority>>alltime;p=create_process(count,priority,cputime,alltime,state);push(head,p);show_process(head);process_running(hea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考志愿填报指南如何选大学挑专业不踩坑
- 盆腔炎复发风险的评估与干预
- 白血病护理中的感染控制
- 案例教学在护理中的应用
- 2026 塑型进阶年糕课件
- 管道防腐蚀涂料与涂层技术
- 福辛普利钠片与血管紧张素受体拮抗剂联合使用的效果比较
- 装袋师产品包装装袋处理2025年合同协议
- 梨树县教师编试题及答案
- 考天津公务员试题及答案
- 湖南省长沙市联考2025-2026学年高三年级上册11月一模物理试卷
- 2026年初级会计职称考前冲刺模拟试卷
- 地下水环境监测井管理与维护技术规范(征求意见稿)
- 2026届广东省汕头市六校中考考前最后一卷语文试卷含解析
- 2026年青海八年级地理生物会考试题题库(答案+解析)
- 2026年福建厦门市地理生物会考试题题库(答案+解析)
- (2026版)中国慢性呼吸疾病呼吸康复指南课件
- 2026北京外国语大学纪检监察岗位招聘建设考试参考题库及答案解析
- AQ 3067-2026新标准全面解读
- 四川职业技术学院辅导员招聘笔试真题2025年附答案
- 特种作业人员安全培训教师资质考核试卷及答案(2025年8月)
评论
0/150
提交评论