1 / 13
文档名称:

实验一 进程创建模拟报告材料.doc

格式:doc   大小:267KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验一 进程创建模拟报告材料.doc

上传人:beny00001 2021/12/8 文件大小:267 KB

下载得到文件列表

实验一 进程创建模拟报告材料.doc

相关文档

文档介绍

文档介绍:word
word
2 / 13
word
实验一 进程创建模拟
实验学时: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。
word
word
2 / 13
word
(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 查找。
四、可能用到的数据结构和操作的局部代码

//process control block:有些pcb的容是考虑到以后调度功能而设置的
struct pcb
{
int pid;//process id
int ppid;//parent process id
int prio;//priority
int state;//state
int lasttime;//last execute time
int tottime; //totle execute time
};
//process node
struct pnode
word
word
3 / 13
word
{
pcb *node;
pnode *sub;
pnode *brother;
pnode *next;
};
//信号量
struct semphore{
char name[5]; //名称
int count;//计数值
int curpid;//当前进程 id
pnode *wlist; //等待链表
};
//初始化错误提示信息;
//create process
int createpc