《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第七章 内核中的同步

第七章内核中的同步临界区和竞争状态内核同步措施并发控制
第七章 内核中的同步 临界区和竞争状态 内核同步措施 并发控制

临界区和竞争状态·什么是临界区(critical regions)?一就是访问和操作共享数据的代码段,这段代码必须被原子地执行r·什么是竞争状态?一多个内核任务同时访问同一临界区·什么是同步?一避免并发和防止竞争状态称为同步(synchronization)
• 什么是临界区(critical regions)? –就是访问和操作共享数据的代码段,这段代 码必须被原子地执行 • 什么是竞争状态? – 多个内核任务同时访问同一临界区 • 什么是同步? –避免并发和防止竞争状态称为同步 (synchronization) 临界区和竞争状态

临界区举例,考虑一个非常简单的共享资源的例子:-个全局整型变量和一个简单的临界区,其中的操作仅仅是将整型变量的值增加1:1i++·该操作可以转化成下面三条机器指令序列:-(1)得到当前变量的值并拷贝到一个寄存器中一(2)将寄存器中的值加1一(3)把i的新值写回到内存中<>
• 考虑一个非常简单的共享资源的例子:一 个全局整型变量和一个简单的临界区,其 中的操作仅仅是将整型变量的值增加1: i++ • 该操作可以转化成下面三条机器指令序列: – (1) 得到当前变量i的值并拷贝到一个寄存器中 – (2)将寄存器中的值加1 – (3) 把i的新值写回到内存中 临界区举例

临界区举例可能的实际执行结果:内核任务1内核任务2r获得i(1)期望的结果获得 (1)增加 (1->2)内核任务1内核任务2获得i(1)增加 (1->2)增加(1->2)写回(2)写回(2)获得i(2)写回 (2)增加(2->3)写回(3)
内核任务1 内核任务2 获得i(1) - 增加 i(1->2) - 写回 i(2) - 获得 i(2) 增加 i(2->3) 写回 i(3) 临界区举例 内核任务1 内核任务2 获得 i(1) - - 获得 i(1) 增加 i(1->2) - - 增加 i(1->2) 写回 i(2) - - 写回 i(2) 可能的实际执行结果: 期望的结果

共享队列和加锁X当共享资源是一个复杂的数据结构时,竞争状态往往会使该数据结构遭到破坏。对于这种情况,锁机制可以避免竞争状态正如门锁和门一样,门后的房间可想象成一个临界区。r,在一个指定时间内,房间里只能有个一个内核任?务存在,当一个任务进入房间后,它会锁住身后的房门;当它结束对共享数据的操作后,就会走出房间,打开门锁。如果另一个任务在房门上锁时来了,那么它就必须等待房间内的任务出来并打开门锁后,才能进入房间。KM
❖ 当共享资源是一个复杂的数据结构时,竞争状 态往往会使该数据结构遭到破坏。 ❖ 对于这种情况,锁机制可以避免竞争状态正如门 锁和门一样,门后的房间可想象成一个临界区。 ❖ 在一个指定时间内,房间里只能有个一个内核任 务存在,当一个任务进入房间后,它会锁住身后 的房门;当它结束对共享数据的操作后,就会走 出房间,打开门锁。如果另一个任务在房门上锁 时来了,那么它就必须等待房间内的任务出来并打 开门锁后,才能进入房间。 共享队列和加锁

共享队列和加锁·任何要访问队列的代码首先都需要占住相应的锁,这样该锁就能阻止来自其它内核任务的并发访问:任务2r试图锁定队列任务1失败:等待...试图锁定队列等待...成功:获得锁等待...访问队列...成功:获得锁为队列解除锁访问队列..为队列解除锁
• 任何要访问队列的代码首先都需要占住相 应的锁,这样该锁就能阻止来自其它内核 任务的并发访问: 任务 1 试图锁定队列 成功:获得锁 访问队列. 为队列解除锁 . 任务2 试图锁定队列 失败:等待. 等待. 等待. 成功:获得锁 访问队列. 为队列解除锁 共享队列和加锁

确定保护对象找出哪些数据需要保护是关键所在X内核任务的局部数据仅仅被它本身访问,X显然不需要保护r如果数据只会被特定的进程访问,也不需加锁心大多数内核数据结构都需要加锁:若有其它内核任务可以访问这些数据,那么就给这些数据加上某种形式的锁;若任何其它东西能看到它,那么就要锁住它
❖ 找出哪些数据需要保护是关键所在 ❖ 内核任务的局部数据仅仅被它本身访问, 显然不需要保护 ❖ 如果数据只会被特定的进程访问,也不 需加锁 ❖ 大多数内核数据结构都需要加锁:若有 其它内核任务可以访问这些数据,那么 就给这些数据加上某种形式的锁;若任 何其它东西能看到它,那么就要锁住它 确定保护对象

死锁心死锁产生的条件:有一个或多个并发执行的内核任务和一个或多个资源,每个任务都在等待其中的一个资源,但所有的资源都已经被占用。所有任务都在相互等待,但它们永r远不会释放已经占有的资源,于是任何任务都无法继续典型的死锁:心四路交通堵塞*自死锁:一个执行任务试图去获得一个自已已经持有的锁<>
❖ 死锁产生的条件:有一个或多个并发执行的 内核任务和一个或多个资源,每个任务都在 等待其中的一个资源,但所有的资源都已经 被占用。所有任务都在相互等待,但它们永 远不会释放已经占有的资源,于是任何任务 都无法继续 ❖ 典型的死锁: ❖ 四路交通堵塞 ❖ 自死锁:一个执行任务试图去获得一个自 己已经持有的锁 死 锁

死锁的避免心加锁的顺序是关键。使用嵌套的锁时必须保证以相同的顺序获取锁,这样可以阻止致命拥抱类型的死锁rX防止发生饥饿不要重复请求同一个锁。X越复杂的加锁方案越有可能造成死锁X因此设计应力求简单KM
❖ 加锁的顺序是关键。使用嵌套的锁 时必须保证以相同的顺序获取锁,这 样可以阻止致命拥抱类型的死锁 ❖ 防止发生饥饿 ❖ 不要重复请求同一个锁。 ❖ 越复杂的加锁方案越有可能造成死锁, 因此设计应力求简单 死锁的避免

并发执行的原因中断二中断几乎可以在任何时刻异步发生,也可能随时打断正在执行的代码。心内核抢占一一若内核具有抢占性,内核r中的任务就可能会被另一任务抢占心睡眠及与用户空间的同步一一在内核执行的进程可能会睡眠,这将唤醒调度程序,导致调度一个新的用户进程执行心对称多处理一一两个或多个处理器可以同时执行代码
❖ 中断——中断几乎可以在任何时刻异步 发生,也可能随时打断正在执行的代码。 ❖ 内核抢占——若内核具有抢占性,内核 中的任务就可能会被另一任务抢占 ❖ 睡眠及与用户空间的同步——在内核执 行的进程可能会睡眠,这将唤醒调度程 序,导致调度一个新的用户进程执行 ❖ 对称多处理——两个或多个处理器可以 同时执行代码 并发执行的原因
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第五章 中断与异常.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第六章 系统调用.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第四章 内存管理.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第三章 进程.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第一章 操作系统概述.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第二章 虚拟内存管理的硬件机制.ppt
- 《网络操作系统》课程教学资源(PPT课件)第十一章 LInux远程登录.ppt
- 《网络操作系统》课程教学资源(PPT课件)第十章 Linux防火墙Iptables.ppt
- 《网络操作系统》课程教学资源(PPT课件)第九章 DNS及DHCP服务器.ppt
- 《网络操作系统》课程教学资源(PPT课件)第七章_Linux服务器的配置.ppt
- 《网络操作系统》课程教学资源(PPT课件)第八章_VSFTP.ppt
- 《网络操作系统》课程教学资源(PPT课件)第六章 配置网络连接.ppt
- 《网络操作系统》课程教学资源(PPT课件)第五章 软件包管理.ppt
- 《网络操作系统》课程教学资源(PPT课件)第四章 Linux服务与进程管理.ppt
- 《网络操作系统》课程教学资源(PPT课件)第三章 用户管理及组管理.ppt
- 《网络操作系统》课程教学资源(PPT课件)第一章 建立Linux系统.ppt
- 《网络操作系统》课程教学资源(PPT课件)第二章 Linux终端操作.ppt
- 《操作系统》课程教学资源(PPT课件)第7章 操作系统接口.ppt
- 《操作系统》课程教学资源(PPT课件)第5章 设备管理.ppt
- 《操作系统》课程教学资源(PPT课件)第6章 文件管理.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第八章 文件系统.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第九章 设备驱动.ppt
- 常用的计算机术语及英文缩写.pdf
- 《Office高级应用》课程教学资源(参考资料)Excel常用函数.pdf
- 内蒙古农业大学:《Office高级应用》课程教学资源(课件讲稿)1 基本数据结构与算法.pdf
- 内蒙古农业大学:《Office高级应用》课程教学资源(课件讲稿)2 软件工程与程序设计基础.pdf
- 内蒙古农业大学:《Office高级应用》课程教学资源(课件讲稿)3 数据库基础.pdf
- 石河子大学:《三维动画设计》课程授课教案(任课教师:肖志强).doc
- 《三维动画设计》课程教学资源(案例)3ds Max实例教程利用赛车模型制作汽车动画.doc
- 《三维动画设计》课程教学资源(案例)CG经典教程成功做出真实的人头模型.doc
- 《三维动画设计》课程教学资源(案例)3DMax教程3Dmax打造办公立体空间教程.doc
- 《三维动画设计》课程教学资源(案例)使用3ds Max建造体育馆实例制作过程.doc
- 《三维动画设计》课程教学案例(效果图设计制作)15、建筑日景.doc
- 《三维动画设计》课程教学案例(效果图设计制作)16、鸟瞰效果图的制作.doc
- 《三维动画设计》课程教学案例(效果图设计制作)11-12、清晨客厅.doc
- 《三维动画设计》课程教学案例(效果图设计制作)13-14、建筑夜景.doc
- 《三维动画设计》课程教学案例(效果图设计制作)4、常用贴图的调整.doc
- 《三维动画设计》课程教学案例(效果图设计制作)6、效果图的美学知识.doc
- 《三维动画设计》课程教学案例(效果图设计制作)3、材质设置基础.doc
- 《三维动画设计》课程教学案例(效果图设计制作)7-10、温馨卧室(日景、夜景).doc