elsdrium / note

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Jason note

##1.程序局部性

一個編寫良好的計算機程序通常具有程序的局部性,它更傾向於引用最近引用過的數據項,或者這個數據周圍的數據——前者是時間局部性,後者是空間局部性。現代操作系統的設計,從硬件到操作系統再到應用程序都利用了程序的局部性原理:硬件層,通過cache來緩存剛剛使用過的指令或者數據,來提交對內存的訪問效率。在操作系統級別,操作系統利用主存來緩存剛剛訪問過的磁盤塊;在應用層,web瀏覽器將最近引用過的文檔放在磁盤上,大量的web服務器將最近訪問的文檔放在前端磁盤上,這些緩存能夠滿足很多請求而不需要服務器的幹預。本文主要將的是硬件層次的程序局部性。

##2.處理器存儲體系

計算機體系的儲存層次從內到外依次是寄存器、cache(從一級、二級到三級)、主存、磁盤、遠程文件系統;從內到外,訪問速度依次降低,存儲容量依次增大。這個層次關係,可以用下面這張圖來表示:

About


Languages

Language:C 28.2%Language:C++ 27.3%Language:HTML 20.1%Language:Java 8.8%Language:Jupyter Notebook 8.5%Language:Python 1.7%Language:Makefile 1.3%Language:JavaScript 0.9%Language:Rust 0.7%Language:Shell 0.6%Language:Batchfile 0.3%Language:CMake 0.3%Language:Haskell 0.3%Language:Objective-C 0.2%Language:CSS 0.2%Language:Vim Script 0.1%Language:Scheme 0.1%Language:XS 0.1%Language:QMake 0.0%Language:Roff 0.0%Language:GLSL 0.0%Language:Assembly 0.0%Language:Perl 0.0%Language:M4 0.0%Language:Less 0.0%Language:Ruby 0.0%Language:Go 0.0%Language:PHP 0.0%Language:Rebol 0.0%Language:M 0.0%Language:Kotlin 0.0%Language:Erlang 0.0%Language:TeX 0.0%Language:SWIG 0.0%Language:AIDL 0.0%Language:GDB 0.0%Language:LLVM 0.0%Language:Lex 0.0%Language:Yacc 0.0%