前驱图和程序执行
前驱图
- 是指一个有向无循环图,用于描述进程之间执行的先后顺序
- Pi ——> Pj
- 没有前驱的结点称为 初始结点
- 没有后继的结点称为 终止结点
程序执行
-
顺序执行
- 顺序性
- 封闭性:独占全机资源,不受外部干扰
- 可再现性:初始条件相同,执行结果相同
-
并发执行
- 两个或两个以上的程序或程序段可以在同一时间间隔内同时执行
- 间断性:执行 ——暂停——执行
- 失去封闭性:共享资源
- 不可再现性
进程的描述
进程的定义
-
进程是程序的一次执行
-
进程hi一个程序及其数据在处理机上顺序执行时所发生的活动
-
进程是具有独立功能的程序在一个数据集合上运行的过程
- 它是系统进行资源分配和调度的一个独立单位
进程的特征
- 进程具有程序所没有的PCB结构
- 动态性
- 并发性
- 独立性
- 异步性
进程的基本状态及转换原因
-
进程的三种基本状态
- 就绪态
- 执行态
- 阻塞态
-
挂起操作和进程状态的转换
-
挂起操作的引入
- 终端用户的需要
- 父进程请求
- 负荷调节的需要
- 操作系统的需要
-
三个进程状态的转换
- 挂起原语Suspend 激活原语 Active
- 活动就绪——>静止就绪
- 活动阻塞——>静止阻塞
- 静止就绪——>活动就绪
- 静止阻塞——>活动阻塞
-
进程控制块PCB的作用
- 作为独立运行的基本单位的标志
- 能实现间断性运行方式
- 提供进程管理所需要的信息
- 提供进程调度所需要的信息
- 实现与其他进程的同步与通信
进程同步
-
两种形式的制约关系
- 间接相互制约关系
- 直接相互制约关系
-
临界资源
-
临界区
-
遵循的准则
- 空闲让进
- 忙则等待
- 有限等待
- 让权等待
-
硬件同步机制
- 关中断
- 利用Test-and-Set指令实现互斥
- 利用Swap指令实现进程互斥
-
信号量机制
-
整型信号量
- wait(S)和signal(S)
-
记录型信号量
- 代表资源数目的整型变量value
- 进程链表指针 L ,用于链接上述的所有等待进程
-
AND型信号量
- 多个资源一次性全部分配给进程,缺一个都不会进行分配
-
信号量集的特殊情况
-
Swait(S,d,d)
- 信号量集中只有一个信号量S,允许它每次申请d个资源,当现有资源数少于d时,不予分配
-
Swait(S,1,1)
- 此时的信号量集已蜕化为一般的记录型信号量
-
Swait(S,1,0)
- 当S>= 1时,允许多个进程进入某特定区
- 当S变为0后,将阻止任何进程进去特定区
-
-
进程通信
- 进程之间的信息交换
线程的基本概念
- 调度和分派的基本单位
- 可并发执行
- 比进程的时空开销小
- 拥有的资源少,有TCB线程控制块
- 多个线程可共享资源
- 独立性低
- 支持多处理机系统