借鉴网上解答,加上自己的一些修改完善,记录下自己学习多核编程和并发结构的课,欢迎交流,指正。
笔记:1.Any deadlock-free Lock algorithm re quires allocating and then reading or writing at least n distinct locations in the worst case.
2.bakery算法思想:类似银行的取票机排队服务,先来先服务。
3.filter算法思想:线程多没关系,在外面候着,分层排队,依次进入。
4.peterson算法思想:牺牲自我,成全他人。
习题:
10.互斥是通过每个线程从自己的角度得到global的关于CS的owner的一致看法实现的。根据2.8的证明,锁的实现必须有写的动作,如果第一条指令是读,且只依据这一条指令是不能区分先后的;如果写了之后没有读,线程不能得到Glogbal信息,和没写一样;如果又写又读,并得到某些顺序则它实际就是个doorway。
12. 假设线程A在第k层停住,只要有>2(除A外)个线程进入第k层,到得早的线程必然有 victim != me。