实验一进程创建模拟报告.docx

上传人:b****6 文档编号:13093883 上传时间:2023-06-11 格式:DOCX 页数:11 大小:208.42KB
下载 相关 举报
实验一进程创建模拟报告.docx_第1页
第1页 / 共11页
实验一进程创建模拟报告.docx_第2页
第2页 / 共11页
实验一进程创建模拟报告.docx_第3页
第3页 / 共11页
实验一进程创建模拟报告.docx_第4页
第4页 / 共11页
实验一进程创建模拟报告.docx_第5页
第5页 / 共11页
实验一进程创建模拟报告.docx_第6页
第6页 / 共11页
实验一进程创建模拟报告.docx_第7页
第7页 / 共11页
实验一进程创建模拟报告.docx_第8页
第8页 / 共11页
实验一进程创建模拟报告.docx_第9页
第9页 / 共11页
实验一进程创建模拟报告.docx_第10页
第10页 / 共11页
实验一进程创建模拟报告.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验一进程创建模拟报告.docx

《实验一进程创建模拟报告.docx》由会员分享,可在线阅读,更多相关《实验一进程创建模拟报告.docx(11页珍藏版)》请在冰点文库上搜索。

实验一进程创建模拟报告.docx

实验一进程创建模拟报告

实验一进程创建模拟

实验学时:

2

实验类型:

验证

实验要求:

必修

一、实验目的

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)将新进程插入就绪队列

P1

P2

P3

P4

P5

P6

P7

P8

P9

P10

P11

P12

3)进程树

 

图1-1进程树

进程树用于描述进程家族关系,如图1-1中可以看出,进程P1创建了进程P2、P3、P4、P5,而P2又创建了P6、P7、P8……。

在进程创建过程中,需要对每一个新增加的进程加入到进程树中,有了清晰的父子关系,可以使资源继承或进程删除等操作变得很方便。

4)进程总链

它是一个PCB链表,每一个新创建的进程必须把其PCB放入总链中,该总链可以对破坏的进程树进行修复,也方便PCB查找。

四、可能用到的数据结构和操作的部分代码

1.数据结构

createpc(2,1,2)。

创建一个进程,其进程号为2,父进程号为1,优先级为2。

2)showdetail显示进程信息命令。

3)exit退出命令行。

六、实习报告内容

1.画出你所创建的进程树的结构图(也可以用上述图1-1)。

 

P1

P2

P3

P4

P5

P6

P7

P8

P9

P10

P11

P12

P13

P14

P15

 

2.显示运行结果:

至少有五次运行过程截图,这五次截图分别展现不同类型的父子关系,并在截图的下方配文字以说明自己创建的进程数量以及这张图所展示的进程家族关系。

P10

createpc(1,0,1)

Showdetail

以P1为第一层,运行结果;

createpc(1,0,1)

createpc(2,1,2)

createpc(3,1,2)

Showdetail

以P1为第一层,P2,P3为第二层,且为P1的子进程,运行结果;

 

createpc(1,0,1)

createpc(2,1,2)

createpc(3,1,2)

createpc(4,2,3)

createpc(5,2,3)

createpc(6,3,3)

createpc(7,3,3)

Showdetail

以P1为第一层,P2,P3为第二层,且为P1的子进程;P4,P5,P6,P7为第三层;P4,P5为P2的子进程;P6,P7为P3的子进程;运行结果;

createpc(1,0,1)

createpc(2,1,2)

createpc(3,1,2)

createpc(4,2,3)

createpc(5,2,3)

createpc(6,3,3)

createpc(7,3,3)

createpc(8,4,4)

createpc(9,4,4)

createpc(10,6,4)

createpc(11,6,4)

createpc(12,7,4)

createpc(13,7,4)

Showdetail

以P1为第一层,P2,P3为第二层,且为P1的子进程;P4,P5,P6,P7为第三层;P4,P5为P2的子进程;P6,P7为P3的子进程;P8,P9,P10,P11,P12,P13为第四层,且P8,P9为P4的子进程;P10,P11为P6的子进程;P12,P13为P7的子进程;运行结果;

createpc(1,0,1)

createpc(2,1,2)

createpc(3,1,2)

createpc(4,2,3)

createpc(5,2,3)

createpc(6,3,3)

createpc(7,3,3)

createpc(8,4,4)

createpc(9,4,4)

createpc(10,6,4)

createpc(11,6,4)

createpc(12,7,4)

createpc(13,7,4)

createpc(14,8,5)

createpc(15,8,5)

Showdetail

以P1为第一层,P2,P3为第二层,且为P1的子进程;P4,P5,P6,P7为第三层;P4,P5为P2的子进程;P6,P7为P3的子进程;P8,P9,P10,P11,P12,P13为第四层,且P8,P9为P4的子进程;P10,P11为P6的子进程;P12,P13为P7的子进程;运行结果;P14,P15为第五层,且为P8的子进程,运行结果;

 

3.说明您的关键函数的流程:

说明createpc(para)函数、showdetail()函数和main()函数的功能,并以流程图或文字的形式展现。

createpc(para)函数:

创建进程

 

 showdetail()函数:

显示进程的细节

 将建立的进程遍历并输出。

 

 main()函数:

主函数

 

4.思考题

(1)进程创建的核心内容是什么

答:

1>申请空白PCB

2>为新进程分配资源

3>初始化进程控制块

4>将新进程插入到就绪队列

(2)你的设计和实际的操作系统进程创建相比,缺少了哪些步骤

答:

只是模拟的创建,并没有分配资源

5.最后将代码以附件形式上交。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2