Recitation 4
-
Use your own word to describe “end-to-end” argument.
底層的核心功能對于底層來說才是最重要的,如果底層的功能太復(fù)雜超過了它的核心功能,或許不需要把太復(fù)雜的功能放在底層實現(xiàn),而放在由底層建立起來的更高層來實現(xiàn),這樣,讓底層專注于其核心功能,反而可能會使得整個系統(tǒng)更快。
-
Give at least three cases that are suitable to use this principle.
現(xiàn)在網(wǎng)絡(luò)傳輸?shù)母鞣N數(shù)據(jù)加密算法都是在高層實現(xiàn)的,加密算法類型多,邏輯復(fù)雜,底層實現(xiàn)代價太高。
新進(jìn)先出的傳輸機(jī)制,需要使用到高層來進(jìn)行信息重組。
消息的確認(rèn)報文,最好由高層來完成。
-
Give at least three cases that are NOT suitable to use this principle.
底層本來就是可靠的,比如一些高精度的設(shè)備。它們已經(jīng)在底層電路保證了可靠性,就不需要在高層來管理這些。
有資金有能力能在底層實現(xiàn)可靠性的,比如航空領(lǐng)域和金融領(lǐng)域,因它們行業(yè)的特殊性,必須要在底層實現(xiàn)可靠性。
需要同步性而不是準(zhǔn)確性,語音傳輸,同步性的需求比準(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管理,完全限定了一個文件的最大大小,這樣的處理或許不太靈活。從這個角度看,file system的功能超出了其核心功能。inode的管理或許可以從其中分離出來。
此外,文件系統(tǒng)還有錯誤恢復(fù)功能,通過日志來備份,這在一定程度上影響了系統(tǒng)的性能,而且對于文件系統(tǒng)來說并不是必須的。
-
[Discussion] The same question, for the OS.Take your time preparing for this.
微內(nèi)核
內(nèi)存僅僅實現(xiàn)最小集合的抽象,而其它一些多余的模塊則由第三方來提供,運(yùn)行在用戶態(tài)。這樣可大大減小內(nèi)核中存在的bug,也可以將模塊的錯誤限制在那個模塊中,它的錯誤不會影響到內(nèi)核,提高容錯性。以及由于某些原本運(yùn)行在內(nèi)核態(tài)的模塊現(xiàn)在運(yùn)行在用戶態(tài),減少了上下文切換,在某種程度上,速度得到提升。