进程的描述与控制 2

三 进程控制

进程控制:创建新进程、终止已完成的进程、 置于阻塞状态、状态转换
如何实现?操作系统内核中的原语。	 

3.1操作系统内核   (放在内核中的 1.安全(用户不能随便修改)2 性能(运行频率高))
	在哪里?常驻内存,紧靠硬件的软件层次
	包括什么?与硬件紧密相关(中断处理), 设备驱动程序运行频率较高 (时钟管理、进程调度)
	作用:提高操作系统运行效率,保护这些软件防止遭到其他应用程序的破坏
	对应 处理机的执行状态分为:系统态 、用户态
		系统态:管态 、内核态,特权高, 能执行一切指令, 访问所有的寄存器和存储区
		用户态:目态, 应用程序只能在此运行
	操作系统内核两大功能:
		1 支撑功能 (支持其他模块) 
			1 中断处理
			2 时钟管理:时间片轮转调度,时间片用完时产生中断信号
			3 原语操作:(Primitive)由若干条指令完成一定功能的一个过程 不可分割,中间不可中断   
		2 资源管理功能
			1 进程管理:进程的调度、 分派、 创建、 撤销、 运行频率高;实现进程同步、 进程通信的原语被多种功能模块需要,
			  放在内核中,提高操作系统的性能
			2 存储器管理:运行频率高,地址转换机构、 内存分配与回 内存保护与对换
			3 设备管理: 驱动程序、 缓冲管理、 设备分配和设备独立性
			
3.2进程的创建
	1 进程的层次结构 父进程创建子进程,子进程继承父进程拥有的资源。进程不能拒绝子进程的继承权。
		子进程撤销时,归还父进程分配的资源。撤销父进程时,同时撤销所有子进程。 父子等家族关系记录在PCB家族关系表。
		Windows系统无进程层次结构,有控制关系(一个进程创建另外一个进程时,
											创建进程有意个相当于令牌的句柄,来控制被创建的进程)
	2 进程图 : 有向树
	3 引起创建进程的事件
		1 用户登录: 分时系统 用户登录成功建立进程插入就绪队列
		2 作业调度: 多道批处理系统,调度作业时,装入内存 、创建进程、 插入就绪队列
		3 提供服务: 满足用户提出的需求,比如创建打印文件进程
		4 应用请求: 以上123都是系统内核为用户创建一个新进程,
					而4 是用户进程自己创建新进程,新进程与创建进程并发运行一起完成任务
	4 进程的创建过程
		系统出现创建新进程的请求后,操作系统调用进程创建原语Creat 创建新进程
		1 申请空白PCB, 申请唯一的数字标识符
		2 为新进程分配资源: (物理和逻辑资源) 内存、 文件 I/O设备、 CPU时间。
							操作系统/父进程提供。(提前告知所需资源, 如内存大小)
		3 初始化PCB以下内容
			1 标识信息:填写系统分配的标识符和父进程标识符
			2 处理机状态信息:程序计数器指向程序的入口地址,栈指针指向栈顶
			3 处理机控制信息 :进程的状态设置为就绪状态或静止就绪,先置为最低优先级(如用户未说明)
			4 如就绪队列可接纳新进程,插入
			
3.3进程的终止
	1 引起进程终止的事件
		1 正常结束:运行完产生中断
		2 异常:1 越界(存储区);2 保护(权限);3非法指令;4 特权指令(用户进程/内核);
			    5 运行超时;6等待超时;7算术运算错误 ;8 I/O故障
		3 外界干预:1用户/操作系统 如死锁时终止进程;2 父进程请求(子进程已完成任务);3 父进程终止
	2 进程终止过程
		操作系统调用终止原语
		1 根据被终止进程的标识符,查找该进程的PCB 读进程状态
		2 如果是执行状态,立即终止,改变调度标志为True (终止后重新调度)
		3 终止子孙进程
		4 资源还给父进程、系统
		5 将被终止进程(PCB)移除所在队列/链表
	
3.4进程的阻塞与唤醒
	1 引起进程阻塞和唤醒的事件
		1 向系统请求系统资源 失败-->阻塞,其他进程释放资源-->唤醒
		2 等待某操作的完成
		3 新数据尚未到达
		4 等待新任务到达 (网络的发送进程,  发送数据包)
	2 进程阻塞过程
		进程调用阻塞原语block将自己阻塞 (自身的主动行为)
			1立即停止执行
			2 PCB的现行状态改为阻塞,插入阻塞队列(根据不同事件)
			3 保留处理机状态,调度程序重新调度,设置新进程的CPU的环境			
	3 进程唤醒过程
		如I/0操作已完成或等待的数据已经到达,则由这些相关进程调用唤醒原语wakeup 
			1 从阻塞队列移出
			2 PCB状态改为就绪,插入就绪队列
	block和wakeup是一对原语,必须成对使用,不能阻塞后永远不被唤醒
	
3.5 进程的挂起与激活
	1 进程的挂起过程
	操作系统用挂起原语suspend挂起进程
		1 检查被挂起时进程的状态
			活动就绪-->静止就绪
			活动阻塞-->静止阻塞
		2 PCB复制到内存中,以便用户/父进程查看状态
		3 如果程序正在执行,则调度程序重新调度(执行--挂起-->静止就绪--激活-->活动就绪--调度-->执行)
	2 进程的激活过程
	操作系统用激活原语active激活进程
		1 将进程从外存调入内存,检查状态
			静止就绪-->活动就绪
			静止阻塞-->活动阻塞
		2 如果是抢占调度,当进程由静止就绪被激活插入就绪队列时,与当前进程优先级比较,高则剥夺,低则不重新调度。

总结

本节主要讲操作系统内核和进程控制
操作系统那些功能放在内核中?两个评判标准
1.安全 系统直接对硬件的操作 用户不能直接操作
2 性能 频繁调用,如果不放在内核中而在用户态中,每次调用都要申请权限审批性能极低
而进程控制就是内核中的原语实现的(不可中断执行的一段程序)
进程控制全程围绕: 运行周期始末(创建 终止)资源(阻塞 唤醒)外界介入(挂起 激活) PCB(各状态记录)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值