第九讲软件服务质量保障技术.pptVIP

  • 2
  • 0
  • 约 197页
  • 2017-02-23 发布于上海
  • 举报
第九讲软件服务质量保障技术

加锁:Locking 进程在访问共享的资源之前,必须获得所有的锁 在访问共享的资源之后,必须释放所有的锁 2PL: 进程一旦开始释放锁,它再不能获取其它的锁 一个典型的 2PL 加锁过程为: 锁的兼容性 进程是否能够获得锁取决于所请求的锁是否与资源目前的锁状态(其它进程已请求的锁)兼容 兼容性由锁兼容性矩阵决定 最小的锁兼容性矩阵: 锁冲突 如果所请求的锁与资源的锁状态不兼容,则不能获得所请求的锁 这被称为“锁冲突” 处理锁冲突的方法有: 强迫请求进程等待,直到冲突的锁被释放 告诉请求进程,无法获得所请求的锁 死锁 2PL 可能导致死锁状态 在该状态下,多个进程分别获取部分所需的资源,并互相等待其它进程释放资源 死锁必须通过终止一个或多个相关的进程才能得到解决 这需要被终止的进程放弃它们已经进行的所有操作 解决死锁的核心在于避免死锁 锁粒度 2PL适用于任意粒度的资源 并发程度高的进程将需要小粒度的锁机制 小粒度的锁机制将导致需要较大数目的锁实现 这将导致系统开销的增加 因此,在实现具体系统时,需要在并发度与锁开销之间进行权衡 层次锁是其中的一种折中方案 层次锁 用于内部包含其它内容的资源 例如: 文件 (包含多条记录) 集合或序列 (包含对象) 锁状态增加了 intention read (IR) 与 intention write (IW)

文档评论(0)

1亿VIP精品文档

相关文档