操作系统课程设计报告2.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《操作系统课程设计报告2.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计报告2.docx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统课程设计实验_进程管理一、实验目的1. 开发一个函数,建立进程控制块和资源控制块结构,并实现 相关数据结构的初始化。2. 开发一系列操作,由进程调用这些操作,达到控制进程申请 或释放各种资源的目的。通过实验理解进程的概念,进程的组成(PCB结构),进程的并 发执行和操作系统进行进程管理的相关原语(主要是进程的创 建、执行、撤消)。二、需求分析用C语言编程模拟进程管理,至少要有:创建新的进程;查 看运行进程;换出某个进程;杀死运行进程以及进程之间通信 等功能。三、实验环境Windows 操作系统、VC+6. 0C 语言(C-free5.0)4、详细设计程序流程图i:开始数据结构:算法设计
2、:statc=O 杀死state=l 就绪state=2 等待state=3运彳亍(1)进程控制块信息struct jincheng_type int pid;int youxian:int daxiao;int state;int message:;(2) 进程信息初始化struct jincheng_type neicun20:int shumu=0, pid_l:int max=0;int number=0:(3) 创建进程的算法void create ( )/*创建一个进程的示例*/if(shumu=20)printf Cn内存已满,请先结束或换出进程n);elseprintf Cn请
3、输入新进程的pidn);scanf(%d,&neicunshumu. pid);printf (n请输入新进程的优先级);scanf(w%d*,&neicunshumu. youxian); printf(*n请输入新进程的大小n);scanf(w%d*,&neicunshumu. daxiao);printfCXn创建进程时令其状态为就绪);scanf(”d, &neicunshumu+l. daxiao);printf Cn创建进程信息n);scanf(”d, &neicunshumu+1. message);neicunshumu. state=l;shumu+;(4) 査看运行进程算法
4、void run()int max=0;int vpid;for(int i=0;ishumu;i+)if (neicuni. flag=l)&(neicuni. youxian=neicunmax. youxian) max=i;neicunmax. flag=3;printf Cn 当前运行进程程序名:n%d, neicunmax. pid);printf (wn 该进程的优先级:n%d, neicunmax, youxian);printf (wn 该进程的运行时间:n%d*, neicunmax, daxiao);printf (wn 该进程的状态:n%d, neicunmax, fl
5、ag);printf (wn 该进程的信息是:n%d, neicunmax, message); vpid=getch();(5) 换出进程算法void huanchuOint i, k, d:for(int i=0;ishumu;i+)if (neicunij. flag=l)&(neicuni. youxian=neicunmax. youxian) max=i;neicunmax. flag=3:if (max=shumu-l)printfC没有处于等待序列的进程);elsefor (k=max+l; kshumu; k+)neicunk. flag=2;printfCXn处于等待序列的
6、进程有:);for (k=max+l: kshumu; k+)printf(n%d, neicunk. pid);printfCn请选择要唤醒的进程:);scanf&k);i=max:while(neicuni. pid!=k)i+;neicun订.flag=l;printf Cn%d进程已被唤醒,k);d=getche();(6) 杀死进程算法void killO/*杀死某个进程*/int i=0, k, b;printf(*n请输入要杀死的进程:”);scanf&k);while(neicuni. pid!=k)i+;neicuni. daxiao=0;neicuni. pid=O:nei
7、cuni.youxian=0;neicuni.flag=O;if (i=(shumu-l)shumu;elsefor(int j=i+l;j0&tpidlsuper)(ready-super) /*优先级最大者,插入队首*/p-link=ready;ready=p;else /*进程比较优先级,插入适当的位置中*/first=ready;second=f i rst-link;while(second!=NULL)if (p-super) (second-super) /*若插入进程比当前进程优先数大,*/ /*插入到当前进程前而*/p-link=second:first-link=p;sec
8、ond=NULL;insert=l;else /*插入进程优先数最低,则插入到队尾*/first=first-link;second=second-link;if(insert=0) first-link=p;4. 建立进程控制块,进程撤销函数,进程就绪函数disp(PCB * pr) /*建立进程显示函数,用于显示当前进程*/check() /*建立进程查看函数*/destroy0 /*建立进程撤消函数(进程运行结束,撤消进程)*/running() /*建立进程就绪函数(进程运行时间到,置就绪状态*/5、程序测试过程(截图)输入总共要输入的进程数:输入进程1的信息:输入进程2的信息第一个时
9、间片:将优先级最高的3投入运行,其他处于等待状态:第二个时间片:将3的优先级减一,将优先级第二的2进程投入运行其他处于等待状态:第三个时间片:将进程2的优先级减一,将优先级第一的进程3投入运行,其他处于等待状态:a J:ljinchengdiaodu.exe当前运行进程:3qnane state supei*ndtine3R231当前就绪进程:qnane state superndtine1w11 0qnane state superndtine2w12 1按enter键继续runtineruntineruntine第四个时间片:将进程3的优先级减一,将队列首元进程1投入运行,其他处于等待状态
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 报告
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内