共享的兩種方式

共享有兩種,這裏的共享能夠理解爲複用,分爲時間上的複用和空間上的複用,時間上的複用的一個典型的例子就是分時系統分時使用cpu,cpu將全部時間分紅若干個段,每一個進程使用一段時間,而後讓出cpu,以後調度邏輯會挑選另一個進程來使用cpu的接下來的時間段;空間上的複用的一個典型的例子就是早期的多道程序設計的內存管理機制,那個時候沒有如今MMU的複雜邏輯,僅僅將物理內存分紅若干等分或者不等分的空間段,而後分給每一個進程一個,若是空間段比進程少就要涉及換入換出機制,這裏先不涉及換入換出,若是有換入換出了就說明這個內存段在進程生命週期內並非永久屬於該進程的,這就致使了必定的時間複用,這個一會再說,不考慮交換的話,每一個進程就能夠在被分到的內存空間段中進行僅僅屬於本身的編址邏輯,好比全部進程都將本身內存段的開始定位爲邏輯地址0,而後順序平坦編址。緩存

更晚的時候的請求調頁機制其實是空間複用和時間複用的混合,某一個時刻是空間複用,可是在更長的時間段上看,一個內存空間段並非永久的屬於一個進程,這就是時間複用了。實際上請求調頁的複雜性就在於它實現了公平性,在很細的粒度上實現了公平性,若是不是爲了這種公平,徹底沒有必要這麼複雜,原始的整個進程的換入換出已經很好了,只是那會形成很大的交換延遲,相反若是粒度過於細,還會形成抖動,所以請求調頁機制在公平性和效率之間做了折中,這就是工做集機制,固然這只是理論,實際的操做系統內核實現中LRU的用法更加廣泛些,而且lru鏈表加上兩個閥值而不是一個閥值,有效地防止了抖動。ide

在現實生活中,時分複用和空分複用使用的也是很普遍的,畢竟理論就是來源於真實的世界的若是共享的是一個資源,那麼就是空分複用,若是共享的是一個流程,那麼就是時分複用,固然流水線也是一種提升效率的機制,它在一個流程內部分爲了好幾個流程,有效地調動了全部的流程,使得任何細微流程不至於空閒,流水線是爲了防止部件空閒的,是一個細粒度的機制,然而問題是雖然部件不空閒了,可是數據卻再也不是一步到位了,而要從流水線的一節流到下一節,確定影響了單品加工效率,這個怎麼解決呢?這就是緩存的做用。操作系統

相關文章
相關標籤/搜索