进程的描述与控制(一)

第二章 进程管理

2.1 进程的描述与控制

一、进程的顺序执行和并发执行

  1. 程序的顺序执行
    特征:顺序性、封闭性、可再现性
  2. 程序的并发执行
    特征:间断性、非封闭性、不可再现性
    eg.在银行存取钱的例子
  3. 程序并发执行条件(Berbstein条件)
    若两个程序p1和p2满足下列条件,则他们就能并发执行,且具有可再现性:
    R(P1) n W(P2) U R(P2) n W(P1) U W(P1) n W(P2) = { }

简单来说,就是两个进程之间的读写变量之间,不应该有交集

二、进程的概念与进程的并发执行

进程的定义:
进程是程序在一个数据集合上的运行过程,是系统进行资源分配和
调度的一个独立单位

进程是可并发执行的程序在一个数据集合上的运行过程;
进程是可被跟踪的(看他执行哪些指令来跟踪他)

进程的特点:
动态性、并发性、独立性、异步性

进程的结构: 程序、数据、PCB

三、 进程的两状态和五状态

1.两状态: Running (执行)、Not-running (非执行)
在这里插入图片描述

并非所有进程只要Not-running就处于ready(就绪),有的需要blocked(阻塞)以等待I/O完成

三种基本状态:就绪、执行、阻塞
ready:只等CPU(万事俱备,只欠东风
blocked:等其他的设备或者事件
running

在这里插入图片描述

2.五状态:Running(执行)、Ready(就绪)、Blocked(阻塞)、New(新状态)、Exit(退出)

Running:占用处理机(单处理机环境中,某一时刻仅一个进程占用处理机)
Ready:准备执行
Blocked:等待某事件发生才能执行,如等待I/O完成等
New:进程已经创建,但未被OS接纳为可执行进程
Exit:因停止或取消,被OS从执行状态释放
状态转换图
timeout:超时

五状态转换
Null->New:新创建进程首先处于新状态

New->Ready:OS接纳新状态进程为就绪进程

Ready->Running:OS只能从就绪进程中选一个进程执行

Running→Exit:执行状态的进程执行完毕,或被取消,则转换为退出状态

Running->Ready:分时系统中,时间片用完,或优先级高的进程到来,将终止优先级低的进程的执行

Running→Blocked:执行进程需要等待某事件发生。通常因进程需要的系统调用不能立即完成,而阻塞

Blocked→Ready:当阻塞进程等待的事件发生,就转换为就绪状态

Ready->Exit:某些系统允许父进程在任何情况下终止其子进程。若一个父进程终止,其子孙进程都必须终止

Blocked→exit:同前

执行轨迹:
执行轨迹
按队列的结构图:

单阻塞队列:
在这里插入图片描述
多阻塞队列:
多阻塞队列

四、 交换技术

七状态基于交换技术
Swapping(兑换技术,交换技术):
将内存中暂时不能运行的进程,或暂时不用的数据和程序,Swapping-out到外存,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需要的数据和程序,Swapping-in内存。

五、进程的挂起状态

1.问题:因为处理器的速度比I/O的速度快很多,所以就可能存在一种特殊情况,就是系统里面的所有进程都在等待I/O,这个时候处理器就是空闲的,系统要求的效率不能满足。

2.解决办法:把这些进程交换到磁盘上就可以唤出内存空间。如果阻塞进程换到磁盘上,它就会变成挂起状态

挂起状态是基于交换技术、

3.出现挂起进程的原因:

a. 执行过程中遇到了I/O,或者等待事件,操作系统会挂起进程来释放内存空间
b. 周期性执行的工具软件
c.交互式的用户请求
d.基于时钟中断
e.父进程请求挂起进程

4.被挂起进程的特征:
a.不能立即执行(因为所有的东西都在外存)
b.可能是等待某事件发生。若是,则阻塞条件独立于挂起条件,即使阻塞事件发生,该进程也不能执行
c.使之挂起的进程为:自身、其父进程、OS
d.只有挂起它的进程才能使之由挂起状态转换为其他状态

注意
不一定只能挂起阻塞进程
Q:怎么激活一个挂起进程?
A:把拿出去的数据进行一个I/O过程

区分阻塞与挂起:
?进程是否等待事件,阻塞与否
?进程是否被换出内存,挂起与否

e.4种状态组合:
Ready:进程在内存,准备执行
Blocked:进程在内存,等待事件
Ready,Suspend:进程在外存,只要调入内存即可执行
Blocked,Suspend:进程在外存,等待事件

注意
处理机可调度执行的进程有两种:
①新创建的进程
②或换入一个以前挂起的进程:
通常为避免增加系统负载,系统会换入一个以前挂起的进程执行

七进程转换图:
在这里插入图片描述

六、具有挂起状态的进程状态转换:

Blocked->blocked,Suspend:os通常阻塞进程换出,以腾出内存空间

Blocked,Suspend->Ready,Suspend:当blocked,Suspend进程等待的事件发生时可以将其转换为Ready,Suspend

Ready,Suspend→Ready:os需要调入一个进程执行时

Ready->Ready,Suspend:一般,os挂起阻塞进程。但有时也会挂起就绪进程,释放足够的内存空间

New->Ready,Suspend(New->Ready):新进程创建后,可以插入到Ready队列或Ready,Suspend队列。若无足够的内存分配给新进程,则需要New→Ready,Suspend

Blocked,Suspend->Blocked:当Blocked,Suspend队列中有一个进程的阻塞事件可能会很快发生,则可将一个Blocked,Suspend进程换入内存,变为Blocked

Running->Ready,Suspend:当执行进程的时间片用完时,会转换为Ready或一个高优先级的Blocked,Suspend进程正好变为非阻塞状态,OS可以将执行进程转换为Ready,Suspend状态

Running->Ready,Suspend:当执行进程的时间片用完时,会转换为Ready或一个高优先级的Blocked,Suspend进程正好变为非阻塞状态,OS可以将执行进程转换为Ready,Suspend状态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值