实验一进程的创建与撤销.doc_第1页
实验一进程的创建与撤销.doc_第2页
实验一进程的创建与撤销.doc_第3页
实验一进程的创建与撤销.doc_第4页
实验一进程的创建与撤销.doc_第5页
已阅读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 cout endl 您终止的 PCBName PCB name PCBID PCB id PCB 优先级 PCB grade PCB 创建时间 PCB time next NULL for int i 0 i SIZE i QNode PCB InitPCB PCB EnQueue Q PCB void CreatePCB LinkQueue EnQueue RQ PCB void DeletePCB LinkQueue InitPCB PCB EnQueue NQ PCB void PCBShow LinkQueue RQ 读就绪队列 if RQ front RQ rear cout 就绪队列无数据 endl else cout endl endl cout 就绪队列 PCB 列表 endl cout PCBName PCBID PCB 优先级 next while q RQ rear next cout name id grade next void Create LinkQueue cout endl cout 进程创建与撤消 创建进程 endl cout endl cout 请您输入您的 PCB 数据 endl cout PCB name 操作系统实验报告 8 cout PCB id cout PCB grade cout PCB time CreatePCB NQ RQ PCB 创建原语 PCBShow RQ 读就绪队列 void Delete LinkQueue int b 0 cout endl cout endl cout 进程创建与撤消 终止进程 endl cout endl cout 请您输入终止依据 1 PCBID 2 PCB 优先级 b if b 1 cout PCB id else cout PCB grade DeletePCB NQ RQ PCB b 终止原语 PCBShow RQ 读就绪队列 void main LinkQueue NQ RQ 空队列 就绪队列 InitNullQueue NQ 初始化空队列 InitReadyQueue RQ 初始化就绪队列 QNode PCB InitPCB PCB int n cout endl cout endl cout 进程创建与撤消 endl cout endl cout endl cout endl cout 1 创建原语 endl cout endl cout 2 终止原语 endl cout endl cout 0 退出 endl cout endl 操作系统实验报告 9 cout endl cout n while n 0 switch n case 1 Create NQ RQ PCB break 创建原语界面 case 2 Delete NQ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论