关于程序执行顺序
引入前趋图
2)程序顺序执行时的特征
(1) 顺序性
处理机的操作严格按程序规定顺序执行
(2) 封闭性
程序一旦开始执行,其计算结果不受外界因素影响。
(3) 可再现性
3)程序的并发执行分析
要符合前趋关系
并发不是随意的
符合前趋图的关系才是合理并发。
4)并发程序执行时的特征
间断性(运行表现)
失去封闭性
结果不可再现性
程序:程序段 + 数据段
-
- :程序段 + 数据段 + 控制块PCB
1)进程的定义
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
2)进程的特征
结构性特征,进程的根本——PCB
动态性
进程实质上是进程实体的一次有生命期的执行过程。程序只是静态的一组有序指令。
进程最基本特征
并发性
多个进程实体同存于内存中,在一段时间内同时运行。
有PCB的程序才能并发。
独立性
异步性
进程的三种基本状态
(1)就绪状态(Ready)
进程获得除CPU之外的所有必需资源,一旦得到CPU控制权,可立即运行。
(2)运行状态(Running)
进程已获得所有运行必需的资源,正在处理机上执行。
(3)阻塞状态(Blocked)
正在执行的进程由于发生某事件(请求I/O、申请缓冲、时间片到)而暂时无法执行时,便放弃CPU后暂停
进程的三基态的转换
进程控制块PCB
进程实体:代码段+数据段+PCB
u 进程控制块定义
Process Control Block
分析OS调度某进程的过程
¡ 查该进程的PCB,获取其状态、优先级
¡ 根据PCB保存的处理机状态信息,恢复现场
¡ 根据PCB中程序和数据的内存始址,找到其程序和数据
执行中的同步信号等也要查阅PCB,暂停时进程执行的处理机环境保存回PCB
- Pcb的重要性
(1)进程标识符信息
(2)理机状态信息
(3)进程调度信息
(4)进程控制信息
进程创建过程
(1) 申请空白PCB
(2) 为新进程分配资源
主要是内存资源的处理
(3) 初始化进程控制块
标识符(包括父进程的)、程序计数器指向程序入口地址,就绪态、优先级等信息的填写。
(4) 将新进程插入就绪队列
原语是由若干指令构成的原子操作过程,作为整体实现功能,不可被打断。
进程的终止
1)引起进程终止的事件
正常结束
异常结束
内存越界错误
保护错(权限错,如修改只读文件等)
非法指令(不存在的指令,程序异常转向而把数据当指令)
特权指令错(用户态程序试图执行只有OS可执行的指令)
运行超时、运算错、i/o故障等
外界干预
1操作员或操作系统干预(死锁时,可人为结束)
2父进程请求终止子进程
3父进程终止,子孙进程也跟着终止
2.3 进程同步
1.进程同步的基本概念)进程同步的主要任务:
使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。
2)临界资源
¡
一次仅允许一个进程使用的资源。
例1:两个进程A、B,它们共享一个变量x,他们共同使x值增长。
4)同步机制应遵循的规则
实现互斥的方法应符合如下每条原则
¡
空闲让进:资源使用最基本原则
¡
忙则等待:保证互斥
¡
有限等待:合适时被唤醒防止死等
¡
让权等待:能主动释放CPU防止忙等
同步控制的关键
主要涉及”判断”和”修改标志”操作
¡
不应被打断(原语,OS核心态运行)
¡
制定一种写法,使标志的使用适用于各种具体应用情况
硬件
关中断
¡
进入锁测试前关闭中断,直到完成锁测试并上锁后才能打开中断。进程在临界区执行期间,系统不响应中断,从而不引发调度。
¡
缺点:
l 滥用风险
l 关中断时间过长会影响效率,限制CPU交叉执行能力
l 不适用于多CPU系统
信号量机制
1)整型信号量
信号量定义为一个整型量;
根据初始情况赋相应的值;
仅能通过两个原子操作来访问。
P操作 wait(S):
While S<=0 do no-op;
S:=S-1;
V操作 signal(S):
S:=S+1;
2)记录型信号量
¡ 改进:条件不符时应能够主动放弃CPU
¡ 新问题:放弃CPU的进程进入阻塞队列:因等待某信号量而放弃CPU的等待进程会有“若干”个,需将它们组织管理起来,并在合适的时候唤醒。