- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统实验报告 ——进程创建模拟实验 班级:11级软件工程3班 学号 姓名:孙园萍 1) 理解进程创建相关理论; 2) 掌握进程创建方法; 3) 掌握进程相关数据结构。 一、实验目的 本实验针对操作系统中进程创建相关理论进行实验。要求实验者输入实验指导书提供的代码并进行测试。代码简化了进程创建的多个步骤和内容。进程的树形结构采用广义二叉树的方式进行存储。 二、实验内容 三、实验原理 1.进程控制块 为了描述和控制进程的运行,系统为每个进程定义了一个进程控制块(PCB),它是进程实体的一部分,是操作系统管理进程最重要的数据结构。其主要包含四类信息: (1) 进程标识符 它唯一地标识一个进程。通常包括进程号 pid,父进程号 ppid 和用户号 uid。 (2) 处理机状态 处理器的状态通常由处理机的各种寄存器中的内容组成PCB 存放中断(阻塞,挂起)时的各寄存器值,当该进程重新执行时,可以从断点处恢复。主要包括: 三、实验原理 a) 通用寄存器; b) 指令计数器; c) 程序状态字 PSW; d) 用户栈指针 (3) 进程调度信息 a) 进程状态; b) 进程优先级(用于描述优先使用 cpu 级别的一个整数,高优先级的进程先得到cpu,通常情况下,优先值越小优先级越高); c) 其它信息(等待时间、总执行时间等); d) 事件(等待原因)。 三、实验原理 (4) 进程控制信息 a) 程序和数据的地址(程序在内存和外存中的首址); b) 进程同步和通信机制; c) 资源列表(进程除 CPU 以外的所有资源); d) 链接指针(进程队列中指向下一个进程的 PCB 首址) 2) 进程创建流程 (1) 申请空白 PCB 为新进程申请获得唯一的数字标识符,并从 PCB 集合中索取一个空白 PCB。如果无空白PCB,可以创建一个新的 PCB。在本实验中,每次动态创建 PCB。 三、实验原理 (2) 为新进程分配资源 为新进程分配内存空间和栈空间。 (3) 初始化进程控制块 a) 初始化标识信息; b) 初始化处理机状态信息; c) 初始化处理机控制信息。 (4) 将新进程插入就绪队列 三、实验原理 3) 进程树 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 三、实验原理 进程树用于描述进程家族关系,如图 1-1 中可以看出,进程 P1 创建了进程 P2、P3、P4、P5,而 P2 又创建了 P6、P7、P8 …… 。在进程创建过程中,需要对每一个新增加的进程加入到进程树中,有了清晰的父子关系,可以使资源继承或进程删除等操作变得很方便。 4) 进程总链 它是一个 PCB 链表,每一个新创建的进程必须把其 PCB 放入总链中,该总链可以对破坏的进程树进行修复,也方便 PCB 查找。 四、算法用到的主要数据结构 typedef struct process { char name[10]; //进程名 int priority; //优先级 Time ReachTime; //到达时间 Time NeedTime; //需要时间 Time UsedTime; //已用时间 char state; //状态 }PCB; //进程控制块 int n; //标示进程的总数 PCB pcb[Max]; int pTime; //时间片大小 void AddProcess(); void sort(); void attemper(); char face(); 五、程序代码 1.basic.h 文件 2、源程序 六、实验步骤 输入实验提供的代码后,可以输入 createpc 命令创建进程,输入 showdet
文档评论(0)