目录
进程管理
进程与PCB
程序顺序执行时的特征
- 顺序性:处理机的操作严格按照程序规定的顺序执行
- 封闭性:程序一旦开始执行,其计算结果不受外界因素影响
- 可再现性:程序执行只要初始条件一样,不论如何停顿,重复执行多少次结果都一样
并发程序错误执行
- 间断性(运行表现) 多道 -> 程序并发执行-> 要共享系统的资源 -> 形成相互制约的关系
- 失去封闭性 共享资源,资源状态由多道程序改变,程序运行失去封闭性。即程序运行受其他程序的影响。
- 不可再现性

进程

定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
进程的特征
- 结构性特征,进程的根本——PCB
- 动态性
- 并发性
- 独立性
- 异步性
进程和程序的区别

进程三种基本状态
- 就绪状态(Ready)
- 运行状态(Running)
- 阻塞状态(Blocked)

注:
- 单处理机系统,执行态的进程只有一个
- 阻塞队列有的会根据不同原因再排成多个队列
挂起

进程实体:代码段+数据段+PCB。
PCB的重要性

PCB内部结构

主要由处理机的各种寄存器中的内容组成,被中断时这些信息要存放到PCB

PCB的组织方式
- 链接方式

- 索引方式

进程控制与同步
进程控制基本过程
- 进程的创建
- 进程的终止
- 进程的终止进程的阻塞和唤醒
- 进程的挂起和激活
进程创建的过程
- 申请空白PCB
- 为新进程分配资源
- 初始化进程控制块(PCB)
- 将新进程插入就绪队列
进程终止的过程
进程阻塞与唤醒过程
阻塞:
- 将PCB状态改为阻塞
- 将PCB加入到对应的阻塞队列中
- 转进程调度,将处理机分配给另一进程
- 进行进程切换,根据两个切换进程的PCB保护与重新设置处理机状态
唤醒:
- 把进程从阻塞队列里移出
- 把PCB中现行状态改为就绪态
- 将PCB插入就绪队列中
进程同步的基本概念
(1)进程同步的主要任务:
使并发执行的各个进程之间能够有效的共享资源和相互合作,从而使程序的执行具有可再现性。
(2)临界资源:
一次只允许一个进程使用的资源
理解同步:
互斥:在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须等待,直到占用临界资源的进程退出临界区,我们称进程之间的这种相互制约关系为“互斥”。
同步:多个相互合作的进程,在一些关键点上可能需要互相等待或互相交换信息,这种相互制约关系称为进程同步关系。可理解为“有序”。
(3)临界区:
每个进程中访问临界区资源的代码称为临界区代码。

(4)同步机制应遵循的规则:
- 空闲让进:资源使用最基本的规则
- 忙则等待:保证互斥
- 有限等待:合适时被唤醒,防止死等
- 让权等待:能主动释放CPU防止忙等
同步控制的关键

信号量机制
整型信号量

- 信号量定义为一个整型量
- 根据初始情况赋相应的值
- 仅能通过两个原子操作来访问
记录型信号量

当信号量>=0时,代表可供并发进程所使用的资源实体数
当信号量<0时,表示正在等待使用该资源的进程数
实现有序:

AND型信号量

信号量集


管程
信号量机制不足
- 正确性分析困难
- 分散的P、V操作:易出错,使用不当可能导致死锁
- 修改、维护困难:易读性差,任一修改都可能影响全局;测试期间发现错误困难,即使发现错误也不容易定位出错位置
管程的组成
管程特点
- 任何进程只能通过调用管程提供的过程入口才能进入管程访问共享数据
- 任何时刻,仅允许一个进程在管程中执行某个内部过程
管程实现同步

条件变量
管程的优点
- 保证进程互斥地访问共享变量,并方便地阻塞和唤醒进程。管程可以以函数库的形式实现。相比之下,管程比信号量好控制
- 管程可增强模块的独立性:系统按资源管理的观点分解成若干模块,用数据表示抽象系统资源,使同步操作相对集中,从而增加了模块的相对独立性
- 引入管程可提高代码的可读性,便于修改和维护,正确性易于保证:采用集中式同步机制。一个操作系统或并发程序由若干个这样的模块所构成,一个模块通常较短,模块之间关系清晰
管程的缺点
- 大多数常用的编程语言中没有实现管程,如果某种语言本身不支持管程,那么加入管程是很困难的
- 虽然大多数编程语言也没有实现信号量,但可将P、V操作作为一个独立的子例程或操作系统的管理程序调用加入
进程通信、线程
进程通信

进程通信类型
- 共享存储器系统(操作存储区方式)


- 消息传递系统(发--收方式)

- 管道通信(中间文件方式)

- Client Server System
消息传递通信的实现方法
- 直接通信方式
- 间接通信方式
消息传递系统的实现
- 通信链路的建立

- 消息格式

- 同步方式

线程的属性

线程的创建和终止
842

被折叠的 条评论
为什么被折叠?



