Recitation 4
-
Use your own word to describe “end-to-end” argument.
底層的核心功能對(duì)于底層來(lái)說(shuō)才是最重要的芥挣,如果底層的功能太復(fù)雜超過(guò)了它的核心功能鸣奔,或許不需要把太復(fù)雜的功能放在底層實(shí)現(xiàn)题画,而放在由底層建立起來(lái)的更高層來(lái)實(shí)現(xiàn)尘吗,這樣,讓底層專(zhuān)注于其核心功能锄俄,反而可能會(huì)使得整個(gè)系統(tǒng)更快。
-
Give at least three cases that are suitable to use this principle.
現(xiàn)在網(wǎng)絡(luò)傳輸?shù)母鞣N數(shù)據(jù)加密算法都是在高層實(shí)現(xiàn)的勺拣,加密算法類(lèi)型多奶赠,邏輯復(fù)雜,底層實(shí)現(xiàn)代價(jià)太高药有。
新進(jìn)先出的傳輸機(jī)制毅戈,需要使用到高層來(lái)進(jìn)行信息重組。
消息的確認(rèn)報(bào)文愤惰,最好由高層來(lái)完成苇经。
-
Give at least three cases that are NOT suitable to use this principle.
底層本來(lái)就是可靠的,比如一些高精度的設(shè)備宦言。它們已經(jīng)在底層電路保證了可靠性塑陵,就不需要在高層來(lái)管理這些。
有資金有能力能在底層實(shí)現(xiàn)可靠性的蜡励,比如航空領(lǐng)域和金融領(lǐng)域令花,因它們行業(yè)的特殊性,必須要在底層實(shí)現(xiàn)可靠性凉倚。
需要同步性而不是準(zhǔn)確性兼都,語(yǔ)音傳輸,同步性的需求比準(zhǔn)確性要大稽寒,不能為了準(zhǔn)確性而造成大的延遲扮碧。
-
[Discussion] Consider the design of the file system based on inode (as we learn from class and the lab ). Which part(s) of the design do you think can be removed? In another word, which part(s) of the design is(are) not flexible enough and should be implemented by the user? (Hint: don’t be limited by the FS API.)
inode的屬性完全由file system管理,完全限定了一個(gè)文件的最大大小杏糙,這樣的處理或許不太靈活慎王。從這個(gè)角度看,file system的功能超出了其核心功能宏侍。inode的管理或許可以從其中分離出來(lái)赖淤。
此外,文件系統(tǒng)還有錯(cuò)誤恢復(fù)功能谅河,通過(guò)日志來(lái)備份咱旱,這在一定程度上影響了系統(tǒng)的性能,而且對(duì)于文件系統(tǒng)來(lái)說(shuō)并不是必須的绷耍。
-
[Discussion] The same question, for the OS.Take your time preparing for this.
微內(nèi)核
內(nèi)存僅僅實(shí)現(xiàn)最小集合的抽象吐限,而其它一些多余的模塊則由第三方來(lái)提供,運(yùn)行在用戶態(tài)褂始。這樣可大大減小內(nèi)核中存在的bug诸典,也可以將模塊的錯(cuò)誤限制在那個(gè)模塊中,它的錯(cuò)誤不會(huì)影響到內(nèi)核崎苗,提高容錯(cuò)性狐粱。以及由于某些原本運(yùn)行在內(nèi)核態(tài)的模塊現(xiàn)在運(yùn)行在用戶態(tài)赘阀,減少了上下文切換,在某種程度上脑奠,速度得到提升基公。