




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统实验报告 1 实验一:进程创建与撤消实验一:进程创建与撤消 一、一、实验目的实验目的 1、 加深对进程概念的理解和进程创建与撤消算法; 2、 进一步认识并发执行的实质。 二、二、实验内容实验内容 本实验完成如下三个层次的任务: (1)系统级以普通用户身份认识 windows 的进程管理。通过 windows 的 “任务管理器”观察进程的状态,进行进程的创建、切换和撤销。 (2)语言级以普通程序员身份认识高级语言 Java 的进程创建与撤销工具。 (3)模拟级以 OS 设计师身份编程模拟实现进程创建与撤销功能,并在 屏幕上观察进程活动的结果。 三、三、实验步骤实验步骤 1、windows 的进程管理 (1) 按 ctrl+alt+delete 键,弹出 windows 任务管理器窗口 (2) 选择相应操作序号,可以创建一个新的进程 (3) 在创建完一个新的进程后,可以显示出所有已创建进程的详细信息 (4) 选择相应操作序号,可以通过输入 pcbId 或 pcbGrade 来撤销一个进程 2、进程创建与撤销工具 (1) 进程的创建 Process p=Runtime.getRuntime().exec(“notepad“); (2) 进程的撤销 p.destroy(); 3、进程创建与撤销的模拟实现 (1)总体设计: 数据结构定义: 结构体 PCB:进程编号,进程名称,进程优先级和进程创建时间,队列按 进程创建时间排序。 操作系统实验报告 2 PCB 空间 就绪队列指针 空队列指针 函数 进程创建:从 PCB 空间申请一个空 PCB,填入进程参数,插入就绪队列; 进程终止:将指定的就绪进程移出就绪队列,插入空队列; 就绪队列输出:输出就绪队列中的进程信息,以便观察创建或撤消活动的 结果; 主函数:调用创建函数、调用终止函数、输出就绪队列; 主界面设计:进程创建、进程撤销、退出程序 图 1 操作主界面 功能测试:从显示出的就绪队列状态,查看操作的正确与否。 (2)详细设计: 数据结构定义: 结构体 PCB: 表 1 PCB 结构体表 属性类型 pcbIdint pcbNameString pcbGradeint createTimeDate 操作系统实验报告 3 PCB 空间:是一个能存放十个 PCB 对象的数组 就绪队列指针:定义一整型变量初始值为零 空队列指针:定义一整型变量初始值为零,当有进程创建时, 加入。 函数设计 进程创建示例图 图 2 创建新进程 创建多个进程后,可以查看到所有已创建的进程的详细信息,如图。 图 3 查看所有进程 用户可以根据 pcbId 或者 pcbGrade 来撤销某一个进程,并在撤销成功后, 可以看到撤销后剩余的所有进程信息,如图。 操作系统实验报告 4 图 4 根据 pcbId 撤销某个进程 图 5 根据 pcbGrade 撤销某个进程 在操作主界面中选择操作 3 时,可以退出该程序,如图。 操作系统实验报告 5 图 6 退出程序 四、四、实验总结实验总结 该程序的主要任务为对 windows 的进程管理进行相应的模拟和认识。通过 对于进行的创建,切换和撤销,已完成我们对于 windows 进行的初步了解和认 识。 在编制程序的过程中,我确实遇见了不少的问题,发现其实自己并不强。 但是当一个个问题的出现,自己努力并最后解决的时候,心里却悠然产生了一 种非常舒服和惬意的感念。因为是自己努力得来的东西,所以无论怎么样都会 看着非常开心,非常激动。 通过此次试验,我更加了解了关于进程方面的认识。我今后会更加努力, 努力学好自己的专业水平。 五、附录五、附录 /实体类 #include #include #include #define SIZE 10 typedef char QElemType; typedef int IP; typedef int GRADE; typedef struct QNode /创建 PCB QElemType name; IP id; QElemType time; GRADE grade; struct QNode *next; PCB,*PCBLink; typedef struct PCBLink front; PCBLink rear; LinkQueue; void InitPCB(QNode PCB) /PCB 初始化 PCB.grade=0; PCB.id=0; PCB.name=*; PCB.next=NULL; PCB.time=*; 操作系统实验报告 6 void InitReadyQueue(LinkQueue Q.front-next=NULL; void EnQueue(LinkQueue p-id=PCB.id; p-name=PCB.name; p-grade=PCB.grade; p-time=PCB.time; p-next=PCB.next; Q.rear-next=p; Q.rear=p; void DeNullQueue(LinkQueue if(Q.rear=Q.front-next) Q.rear=Q.front; void DeReadyQueue(LinkQueue PCB.id = p-next-id; PCB.time = p-next-time; PCB.grade = p-next-grade; p-next = p-next-next; if(Q.front=p) Q.front-next = p-next; if(Q.rear=Q.front) Q.rear=Q.front; else p=p-next; break; case 2: if(p-next-grade=PCB.grade) PCB.name = p-next-name; PCB.id = p-next-id; PCB.time = p-next-time; PCB.grade = p-next-grade; 操作系统实验报告 7 p-next = p-next-next; if(Q.front=p) Q.front-next = p-next; if(Q.rear=Q.front) Q.rear=Q.front; else p=p-next; break; coutnext=NULL; for(int i=0;inext; while(q!=RQ.rear-next) coutnameidgradenext; void Create(LinkQueue 操作系统实验报告 8 coutPCB.id; coutPCB.grade; coutPCB.time; CreatePCB(NQ,RQ,PCB); /创建原语 PCBShow(RQ); /读就绪队列 void Delete(LinkQueue int b=0; coutb; if(b=1) coutPCB.id; else coutPCB.grade; DeletePCB(NQ,RQ,PCB,b); /终止原语 PCBShow(RQ); /读就绪队列 void main() LinkQueue NQ,RQ; /空队列、就绪队列 InitNullQueue(NQ); /初始化空队列 InitReadyQueue(RQ); /初始化就绪队列 QN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第一节 足球说课稿-2025-2026学年高中体育人教版2019必修第一册-人教版
- 内蒙古自治区公考真题2025
- 诸神办事处求取上上签(说课稿)2025-2026学年初三下学期教育主题班会
- 橡胶厂加班申请管理制度
- 2025年上海市物业服务合同范本(合同版本)
- 化肥厂保养供应商评估规定
- 2025文艺活动策划委托合同
- 快递公司员工劳动合同协议
- 化肥原料采购质量保证合同协议
- Unit 4 Humour Lesson 2 Why do we need humour 教案 -2024-2025学年高中英语北师大版(2019)选择性必修第二册
- 事业法人登记管理办法
- 承装修试许可证管理办法
- 2025楼宇平方效益评价规范
- 术后并发症护理
- 第9课《天上有颗“南仁东星”》课件 2025-2026学年统编版八年级语文上册
- 餐饮服务食品安全常规项目自查记录表
- 粪污清运服务管理制度
- 医疗机构动火管理制度
- 孵化基地制度管理制度
- 中枢整合康复技术课件
- DB31/T 936-2015车载终端与手机互联应用规范第1部分:通用技术规范
评论
0/150
提交评论