作者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://www.ptt.cc/bbs/Grad-ProbAsk/M.1536663922.A.FC5.html
推 q79236: 號誌主要的優點在於好用 只要一行程式碼就可以完成共享變 09/11 22:24
→ q79236: 數的互斥 相比起CS design好用的多 09/11 22:24
→ TEPLUN: 回去翻了一下恐龍 好像也沒看到在wait()上面又在包一層tes 09/12 09:20
→ TEPLUN: t and set做entry的寫法 09/12 09:20
推 FRAXIS: Semaphore 的 wiki 網頁上有寫 disable interrupt 在 09/12 10:29
→ FRAXIS: 就沒辦法使用 必須要使用 software/hardware 方式 09/12 10:29
→ FRAXIS: 你寫的 semphore 的 implementation 是假設有 atomic 變數 09/12 10:30
→ FRAXIS: 當沒有 atomic 變數時 就要用 software/hardware 方式 09/12 10:32
→ FRAXIS: semphore 可以提供比 CS 更高層的 API 所以使用比較方便 09/12 10:33
推 olen0622: 好怪的說法? 09/12 19:49