作者TEPLUN (mihanami)
看板Grad-ProbAsk
标题[理工] C.S. design
时间Tue Sep 11 19:05:20 2018
https://i.imgur.com/lev7NIN.jpg
https://i.imgur.com/6dajYCU.jpg
https://i.imgur.com/pJaLugj.jpg
第六章看一看有点乱掉了...
有几个问题想请教
1.第一张图是C.S.design的表
洪逸说开关中断通常用於作业系统内部设计,这能理解,但是kernel层次使用软硬体方式
,并没有使用到Disable interrupt,那为何面包店演算法跟Test and set要用於kernel
层次?
2.本来以为号志如wait(S)的使用优点是不用写一堆,但图三是号志的制作的部分,洪逸
说Entry section的部分写面包店演算法或用Test and set的方式,但用这两种方法本身
不是就能避免不同process同时存取共享变数了吗?下面又何必再使用号志?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.137.185.91
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1536663922.A.FC5.html
1F:推 q79236: 号志主要的优点在於好用 只要一行程式码就可以完成共享变 09/11 22:24
2F:→ q79236: 数的互斥 相比起CS design好用的多 09/11 22:24
3F:→ TEPLUN: 回去翻了一下恐龙 好像也没看到在wait()上面又在包一层tes 09/12 09:20
4F:→ TEPLUN: t and set做entry的写法 09/12 09:20
5F:推 FRAXIS: Semaphore 的 wiki 网页上有写 disable interrupt 在 09/12 10:29
6F:→ FRAXIS: 就没办法使用 必须要使用 software/hardware 方式 09/12 10:29
7F:→ FRAXIS: 你写的 semphore 的 implementation 是假设有 atomic 变数 09/12 10:30
8F:→ FRAXIS: 当没有 atomic 变数时 就要用 software/hardware 方式 09/12 10:32
9F:→ FRAXIS: semphore 可以提供比 CS 更高层的 API 所以使用比较方便 09/12 10:33
10F:推 olen0622: 好怪的说法? 09/12 19:49