8并发性:互斥与同步课件.ppt

例1: 银行的联网储蓄业务允许储户同时使用存折和储蓄卡对同一账户进行存取款操作,如果某储户同时办理两笔存款业务(分别存入1000元和2000元) 从系统的角度看,有两个进程将同时对账户的余额进行操作,如果两个进程同时读出账户的余额(假设为5000元),那么两个进程执行完的结果分别为6000元(5000+1000)、7000(5000+2000)元 分析及措施 最后,储蓄余额可能为6000或者7000,都是不正确的。 原因是:两个进程同时修改同一个数据,而没有进行有效控制。 正确地方法:如果有多个进程同时对同一数据进行修改时,系统必须控制一次仅允许一个进程完成读数据、修改数据两件事,才允许其他进程对同一数据的读和修改操作。 8.1 互斥和同步 硬件方法 软件方法 信号量方法 管程方法 消息传递方法 8.2.1 实现互斥的硬件方法 硬件方法由于需要太强的硬件约束条件,以及可能导致进程饥饿与死锁现象,没有成为通用的解决方法。 8.2.2 实现互斥的软件方法 软件方法: 软件方法是指由进程自己,通过执行相应的程序指令,实现于其他进程同步与互斥,无须专门程序设计语言或os的支持。 实践证明,该方法很难正确控制进程间的互斥与同步,而且可能会大大的增加系统的额外开销 1、下述算法是解决两进程互斥访问临界区问题的一种方法。试从“互斥”,“空闲让进”,“有限等待”三方面讨论他的正确性

文档评论(0)

1亿VIP精品文档

相关文档