06 2020 档案

摘要:现在主流的多处理器架构都在硬件水平上提供了对并发同步的支持。 今天我们讨论两个很重要的硬件同步指令:Test-and-Set和Compare-and-Swap ##Test and Set 一个Test-and-Set(TAS)指令包括两个子步骤,把给定的内存地址设置为1,然后返回之前的旧值。 这两 阅读全文
posted @ 2020-06-26 09:25 元思 阅读(4899) 评论(1) 推荐(3)
摘要:为什么对缓存只删除不更新 不更新缓存是防止并发更新导致的数据不一致。 所以为了降低数据不一致的概率,不应该更新缓存,而是直接将其删除, 然后等待下次发生cache miss时再把数据库中的数据同步到缓存。 先更新数据库还是先删除缓存? 有两个选择: 1. 先删除缓存,再更新数据库 2. 先更新数据库 阅读全文
posted @ 2020-06-23 23:05 元思 阅读(7106) 评论(0) 推荐(0)
摘要:1. 什么是内存模型? 在多处理器系统中,为了提高访问数据的速度,通常会增加一层或多层高速缓存(越靠近处理器的缓存速度越快)。 但是缓存同时也带来了许多新的挑战。比如,当两个处理器同时读取同一个内存位置时,看到的结果可能会不一样? 在处理器维度上,内存模型定义了一些规则来保证当前处理器可以立即看到其 阅读全文
posted @ 2020-06-17 13:41 元思 阅读(603) 评论(0) 推荐(2)
摘要:互斥 互斥访问是并发编程要解决的核心问题之一。有许多种方法可以满足临界区的互斥访问,大体上可以分为三种: 一种是软件方法,即由用户程序承担互斥访问的责任,而不需要依赖编程语言或操作系统,譬如Dekker算法、Peterson算法等,通常这种方式会有一定的性能开销和编程难度。 第二种是操作系统或编程语 阅读全文
posted @ 2020-06-02 13:49 元思 阅读(2306) 评论(0) 推荐(2)