操作系统课件Chapter 04-1

合集下载

操作系统课件CCH04-Process

操作系统课件CCH04-Process

进程状态变迁
其他状态: • 创建状态,终止状态 • 挂起状态(调节负载,对换,父进程,操作 系统,终端用户)
五状态进程模型
进程状态变迁
• 创建( 新new)状态
– OS 已完成为创建一进程所必要的工作
• 已构造了进程标识符;
• 已创建了管理进程所需的表格;
–还没有允许执行该进程 • 因为资源有限.
• 就绪状态(Ready)
–存在于处理机调度队列中的那些进程,它们已经准 备就绪,一旦得到 CPU,就立即可以运行(有多个 进程处于此状态)
25
进程的基本状态
• 运行状态(Running)
–当进程由调度 / 分派程序分派后,得到 CPU控制权,
它的程序正在运行(在系统中,总只有一个进程
处于此状态)
– 资源的竞争 – 程序之间的合作与协同 – 程序之间的通信等问题。
• 要解决这些问题,用程序的概念已经不能描述程序 在内存中运行的状态,必须引入新的概念--进程
程序的顺序执行
• 顺序环境计算机系统只有一个程序在运行,该程序独
占系统中所有资源,其执行不受外界影响
程序顺序执行
• 顺序执行的特征
– 顺序性:按照程序结构所指定的次序(可能有分支或 循环)
等待:进程等待某些事件发生
就绪:进程等待分配处理器
– ready: The process is waiting to be assigned to a processor.
– terminated: The process has finished execution.
止:进程执行完毕

进程的基本状态
– new: The process is being created. 新建:在创建的进程

操作系统课件

操作系统课件
– 可以充分利用多处理器体系结构,使得一个 进程中的线程在不同的处理器上运行,提高 进程执行的并行度
超线程(Hyper-Threading)
• 在一个实体处理器中,提供两个逻辑线程。 • 超线程技术可以一个核心同时进行多线程处理。 • 就是一个实体核心,两个逻辑核心,在单位时间内处 理两个线程,模拟双核心运作。 • 英特尔第一个实现了这个技术,含超线程技术的 处 含超线程技术的P4处 含超线程技术的 理器商标 Pentium D纵使不支持超线程技术,但却集成了两个实 体核心,所以仍会见到两个逻辑线程。 • 多内核,超线程技术。 • 超线程的未来发展,是提升处理器的逻辑线程,英特 尔将8核心的处理器,加以配合超线程技术,使之成为 16个逻辑线程的产品。
操作系统和应用软件支持
目前在微软的操作系统中只有Windows XP及以 上的版本才能正式支持“超线程”技术, Windows 98/Me/2000均不支持此项功能。 一般说来,最大发挥HT技术的运行效能还需 HT 要真正支持超线程技术的软件,现实中这样的软 件是少之又少的。除了MS Office系列软件和一些 视频、图形如Photoshop等专业软件外几乎都不支 持HT技术。很多游戏也不支持HT技术。
剖析进程
• 多个进程完成一个共同的任务,关系紧密,需 要共享很多资源。共享代码、变量、文件。。。 • 传统的进程既是资源的拥有者,又是程序的执 行单位。资源的拥有者与执行单位在功能上融 为一体。 • 将进程的执行单位与资源的拥有者在功能上分 离,将执行功能或单位叫线程。构成上统一在 一个空间上。 • 一个进程可以拥有多个线程。
(3)确定进程的操作流程 )
按操作的步骤,写出每个进程操作的流程,注意其中的同步和互斥操作。
(4)确定信号量的个数、含义和初值 )确定信号量的个数、

操作系统课件4

操作系统课件4
进入时刻 运行时间 开始时刻 完成时刻 周转时间 带权周转
1 2 3 4
8.00 8.50 9.00 9.50
2.00 0.50 0.10 0.20
8.00 10.00 10.50
10.00 10.50 10.60
2.00 2.00 1.60
1.00 4.00 16.00
10.60
10.80
1.30
2
处理机调度
spooling 系统
作业状态及其转换图
就绪
线程调度
等待 外存
交换调度
运行
提交
收容 输入井
就绪 等待
完 成
内存
作业调度
进程调度
3
处理机调度
2.调度的层次
高级调度(作业调度、宏观调度)——按一定 原则对外存输入井上的作业进行调度,并建立 进程PCB。它决定允许哪些作业竞争系统资源。 由于这种调度决定哪些作业可以进入系统,所 以也称收容调度。作业一旦被系统收容,就便 成进程或进程组。
6.50
平均周转时间T=1.725(h) 平均带权周转时间T’=6.875
25
处理机调度
进程调度算法
FCFS(先来先服务调度算法)
最简单的调度原则是先进先出就绪队 列 完 成
D
C
B
A
CPU
26
处理机调度
FCFS(先来先服务调度算法)
根据进程到达就绪队列的时间来分配中央处理机,一 旦一个进程获得了中央处理机,就一直运行到结束, 先来先服务是非剥夺调度。
这种调度从形式上讲是公平的,但它使短作业要等 待长作业的完成,重要的作业要等待不重要作业的完 成。从这个意义上讲又是不公平的。 先进先出调度使响应时间的变化较小,因此它比其 它大多数调度都可预测。由于这种调度方法不能保证 良好的响应时间,在处理交互式用户时很少用这种方 法。

操作系统课件

操作系统课件

主要知识点
8、页式虚拟存储管理 虚拟存储器的含义 决定虚拟存储器大小的因素:地址结构,辅助存储器 基本原理 页表增加的内容 标志位,磁盘上的位置 缺页中断 缺页中断的处理过程
主要知识点
8、页式虚拟存储管理 页面调度 抖动或颠簸 页面调度的算法:FIFO,LRU,LFU 能够算题。 注意:LRU、LFU的区别。 多级页表 二级页表的原理 三次访问内存
主要知识点
1、计算机系统的组成 硬件:CPU、存储器、输入输出控制系统、输入输出
设备 软件:软件的三个类型
2、什么是操作系统 四个要点
3、操作系统的作用 三个作用 提高效率,便于使用
4、操作系统的功能 四种资源的管理:处理器、存储器、文件、设备 两类接口:程序员接口(系统调用),操作员接口
(操作控制命令)
主要知识点
6、可变分区存储管理 地址转换 动态地址重定位 硬件支持:基址寄存器和限长寄存器 存储保护 基址寄存器内容<=绝对地址<=限长寄存器内容 地址越界中断 移动技术 移动技术的目的 移动技术存在的问题
主要知识点
7、页式存储管理 基本原理:块和页的含义 逻辑地址构成:页号+页内地址 注意:这是一维地址,高位为页号 内存空间的分配与回收 位示图 块号、字号、位号、字长之间的关系 地址变换 页表的结构。动态地址变换机构 快表,高速缓冲存储器 地址变换的过程。能够算题。 页的共享与保护
逻辑地址转变为物理地址的过程 计算逻辑地址中的页号和页内地址 根据页号查页表,得到内存块号 物理地址=块号+页内地址
焦点问题:如何计算页号和页内地址?
答案及分析
因为页的大小为1024B,210=1024,所以页号占10位。 041A(H)=(0000010000011010)2,低位10位为页内 地址,高位为页号,页号为1 根据页表得知:块号为8 物理地址为:(0010000000011010)2=201A(H) 同理: 0521(H)=0000010100100001 页号为1,块号为8,该页标志位为1,说明该页已在内存, 不会发生缺页中断

操作系统原理ppt课件

操作系统原理ppt课件
单缓冲、双缓冲、循环缓冲、缓冲 池等。
03
02
缓冲区的作用
缓解CPU与外设之间速度不匹配的 矛盾,提高数据传输效率。
缓冲区的管理策略
缓冲区分配、缓冲区回收、缓冲区 满和空的处理等。
04
06
现代操作系统技术
微内核操作系统
微内核架构
微内核仅包含最基本的 功能,如进程调度、内 存管理和进程间通信等 ,其他服务以用户态进 程形式存在。
操作系统的分类与发展
分类
根据使用环境和应用需求,操作系统 可分为批处理系统、分时系统、实时 系统、网络操作系统等。
发展
随着计算机技术的飞速发展,操作系 统也在不断演进,从早期的简单批处 理系统发展到现代的多用户、多任务 、多媒体操作系统。
操作系统的基本特征
并发性
共享性
操作系统可以同时处理多个任务或事件。
I/O控制方式
程序直接控制方式
CPU直接控制外设,进行数据 的输入输出操作。
中断控制方式
外设准备就绪后,向CPU发出 中断请求,CPU响应中断后进 行数据传输。
DMA控制方式
在外设和内存之间开辟直接的 数据交换通道,减少CPU的干 预。
通道控制方式
CPU通过通道来控制外设,实 现更高效的数据传输。
请求分段存储管理
在段式存储管理的基础上,增加请求调段和段置换功能。
请求分页存储管理
在页式存储管理的基础上,增加请求调页和页面置换功能 。
虚拟存储的优缺点
扩大内存容量、提高内存利用率、方便用户编程等;但需 要额外的软硬件支持、可能增加系统开销等。
04
文件管理
文件与文件系统
文件的概念
文件是存储在外部介质上的数据集合,是操作系统进行管理和操作 的基本单位。

操作系统课件 第1章(最新最完整的课件)

操作系统课件  第1章(最新最完整的课件)

1.5 操作系统的结构设计 二、 微内核OS结构 以微内核OS为核心,以客户/服务器模式为基 础,并采用面向对象的设计方法。
1.客户/服务器模式
客户 进程 客户 进程 请求 进程 终端 服务器 服务器 核心 … 文件 服务器 回答 存储器 服务器 用户方式 核心方式
1.5 操作系统的结构设计 二、 微内核OS结构 以微内核OS为核心,以客户/服务器模式为基 础,并采用面向对象的设计方法。 2.面向对象程序设计技术 基于“抽象”和“封装”原则的程序设计技术。 所谓对象,是指在现实世界中具有相同属性、 服从相同规则的一系列事物的抽象,而把其中的具 体事物称为对象的实例。 OS 中的各类实体如进程、线程、消息、存储器 等,都使用了对象这一概念,相应地,便有进程对 象线程对象、 存储器对象等。
脱机输入/输出方式
输入设备
外围机
磁盘
主机
输出设备
外围机
磁盘
1.2 操作系统的发展过程
1.2.2 单道批处理系统
将一批作业以脱机方式输入到磁带上,在系统 配臵的监督程序的控制下,使各作业能连续的一个 接一个被调入内存进行处理。 (1)自动性:无需人工干预 (2)顺序性:先进先出 (3)单道性:内存中仅有一道程序运行
1.3 操作系统的基本特性
1.3.2 共享性 在操作系统环境下,所谓共享是指系统中的资 源可供内存中多个并发执行的进程 ( 线程 ) 共同使用。 由于资源属性的不同,进程对资源共享的方式 也不同,目前主要有以下两种资源共享方式: (1)互斥共享方式:规定在一段时间内只允许一个进 程(线程)访问该资源。 把在一段时间内只允许一个进程访问的资源称为 临界资源或独占资源。 (2) 同时访问方式:允许在一段时间内由多个进程 “同时”对它们进行访问。这里所谓的“同时”往 往是宏观上的,而在微观上,这些进程可能是交替 地对该资源进行访问。

操作系统概念ppt课件

操作系统概念ppt课件
操作系统概念
第二章:计算机系统结构
本章主要内容
计算机系统操作 I/O结构 存储结构 存储层次 硬件保护 网络结构 (*)
.
2
现代计算机系统
磁盘
打印机
磁带驱动器
CPU 系统总线
磁盘控制器
打印机 控制器
内存控制器 内存
.
磁带驱动器 控制器
3
2.1 计算机系统操作
I/O设备和CPU可以并发执行 一个设备控制器负责一类设备
.
18
双重模式操作
为了确保操作正常,必须保护操作系统和所有 其他程序及数据使之不受任何故障程序的影响。 所有共享资源都需要保护。
OS必须提供硬件支持用来区分至少以下两种 操作模式
用户模式(user mode) - 代表用户在执行 监督程序模式(monitor mode)- 代表OS在
执行
.
磁盘控制器决定了磁盘设备与计算机之间的逻 辑交互
.
12
移动磁头的磁盘装置
.
13
2.4 存储层次
存储系统按层次组织在一起
速度(Speed) 价格(Cost) 易失性(Volatility)
缓冲(Caching) - 将信息复制到更快速的存 储系统;主存可以看成是辅存的最后一级缓冲
.
14
异步I/O - I/O启动后,控制权无须等待I/O操作完成就 可返回给用户进程。
系统调用 - 请求OS允许用户等待I/O操作的完成
设备状态表包含了每个I/O设备的一个条目,用来指示该 设备的类型、地址和状态(不工作、空闲或繁忙)
OS通过查询I/O设备表来判断设备的状态,并修改该条 目,以反映出现了中断。
时模式位(mode bit)设为监督模式 监督程序检验参数的合法性,执行请求,并将

操作系统课件第四版第四章

操作系统课件第四版第四章

优点:装入过程简单。 缺点:过于依赖于硬件结构,不适于多道程序系统。
2.可重定位装入方式(也称为静态重定位或静 态地址映射)
是在程序执行之前进行重定位。它根据装配模 块将要装入的内存起始地址,直接修改装配模块中 的有关使用地址的指令。即当用户程序被装入内存 时,一次性实现逻辑地址到物理地址的转换,以后 不再转换(一般在装入内存时由软件完成)。 例如在图中以“0”作为参考地址的装配模块, 要装入以10000为起始地址的存储空间。显然在装入 程序之前,程序必须做一些修改才能正确运行。
Y
本次无法分配
N
N
m.size>u.size m.size-u.size≤size?
N
从 该 分 区 中 划 出 u.size 大小的分区
Y
将该表目以上的所有 表目下移一格 将该分区分配给申请者, 修改有关的数据结构 返 回
2)回收内存 当一个作业运行完毕释放内存时,系统根据释 放区的首地址,从空闲区说明表中找到相应的插入 点,此时可能出现下列四种情况(如下图所示,其 中F1,F2表示回收区的前、后空闲区): 当回收区既不与F1邻接,又不与F2邻接时(如A), 应为回收区单独建立一项新表目,填写回收区的起 址和大小,并根据其起址,插入到空闲区说明表的 适当位置。 当回收区只与插入点的前一个分区 F1 相邻接时 (如B),应将回收区与插入点的前一个分区合并, 不再为回收区分配新的表目,而只需修改 F1分区表 目的大小即可。
可执行文件 进程
在这个过程中,原程序的地址将产生变化: (1)编辑:使用符号地址 (2)编译:模块内符号地址解析 (3)链接:模块间符号地址解析
(4)装入:使用物理地址
符号地址:在源程序中,是通过符号名来访问子程序和 数据的,把程序中符号名的集合称为“名字空间”。

操作系统课件Chapter4

操作系统课件Chapter4

用户级线程
用户级线程由应用程序通过线程库实现,所有的线程管理工作都由应用程序负责,包括线 程的创建、终止、同步和调度等。
内核级线程
内核级线程的管理工作由操作系统内核完成。线程调度、切换等工作都由内核负责,因此 内核级线程的切换速度较慢,且消耗较多的系统资源。
混合实现方式
混合实现方式结合了用户级线程和内核级线程的特点,将线程的创建、终止等工作交给应 用程序负责,而线程的调度和切换等工作则交给操作系统内核负责。这种方式既保证了线 程的切换速度,又降低了系统资源的消耗。
多个进程因竞争资源而造成的一种相互等待的现象,若无外力作用 ,它们都将无法向前推进。
竞争资源
当系统中供多个进程共享的资源,其数目不足以满足诸进程的需要 时,会引起诸进程对资源的竞争而产生死锁。
进程间推进顺序非法
进程在运行过程中,请求和释放资源的顺序不当,也同样会导致死锁 。
2024/1/29
21
死锁预防策略探讨
18
多线程编程模型示例
2024/1/29
POSIX Threads(Pthreads)
Pthreads是一种可移植的操作系统标准,它定义了创建和管理线程的API。在Pthreads中 ,线程可以被创建、终止、同步和调度。
Java Threads
Java语言内置了多线程支持,通过Thread类或Runnable接口可以方便地创建和管理线程 。Java提供了丰富的线程同步机制,如synchronized关键字、Lock接口等。
操作系统课件Chapter4
2024/1/29
1
目录
2024/1/29
• 进程管理概述 • 进程创建与终止 • 进程同步与通信 • 线程概念及实现方式 • 死锁现象及处理方法 • 存储管理策略分析 • 文件系统设计与实现

操作系统课件第4章2024新版

操作系统课件第4章2024新版

06
总结回顾与拓展延伸
关键知识点总结回顾
操作系统的基本概念、功能 和分类
进程与线程的概念、状态和 调度算法
02
01
内存管理的基本原理、分页
和分段技术
03
文件系统的基本概念、文件 结构和访问方法
04
05
设备管理的基本原理、I/O控 制方式和设备驱动程序
案例分析加深理解
案例分析1
Windows操作系统中的进程管 理
05
进程调度算法及评价
调度基本概念和类型
调度定义
操作系统中的调度是指按照某种策略和方法,将处理机分 配给进程或线程,以实现多道程序并发执行的过程。
调度类型
根据调度的发生时机和目的,可分为长期调度(作业调度 )、中期调度(内存调度)和短期调度(进程/线程调度 )。
调度器
负责实现调度的程序称为调度器,它是操作系统内核的一 部分。
资源分配图算法
利用有向图描述系统资源和进程 状态,通过检测有向图是否存在 环路来判断系统是否处于死锁状 态。
死锁检测与恢复方法
死锁检测
通过定时运行死锁检测程序来判断系统是否发生死锁。具体方法可采用资源分配图算法或等待图算法 。
死锁恢复
当检测到死锁时,需要采取措施来解除死锁。常见的解除死锁的方法有抢占资源和回滚操作。抢占资 源是指从一个或多个死锁进程中抢占足够数量的资源,使得其他进程可以继续执行;回滚操作是指将 一个或多个死锁进程回滚到某个状态,以解除死锁。
操作系统课件第4章
contents
目录
• 进程管理 • 进程同步与通信 • 死锁及处理策略 • 线程、多线程编程技术 • 进程调度算法及评价 • 总结回顾与拓展延伸
01

最新现代操作系统ppt课件

最新现代操作系统ppt课件
– 分布式死锁预防主要基于时间戳
三、分布式死锁处理技术
• 这两种方案相互补充。 • 等待—死亡方案(wait-die scheme)。该方案是基于非剥夺
方法。当进程Pi请求的资源正被进程Pj占有时,只有当Pi 的时间戳比进程Pj的时间戳小时,即Pi比Pj老时,Pi才能 等待。否则Pi被卷回(roll-back),即死亡。
• 若打印机空闲,输出程序从请求打印队列的队首取出一张请求打 印表,根据表中的要求将要打印的数据,从输出井传送到内存缓 冲区,再由打印机进行打印。打印完后,输出进程再查看请求打 印队列中是否还有等待打印的请求表。若有,又取出队列中的第 一张表,并根据其中的要求进行打印,如此下去,直至请求打印 队列为空,输出进程才将自己阻塞起来。仅当下次再有打印请求 时,输出进程才被唤醒。
– 所谓安全状态即对于所有进程的资源请求,存在某种 调度次序能使得进程运行完毕。
• 资源轨迹图与银行家算法
3. 死锁避免
• 银行家算法
• 系统中的所有进程进入进程集合, • 在安全状态下系统收到进程的资源请求后,先把资源试探性
分配给它。 • 系统用剩下的可用资源和进程集合中其他进程还要的资源
数作比较,在进程集合中找到剩余资源能满足最大需求量 的进程,从而,保证这个进程运行完毕并归还全部资源。 • 把这个进程从集合中去掉, 系统的剩余资源更多了,反复执 行上述步骤。 • 最后,检查进程集合,若为空表明本次申请可行,系统处于安 全状态,可实施本次分配;否则,有进程执行不完,系统处于 不安全状态,本次资源分配暂不实施,让申请进程等待。
3. 死锁避免
死锁避免算法与死锁检测算法是类似的, 不同在于后者考虑了检查每个进程还需要 的所有资源能否满足要求;而前者则仅要 根据进程的当前申请资源量来判断系统是 否进入了不安全状态。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.2.1 共享变量与临界区域


共享变量(shared variable)
– 多个进程都需要访问的变量。
临界区域(critical region)
– 访问共享变量的程序段。
一组公共变量
…….
CR1
CR2
CRn
表示
共享变量: shared <一组变量>
临界区域: region <一组变量> do <语句> 例子:shared B:array[0,..,n-1]of integer; region B do region B do
典型同步机制
信号灯与PV操作(semaphore and PV operations) 管程(monitor) 会合(rendezvous) 条件临界区(conditional critical region)

4.3.3 信号灯与PV操作
E.W.Dijkstra, 1965.
4.3.3.1 信号灯与PV操作的定义
1. 硬件提供“测试并建立”指令 int test_and_set(int &target){ int temp=*target; *target=1; return(temp); }
对一组公共变量,定义全局变量int lock,其初值为0, 表示没有进程进入临界区
Pi进入:While test_and_set(lock) skip; 临界区 Pi离开:lock=0;
Eisenberg/Mcguire算法
Var flag Array[0,…,n-1]Of (idle, want_in, in_cs);
turn: 0..n-1; 初始任意
flag[i]=idle: 进程Pi不想进入临界区
flag[i]=want_in: 进程Pi想进入临界区 flag[i]=in_cs: 进程Pi已进入临界区 初始时,flag的所有元素都为idle,turn的初 值为0到n-1的任意一个数 每个进程有局部变量j
Remarks: 1.共享变量所代表的资源称为”临界资源” 2.互斥是相对于临界资源而言的。
嵌套临界区域
shared x1,x2; region x1,x2 do begin …… region y1,y2 do begin ……. end end; 有可能发生死锁 shared y1,y2; region y1,y2 do begin ……. region x1,x2 do begin ……. end end;
(1) 执行此操作进程的PCB进入s->queue尾部(状态改为 等待);
原语: 一段不可间断执行的程序
(2) 转处理机调度程序。
V操作原语
V操作原语: void V(semaphore s){ s->value++; if (s->value<=0) wakeup(s->queue) } wakeup(s->queue):
4.2.3.2 进程互斥的硬件实现
2. 硬件提供“交换”指令 void swap(int &a,int&b){ int temp; temp = *a; *a=*b; *b=temp; } 对于每组共享变量定义一个全局变量:
int lock (初始=0);
对于每个要求进入与该组共享变量相关的临界区的 进程,定义一个局部变量:int key;
4.2.3 进程互斥的实现

算法框架
Repeat
entry section
critical section
exit section
remainder section Until false
4.2.3 进程互斥的实现

Requirements:
– 正确性原则: 一次只允许一个进程活动在关于同一
组公共变量的临界区中;
P2: b1,b2,b3

外部顺序性:a1,a2,a3,b1,b2,b3;
b1,b2,b3,a1,a2,a3
特征:顺序性、封闭性、可再现性 – 并发性

内部并发性:P2: b1,b2,b3;
P2: b1,b3,b2 b1,b2,a1,b3,a2,a3
外部并发性:a1,b1,b2,a2,a3,b3;
信号灯变量
semaphore S; S.value S.queue
S.value S.queue
PCB
PCB FIFO
PCB
P操作原语
P操作原语: void P(semaphore s){ s->value--; if (s->value<0) asleep(s->queue) }
asleep(s->queue):
{ Critical Region}
开中断 Remarks: (1) 开关中断只在单CPU系统中有效;(why?)
(2) 影响并发性。
4.3 进程同步
4.3.1 进程同步的概念
例:司机-售票员问题 司机活动: do{ (1) 启动车辆 正常行驶 到站停车 (4) }while(1)
售票员活动: do{ 关车门 (2) 售 票 (3) 开车门 }while(1)
Eisenberg/Mcguire算法
临界区
Pi离开: j:=(turn+1)mod n;
While (flag[j]==idle)do
j:=(j+1)mod n; turn:=j; 从状态为want_in的进程中,选 择下一个进入临界区的进程
flag[i]:=idle;
4.2.3.2 进程互斥的硬件实现
第四章 互斥、同步与通讯
并发进程(concurrent processes) 进程互斥(mutual exclusion) 进程同步(synchronization) 进程高级通讯(communication)

4.1 并发进程

4.1.1 顺序性与并发性
– 顺序性

内部顺序性:P1: a1,a2,a3;
4.3.1 进程同步的概念
定义:一组进程,为协调其推进速度,在某些 关键点处需要相互等待与相互唤醒,进程之间 这种相互制约的关系称为进程同步。
P1: synchronize 先 后 P2:
4.3.2 进程同步机制

进程同步和进程互斥的区别:
-进程同步仅发生在有逻辑关系的进程间
-进程互斥可发生在任意两个进程之间
特征:交叉性、开放性、不可再现性
4.1.2 与时间有关的错误
例:图书借阅系统 终端1: CYCLE 等待借书者; IF x>=1 Then Begin x:=x-1; 借书 End Else 无书 End (x:某种书册数,设当前x=1.) 终端2: CYCLE 等待借书者; IF x>=1 Then Begin 1 x:=x-1; 借书 3 End Else 无书 End
Lamport面包店算法
VAR choosing: Array[0,…,n-1]Of Boolean;(false) number: Array[0,…,n-1]Of integer; (0) Pi 进入: 1. choosing[i]:=true; 2. number[i]:=max{number[0],…,number[n-1]}+1; 3. choosing[i]:=false; 4. For j:=0 To n-1 Do 5. While choosing[j] Do skip; 6. While (number[j]<>0)and 7. (number[j],j)<(number[i],i) Do skip 8. Endfor
4.2.3.2 进程互斥的硬件实现
基于swap指令的互斥算法
do{ key=1;
do{
swap(&lock,&key); }while(key==1);
临界区
lock=0; 其余部分
}while(1);
4.2.3.2 进程互斥的硬件实现
Remarks:
(1) test_and_set指令和swap指令是原子的, 不可中断的。(为何?) (2) test_and_set实际上是:将内存中一个单 元的内容取出,再送一个新值。 (3) swap实际上是:交换内存两个单元的内容。
Lamport面包店算法(Cont.)
临界区 Pi离开: number[i]:=0: 变量choosing的作用: 可能按P2,P3,P1次序进入!
表示进程是否正在抓号
变量number的作用: 正确次序:P1,P2,P3
记录各个进程抓到的号码
Lamport面包店算法(Cont.)
思考: 1.为何不同的进程可能抓到相同的号?结合算 法第二步思考 2.如果将算法第五步去掉,会发生什么情况?
– 进展性原则: 临界区空闲时,多个竞争者在有限时
间内确定下一个进入者;
– 公平性原则: 一个想要进入临界区的进程在等待有
限个进程进入并离开临界区后获得进入临界区的机 会。
4.2.3.1 进程互斥的软件实现
完全用程序实现,不需特殊硬件指令支 持。 可用于单CPU和多CPU环境中。 有忙式等待问题。

定义:一组进程,如果它们单独不能正 常运行,但并发可以正常运行,这种现 象为进程合作,参与合作的进程为合作 进程
4.3.2 进程同步机制

定义:用于实现进程同步的工具称为同 步机制(synchronization mechanism)

同步机制要求:
– 描述能力够用; – 可实现; – 高效; – 使用方便.
4.2.3.2 进程互斥的硬件实现
思考:
1.用test_and_set指令和swap指令实现互斥,满足公
相关文档
最新文档