深刻理解計算機系統(1.2)------存儲設備

  上一章咱們講解了hello world 程序在計算機系統中是如何運行的。 hello 程序的機器指令最初是存放在磁盤上的,當程序加載時,他們被複制到主存;當處理器運行程序的時候,指令又從主存複製處處理器。類似的,數據串"Hello World" 初始時在磁盤上,而後複製到主存,最後從主存上覆制到顯示設備。程序員

  從程序員的角度來看,上面的複製就是開銷,減緩了程序的真正工做。所以如何將這些複製操做盡快完成則是系統設計者的一個主要目標。緩存

一、從磁盤加載可執行文件到主存

   

 

 二、將輸出字符串從內存寫到顯示器

   

  

三、高速緩存存儲器

  那麼如何減小這種由數據複製所引發的開銷呢?框架

  根據機械原理,較大的存儲設備比 較小的存儲設備運行的慢,而快速設備的造價遠高於同類的低速設備。相似的,一個典型的寄存器文件只存儲幾百字節的信息,而主存裏能夠存放幾十億字節。然而處理器從寄存器文件中讀數據的速度要比從主存中讀取幾乎快100倍。並且隨着半導體技術的進步,這二者差距還在加大。所以加快處理器的運行速度比加快主存的運行速度要容易和便宜的多。針對這種處理器和主存之間的差別,系統設計者採用了更小、更快的存儲設備,也就是高速緩存存儲器(簡稱高速緩存),做爲暫時的集結區域,用來存放處理器近期可能會須要的信息,相似於Java Web 框架的緩存機制。以下圖:性能

  

  

四、存儲設備的金字塔結構 

   在處理器和一個又大又慢的設備(好比主存)之間插入一個更小更快的存儲設備(例如高速緩存)的想法已是一個廣泛的觀念。實際上,每一個計算機系統中的存儲設備都被組織成了一個存儲器層次結構。以下圖所示:操作系統

  

 

   存儲器層次結構的主要思想是一層上的存儲器做爲低一層存儲器的高速緩存,所以,寄存器文件就是L1的高速緩存,L1是L2的高速緩存,L3是主存的高速緩存,而主存又是磁盤的高速緩存。設計

  正如能夠運用不一樣的高速緩存的知識來提升程序性能同樣,程序員一樣能夠利用對整個存儲器層次結構的理解來提升程序性能。這個後面咱們會詳細講解。blog

 

 

 五、本章總結

   本章主要介紹了高速緩存的產生的原理以及存儲器設備的層次結構,如何理解整個存儲器的層次結構,對於提升程序性能有很大的幫助。下一章將講解操做系統的抽象概念。內存

相關文章
相關標籤/搜索