实验报告一处理机调度

更新时间:2023-08-28 00:45:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

操作系统原理实验之处理及调度

《操作系统原理》实验报告

实验序号:1 实验项目名称:处理机调度

操作系统原理实验之处理及调度

Creat(), 创建进程, 数据变量有字符数组 name[], 整形变量 priority, 整型变量 run_time 来表示进程的名称、优先数、运行时间。 Delete(),删除就绪队列中对首进程 Insert(),向就绪队列中按照降序插入进程 Output() ,输出执行进程名称、优先数、运行时间、状态 Solve(),创建几个进程,并插入就绪队列 Sort(),对就绪队列排序,按照降序 五、源程序#include<iostream> #include<string> using namespace std; //----------------------struct _proc { char name[32]; struct _proc *next; int run_time; int priority; int state;//就绪为 }; _proc *root; //向就绪队列中插入进程,按照降序 void Insert(_proc* pr) { _proc *q=root;//方便插入,记录插入位置的前面的进程 _proc *p=root->next; if(root->state!=0) { while(p!=NULL)//找插入位置 { if(p->priority>pr->priority)//优先级小于时,继续遍历

操作系统原理实验之处理及调度

{ q=p; p=p->next; } else//找到插入 { break; } } } pr->n

ext=p;//插入 q->next=pr; ++root->state;//进程个数加一 } //创建进程 _proc Creat(char name[],int priority,int run_time) { _proc pr; strcpy(http://www.77cn.com.cn,name); pr.priority=priority; pr.run_time=run_time; pr.state=0; pr.next=NULL; return pr; } //删除就绪队列中对首进程 _proc* Delete() { _proc* pr=root->next; root->next=root->next->next; --root->state;

操作系统原理实验之处理及调度

return pr; } //对就绪队列排序,按照降序 void Sort() { if(root->next->run_time==0)//要执行时间为时,从就绪队列中删除该进程 { Delete(); root->next->state=1; } else//不为时,先删除,再根据变化后的优先级,插入到相应位置 { _proc *pr=Delete(); Insert(pr); } }

//输出执行进程号 void OutPut() { cout<<root->next->name<<" "<<root->next->priority<<" "<<root->next->run_time<<"

"<<root->next->state<<endl;//输出,模拟进程执行 --root->next->priority;//修改进程的优先级和运行时间,状态 --root->next->run_time; }

void Solve() { //根结点 root=new _proc; root->state=0;//state 记录就绪队列中的进程个数

操作系统原理实验之处理及调度

root->next=NULL;//指向第一个进程 //创建几个进程,并插入就绪队列 _proc pr1=Creat("p1",2,1); Insert(&pr1); _proc pr2=Creat("p2",3,5); Insert(&pr2); _proc pr3=Creat("p3",1,3); Insert(&pr3); _proc pr4=Creat("p4",2,4); Insert(&pr4); _proc pr5=Creat("p5",4,2); Insert(&pr5); cout<<"实验一:设计一个按优先数调度算法实现处理器调度的程序"<<"\n"<<endl; cout<<"调度序列如下:"<<"\n"<<endl; cout<<"name|priority|run_time|state|"<<endl; while(root->state!=0) { OutPut(); Sort(); } } int main() { Solve(); getchar(); getchar(); return 0; }

操作系统原理实验之处理及调度

六、运行调试结果

七、实验心得和收获

七、教师评语1.按时完成实验; 2.数据结构及符号说明完整明了; 3.有源程序清单; 4.运行调试结果有代表性; 5.实验报告的撰写认真、格式符合要求.

成绩

签名:金晶 日期:

本文来源:https://www.bwwdw.com/article/wjii.html

Top