




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
*大学计算机科学系实 验 报 告 书实验题目: pcb的组织与维护课程名称: 操作系统 主讲教师: 辅导教师: 课程编号: 班 级: 实验时间: 一、 实验目的:1、通过编写和调试pcb组织与维护的模拟程序以加深对pcb组织与维护方案的理解。2、通过编写和调试pcb组织与维护的模拟程序以加强对进程的基本情况以及进程的运行变化过程的进一步理解。 二、 实验环境:VC 6.0+三、 实验内容1、通过线性方式对以pcb为唯一标志的进程进行创建、查询、添加、删除等操作。2、通过索引方式对以pcb为唯一标志的进程进行创建、查询、添加、删除等操作。3、通过链接方式对以pcb为唯一标志的进程进行创建、查询、添加、删除等操作。四、 实验设计原理1、 系统利用PCB来描述进程的基本情况以及进程的运行变化过程。PCB是进程存在的唯一标志,当系统创建一个进程时,为进程设置一个PCB,再利用PCB对进程进行管理和控制。撤销进程时,系统收回它的PCB,进程也随之消亡。进程是由程序、数据和进程控制块PCB三部分组成.PCB是进程的“灵魂”,由于进程控制块中保存了进程的地址信息,通过PCB可以得到进程程序的存储位置,也可以找到整个进程。2、 为了便于管理,系统把所有的PCB用适当方式组织起来。一般来说,大致有以下三种组织方式:1、线性方式;2、索引方式;3、连接方式。通过这三种方式的组织进而对进程进行高效的管理。五、 算法设计与流程程序设计流程图如下:1、 线性方式流程图:否是是是否否是开始读入选择选择输入输入是否是1 否线性方式是否是2索引方式输出:输入有误!请重新输入请输入进程的个数读入进程的个数n保存这n个进程的信息,并创建n个进程选择相应的操作查询添加删除返回首菜单在已有的进程信息中查找对应进程号的进程信息是否存在输出进程信息无该进程把新的进程信息保存在已有的进程信息中查找对应进程号的进程信息是否存在删除该进程无该进程线性方式代码:#include #include using namespace std;#define FALSE 0#define TRUE 1#define TASK_READY 3#define TASK_WAITE 4#define TASK_RUNNING 5struct task_structstring pname; /进程名int pid;/进程号int state;/进程当前状态/*3 就绪状态 4 等待状态 5运行状态*/task_struct *next;/指向下一个的;/void showInput();void menu(task_struct *pcb);/int inputNum()/提示输入进程数int n;coutn;coutnext=NULL;task_struct *p=new task_struct;p=pcb;for(int i=0;ipid=i+1;cout请输入第i+1q-pname;loop:couttmp;if(tmp!=3&tmp!=4&tmp!=5)cout输入错误!state=tmp;if(p-next=NULL)q-next=NULL;p-next=q;/p=q;coutAdd a nodenext=NULL;p=p-next;p-next=q;/p=q;coutfor Addendl;coutendl;void display(task_struct *pcb)task_struct *p;cout*endl;cout进程号t进程名t当前状态next;p!=NULL;p=p-next)coutpidtpnamestate)case 3:coutTASK_READYendl;break;case 4:coutTASK_WAITEendl;break;case 5:coutTASK_RUNNINGendl;break;cout*endl;menu(pcb);/void output(task_struct *pcb, task_struct *p)/输入单个进程记录信息cout*endl;cout进程号t进程名t当前状态endl;coutpidtpnamestate)case 3:coutTASK_READYendl;break;case 4:coutTASK_WAITEendl;break;case 5:coutTASK_RUNNINGendl;break; coutendlendlendlendlendl;menu(pcb);void Query(task_struct *pcb)/查询int pid;coutpid;task_struct *p;for(p=pcb-next;p!=NULL;p=p-next)if(p-pid=pid)output(pcb, p);return;cout无该进程!next!=NULL;q=q-next);/if(q-next=NULL)if(pcb-next=NULL)p-pid=1;elsep-pid=q-pid+1;coutp-pname;loop1:couttmp;if(tmp!=3&tmp!=4&tmp!=5)cout输入错误!state=tmp;p-next=NULL;/if(q-next=NULL)if(pcb-next=NULL)pcb-next=p;elseq-next=p;coutendlendl;display(pcb);void Delete(task_struct *pcb)/删除task_struct *p,*q;couttmp;for(p=pcb;p!=NULL;p=p-next)q=p-next;if(q-pid=tmp)p-next=q-next;delete q;display(pcb);cout无该进程!next!=NULL)q=p-next;p-next=q-next;delete q;delete pcb;void menu(task_struct *pcb)/提示选择相应的操作int m;cout1. 查询endl;cout2. 添加endl;cout3. 删除endl;cout4. 返回首菜单endl;coutm;coutendlendl;switch(m)case 1:Query(pcb);break;case 2:Add(pcb);break;case 3:Delete(pcb);break;case 4:Destroy(pcb);showInput();break;default:cout输入有误!重新输入endl;menu(pcb); void List()/线性方式int n=inputNum();task_struct *pcb=new task_struct;CreateList(pcb,n);coutendlendlendlendlendlendlendlendlendlendl;display(pcb);void Hash()/索引方式/int n=inputNum();void showInput() /提示选择输入int tmp;cout1. 线性方式endl;/cout2. 索引方式endl;couttmp;coutendlendl;switch(tmp)case 1:List();break;/case 2:Hash();break;default:cout输入有误!请重新输入。endlendl;showInput();void main()showInput();六、实验调试与结果分析(问题的发现、分析、解决方案与创新)实验结果展示:*进程号 进程名 当前状态1 a TASK_WAITE2 s TASK_READY3 d TASK_RUNNING*1. 查询2. 添加3. 删除4. 返回首菜单选择:请输入要查询的进程号:2*进程号 进程名 当前状态2 s TASK_READY1. 查询2. 添加3. 删除4. 返回首菜单选择:选择:2请输入要添加的进程名:f请输入进程状态(3为就绪状态,4为等待,5为运行):5*进程号 进程名 当前状态1 a TASK_WAITE2 s TASK_READY3 d TASK_RU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 提升行政管理公文写作能力的试题及答案
- 物流行业员工薪资及奖金收入证明(8篇)
- 成就未来的2025年行政管理试题及答案
- 行政反馈机制的研究试题及答案
- 行政管理效率提升案例试题及答案
- 2025年度空调维护保养服务合同
- 现代管理学实务操作试题及答案集
- 行政管理中的跨文化管理技巧试题及答案
- 行政管理中的开放式创新与政策导向及试题及答案
- 2025污水处理环保工程合同
- 四川省攀枝花市2025届高三第三次统一考试地理试题及答案
- 安徽省皖南八校2025届高三下学期第三次联考物理试卷 含解析
- 2025-2030中国老年教育行业发展前景及发展策略与投资风险研究报告
- 2024年延安通和电业有限责任公司招聘考试真题
- 2024年新人教版英语三年级上册 U6 A learn 教学课件
- 美发店入职合同保密协议
- 2025-2030年中国肿瘤医院行业市场发展现状分析及未来趋势预测研究报告
- 茶廉文化课件
- 2024年中南大学专职辅导员招聘笔试真题
- 2025甘肃省农垦集团有限责任公司招聘生产技术人员145人笔试参考题库附带答案详解
- 2025-2030中国财务公司行业深度分析及发展前景与发展战略研究报告
评论
0/150
提交评论