模拟进程创建、终止、阻塞、唤醒原语_操作系统原理

模拟进程创建、终止、阻塞、唤醒原语_操作系统原理

ID:47023010

大小:731.62 KB

页数:13页

时间:2019-06-27

模拟进程创建、终止、阻塞、唤醒原语_操作系统原理_第1页
模拟进程创建、终止、阻塞、唤醒原语_操作系统原理_第2页
模拟进程创建、终止、阻塞、唤醒原语_操作系统原理_第3页
模拟进程创建、终止、阻塞、唤醒原语_操作系统原理_第4页
模拟进程创建、终止、阻塞、唤醒原语_操作系统原理_第5页
资源描述:

《模拟进程创建、终止、阻塞、唤醒原语_操作系统原理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统原理题目:模拟进程创建、终止、阻塞、唤醒原语院(部):管理工程学院专业:信息管理与信息系统班级:信管131姓名:栾庆一学号:20130216027实验题目一:模拟进程创建、终止、阻塞、唤醒原语一、题目类型:必做题目。二、实验目的:通过设计并调试创建、终止、阻塞、唤醒原语功能,有助于对操作系统中进程控制功能的理解,掌握操作系统模块的设计方法和工作原理。三、实验环境:1、硬件:pc机及其兼容机。2、软件:WindowsOS,TurboC或C++、VC++、VS.net、Java等。四、实验内容:1、设计创建、终止、阻塞、唤醒原语功能函数。2、设计主函数,采用菜单结构(参见后面给出的流程

2、图)。3、设计“显示队列”函数,目的能将就绪、阻塞队列中的进程信息显示在屏幕上,以供随时查看各队列中进程的变化情况。五、算法流程图开始系统主菜单1…创建2…阻塞3…唤醒4…终止5…显示0…退出请输入您需要的功能(0-5):输入选择=?543210退出创建阻塞唤醒终止显示结束六、程序清单#include#includestructpcb{charname[10];intstatus;intorder;inttime;intwtime;intytime;}pcb[11];//该结构体用于存储已经输入的进程structghost{charname[10];i

3、ntstatus;intorder;inttime;}ghost[11];//该结构体用于优先级调度时,进程的优先级排序chara_name[10];inti=0,y,a=0,x,z,jilu;voidinsert();voidblock();voidrouse();voidstop();voidoutPut();voidcontrol();//实验二添加函数voidorder_control();//实验二添加函数voidtime_control();//实验二添加函数voidinsert(){jilu=0;//jilu是一个用于判断的变量,在重复时进行判断跳过if(i>=10)prin

4、tf("进程已经存在10个,无法继续添加进程");else{printf("请输入插入pcb的数据:");printf("1、进程名:");scanf("%s",&pcb[i].name);printf("2、该进程的优先级(1-10):");scanf("%d",&pcb[i].order);printf("3、运行时间");scanf("%d",&pcb[i].time);for(y=0;y

5、u>0)jilu=0;else{printf("输入已经完成您输入的数据为:进程名:%s优先级:%d运行时间:%d",pcb[i].name,pcb[i].order,pcb[i].time);printf("------------------------------------------------------------------");strcpy(ghost[i].name,pcb[i].name);ghost[i].order=pcb[i].order;ghost[i].time=pcb[i].time;pcb[i].status=1;ghost[i]

6、.status=1;pcb[i].wtime=pcb[i].time;pcb[i].ytime=0;i++;}}}voidblock(){intm;printf("请输入您要改变状态的进程的进程名:");scanf("%s",&a_name);for(y=0;y<=i;y++){if(strcmp(pcb[y].name,a_name)==0){a=1;if(pcb[y].status==0){printf("您要修改的进程已经是阻塞状态,无法更改");}if(pcb[y].status==2){pcb[y].status=0;for(m=0;m<=i;m++){if(strcmp

7、(ghost[m].name,a_name)==0){ghost[m].status=0;}}printf("操作已完成,进程成功改为阻塞状态");}}}if(a==0){printf("对不起!您查找的进程名不存在");}a=0;}voidrouse(){intm;printf("请输入您要改变状态的进程的进程名:");scanf("%s",&a_name);for(y=0;y<=i;y++){if(str

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

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

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