操作系统进程管理实验

操作系统进程管理实验

ID:22669154

大小:665.79 KB

页数:21页

时间:2018-10-30

操作系统进程管理实验_第1页
操作系统进程管理实验_第2页
操作系统进程管理实验_第3页
操作系统进程管理实验_第4页
操作系统进程管理实验_第5页
资源描述:

《操作系统进程管理实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、昆明理工大学信息工程与自动化学院学生实验报告(2010—2011学年第二学期)课程名称:操作系统开课实验室:信自楼4442011年4月10日年级、专业、班学号姓名成绩实验项目名称进程管理指导教师教师评语教师签名:年月日一、实验口的通过编写进程管理的算法,要求学生掌握整个进程管理的各个环节,进程的数据结构描述,进程的各种状态之间的转换,以及进程的调度算法。以加深对进程的概念及进程调度算法的理解,并且提高链表的应用能力,达到提高编程能力的口的。二、实验原理及基本技术路线图(方框原理图)用C语言或C++语言开发。需要定义PCB的数据结构,用链表的形式管理进程,采用多级

2、反馈队列调度的算法模拟进程的控制。要求旮创建、撤销、调度、阻塞、唤醒进程等功结束>终止②数据结构定义、主要变量的说明、函数的说明及各原语的功能说明typedefstructPCB定义结构体PCB进程控制块;charNAME[20]定义结构体变滅:,进程名;longID定义进程id;intRUNTIME定义进程运行时间;charSTATE[61定义进程状态有ready、wait、run;intPRIORITY定义权值。typedefstructQNode{PCBpcb;structQNode*next;}QueuePtr;定义中链表,有定义指针next。typed

3、efstructLinkQueue{intprior;QueuePtr*front;QueuePtr*rear;intPartTime;}LinkQueue;链队列+定:优先级、结构体里的QueuePtr类型指针变景,指该优先级的进程的头结点和尾结点,还运行的吋间片。LinkQueueReadyqueue[10]链队列的单链表。voidschedule()声明调度函数,用来调度进程的运行;voidshow()声明输出函数,用来输出的一个函数;voidCreate()声明创建进程的函数,用來创建进程。yunxingshijian=l+(int)(rand()%30

4、);此语句是随机生成一个整数赋给运行时间RUNTIME;youxianji=1+(int)(rand()%9);该语句随机生成一个整数(1-9)赋给优先级;strcpy(p->pcb.NAME,name)将名字赋给PCB块;strcpy(p-〉pcb.STATE,”Ready")将进积状态赋给PCB块;p->pcb.PRIORITY=youxianji将优先级赋给PCB块;p->pcb.RUNTTME=yunxingshijian;将运行吋间赋给PCB块;p-〉pcb.ID=id将id号赋给PCB块。{Readyqueue[i].front->next=p->n

5、ext;Readyqueue[i+1].rear->next=p;Readyqueue[i+1].rear=p;p->next=NULL;}p移到下一队列的队尾,使Readyqueue[i+l].rear指句最后一个结点。{Readyqueue[i].front-〉next=p-〉next;Readyqueue[9].rear->next=p;p->next=NULL;Readyqueue[9].rear=p;}//p->next前移,把p移到运行结束的队列Readyqueuel9].rear0②多级反馈队列调度算法的描述一个进程被调度,则其运行时间有p->pc

6、b.RUNTIME=p->pcb.RUNTIME-(int)pow(2,i+1),此后如果该进程的p-〉pcb.RUNTIME<0或p->pcb.RUNTIME=O,此进程就结朿且加入到Readyqueue[9].rear->next=pp-〉next=NULL。没有结束就移加到下一队列的尾部且优先级减“1”(Readyqueue[i].front-〉next=p-〉next;Readyqueue[i+1].rear->next=p;Readyqueue[i+1].rear=p;p->next=NULL;)。然后往不执行。如此循环.ivReadyqueue[jj

7、.front-〉next!=NULL发牛.吋,就往下-优先级运行。且到所有进程结束。〈2〉调度函数schedule()(右图)③程序功能结构阁、流程阁〈1>创建进程函数Create()(左图)凋用InitQueue()W数输入name随机生成优先级、运行时叫fori=0to9k=Readyqueue

8、i

9、.front;strcpy(p->pcb.NAME,namc);strcpy(p-〉pcb.STATE,’’Ready");p->pcb.PRIORITY=youxianji;p->pcb.RUNTIME=yunxingshijian;p->pcb.ID=id;

10、k->ncxt=p;p-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。