[理工] C.S. design

作者: TEPLUN (mihanami)   2018-09-11 19:05:20
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同時存取共享變數了嗎?下面又何必再使用號誌?
作者: q79236 (昕翔)   2018-09-11 22:24:00
號誌主要的優點在於好用 只要一行程式碼就可以完成共享變數的互斥 相比起CS design好用的多
作者: TEPLUN (mihanami)   2018-09-12 09:20:00
回去翻了一下恐龍 好像也沒看到在wait()上面又在包一層test and set做entry的寫法
作者: FRAXIS (喔喔)   2018-09-12 10:29:00
Semaphore 的 wiki 網頁上有寫 disable interrupt 在就沒辦法使用 必須要使用 software/hardware 方式你寫的 semphore 的 implementation 是假設有 atomic 變數當沒有 atomic 變數時 就要用 software/hardware 方式semphore 可以提供比 CS 更高層的 API 所以使用比較方便
作者: olen0622 (hong)   2018-09-12 19:49:00
好怪的說法?

Links booklink

Contact Us: admin [ a t ] ucptt.com