进程管理实验报告昆工.doc

进程管理实验报告昆工.doc

ID:58482340

大小:130.00 KB

页数:14页

时间:2020-05-16

进程管理实验报告昆工.doc_第1页
进程管理实验报告昆工.doc_第2页
进程管理实验报告昆工.doc_第3页
进程管理实验报告昆工.doc_第4页
进程管理实验报告昆工.doc_第5页
资源描述:

《进程管理实验报告昆工.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

2、数据结构,用链表的形式管理进程,采用多级反馈队列调度的算法模拟进程的控制。要求有创建、撤销、调度、阻塞、唤醒进程等功能。状态转换图:执行进程,在规定时间内,未执行完,则进入下一链表尾部,进行等待就绪队列准备进入内存执行完毕输出重复执行,直至为空,则执行下一链表各原语的功能说明:#include标准输入输出头文件#includestdlib.h里面定义了五种类型、一些宏和通用工具函数。类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;宏例如EXIT_FAILURE、EXIT_S

3、UCCESS、RAND_MAX和MB_CUR_MAX等等;常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。多级反馈队列调度算法的描述:voidzhingxing(){for(inti=0;i<=链表的数目;){p=rq(i),front;while(p!=NULL){执行调度算法,将在时间片内不能完成的进程,插入到下一队列的尾部,并以此循环执行。p=p->next;}}}main()程序功能结构图:display()

4、显示进程的运行情况diaodu()执行程序中进程的调用creat()创建就绪队列流程图:creat()流程图:开始输入shumuNYshumu<20内存不足j=0jyouxianNYNp->youxian==3Yp->youxian==2插入队列2YNp->youxian==1插入队列1插入队列0结束数据结构定义主要变量的说明:xuhao进程的序号daoda进程到达时间pid[10]进程名字youxian进程优先级yunxingsuoxu运行所需时间yunxing运行已用时间zhuangtaiR表示执行,W表示动态就绪,F表

5、示完成函数的说明:voidcreat();//创建链表voiddiaodu();//执行调度的过程voiddisplay();//显示执行结果三、所用仪器、材料(设备名称、型号、规格等)。计算机一台四、实验方法、步骤#include#include#defineNULL0intshumu;voidcreat();//创建链表voiddiaodu();//执行调度voiddisplay();//显示执行结果//进程PCB结构体structjincheng{intxuhao;intdaoda;charpid[

6、10];//进程名字intyouxian;//进程优先级intyunxingsuoxu;//占用cpu时间intyunxing;charzhuangtai;//R表示执行,W表示动态就绪,F表示完成structjincheng*next;};//链表结构体typedefstructnode{jincheng*front;}pcbqueue;pcbqueuerq[3];//定义三个等待队列structjincheng*p,*q;//创建进程……voidcreat(){printf("创建进程数目;(不大于20):");scanf("%d",&s

7、humu);if(shumu>20){printf("内存已满!");printf("输入错误,请重新创建进程!");creat();}else{for(intj=0;jyouxian=(int)(rand()%(4-1)+1);if(rq[p->youxian-1].front==NULL)//建立队列2,1,0{printf("请输入新进程的序号(数字):");scanf("%d",&p->xuhao);printf("请

8、输入新进程的名字:");scanf("%s",&p->pid);p->daoda=(int)(rand()%(5-1)+1);p->yunxingsuoxu=(

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

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

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