第七章 内核中的同步.pptVIP

  • 11
  • 0
  • 约 27页
  • 2017-08-29 发布于上海
  • 举报
第七章 内核中的同步 什么是临界区(critical regions)? 就是访问和操作共享数据的代码段,这段代码必须被原子地执行 什么是竞争状态? 多个内核任务同时访问同一临界区 什么是同步? 避免并发和防止竞争状态称为同步(synchronization) 考虑一个非常简单的共享资源的例子:一个全局整型变量和一个简单的临界区,其中的操作仅仅是将整型变量的值增加1: i++ 该操作可以转化成下面三条机器指令序列: (1) 得到当前变量i的值并拷贝到一个寄存器中 (2)将寄存器中的值加1 (3) 把i的新值写回到内存中 内核任务1 内核任务2 获得i(1) --- 增加 i(1-2) --- 写回 i(2) --- 获得 i(2) 增加 i(2-3) 写回 i(3) 当共享资源是一个复杂的数据结构时,竞争状态往往会使该数据结构遭到破坏。 对于这种情况,锁机制可以避免竞争状态正如门锁和门一样,门后的房间可想象成一个临界区。 在一个指定时间内,房间里只能有个一个内核任务存在,当一个任务进入房间后,

文档评论(0)

1亿VIP精品文档

相关文档