linux缓存代码,Linux使用的缓存
Linux使用的緩存
6.7.1 Linux使用的緩存
不管在硬件設計還是軟件設計中,高速緩存是獲得高性能的常用手段。Linux 使用了多種和內存管理相關的高速緩存。
1. 緩沖區高速緩存:
緩沖區高速緩存中包含了由塊設備使用的數據緩沖區。這些緩沖區中包含了從設備中讀取的數據塊或寫入設備的數據塊。緩沖區高速緩存由設備標識號和塊標號索引,因此可以快速找出數據塊。如果數據能夠在緩沖區高速緩存中找到,則系統就沒有必要在物理塊設備上進行實際的讀操作。
內核為每個緩沖區維護很多信息以有助于緩和寫操作,這些信息包括一個“臟(dirty)”位,表示內存中的緩沖區已被修改,必須寫到磁盤;還包括一個時間標志,表示緩沖區被刷新到磁盤之前已經在內存中停留了多長時間。因為緩沖區的有關信息被保存在緩沖區首部,所以,這些數據結構連同用戶數據本身的緩沖區都需要維護。
緩沖區高速緩存的大小可以變化。當需要新緩沖區而現在又沒有可用的緩沖區時,就按需分配頁面。當空閑內存變得不足時,例如上一節看到的情況,就釋放緩沖區并反復使用相應的頁面。
2. 頁面高速緩存
頁面高速緩存是頁面I/O操作訪問數據所使用的磁盤高速緩存。我們在文件系統會看到,read( )、write( )和mmap( )系統調用對常規文件的訪問都是通過頁面高速緩存來完成的。因為頁面I/O操作要傳輸整頁數據,因此高速緩存中所保留的信息單元是一個整頁面。一個頁面包含的數據未必是物理上相鄰的磁盤塊,因此就不能使用設備號和塊號來標識頁面。相反,頁面高速緩存中一個頁面的標識是通過文件的索引節點和文件中的偏移量達到的。
與頁面高速緩存有關的操作主要有三種:當訪問的文件部分不在高速緩存中時增加一頁面,當高速緩存變得太大時刪除一頁面,以及查找一個給定文件偏移量所在的頁面。
3.交換高速緩存
只有修改后的(臟)頁面才保存在交換文件中。修改后的頁面寫入交換文件后,如果該頁面再次被交換但未被修改時,就沒有必要寫入交換文件,相反,只需丟棄該頁面。交換高速緩存實際包含了一個頁面表項鏈表,系統的每個物理頁面對應一個頁面表項。對交換出的頁面,該頁面表項包含保存該頁面的交換文件信息,以及該頁面在交換文件中的位置信息。如果某個交換頁面表項非零,則表明保存在交換文件中的對應物理頁面沒有被修改。如果這一頁面在后續的操作中被修改,則處于交換緩存中的頁面表項被清零。 Linux 需要從物理內存中交換出某個頁面時,它首先分析交換緩存中的信息,如
相關文檔:
本文將描述線程的一個比較重要的一方面:線程私有數據,如下代碼:
#include
#include
#include
pthread_key_t kKey = 0;
void * ThreadProc(void* arg)
{
char* a = (char*)(arg);
sleep(2);
pthread_setspecific(kKey, a);
......
Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盤操作、文件存取、目錄操作、進程管理、文件權限設定等。所以,在Linux系統上工作離不開使用系統提供的命令。要想真正理解Linux系統,就必須從Linux命令學起,通過基礎的命令學習可以進一步理解Linux系統。
不同Linux發行版的命令數量不一樣,但Linux發行版� ......
/*
socket select模型,服務端
絕大多數注釋自己寫的,參考man
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include &l ......
什么是運行級別
運行級就是操作系統當前正在運行的功能級別。
這個級別從1到6 ,
具有不同的功能。
這些級別在/etc/inittab文件里指定。
這個文件是init程序尋找的主要文件,最先運行的服務是那些放在/etc/rc.d 目錄下的文件。
不同的運行級定義如下:(可以參考Linux里面的/etc/inittab)
# 缺省的運行級,RHS� ......
從Linux 2.6起引入了一套新的驅動管理和注冊機制:Platform_device和Platform_driver。
Linux中大部分的設備驅動,都可以使用這套機制, 設備用Platform_device表示,驅動用Platform_driver進行注冊。
Linux platform driver機制和傳統的device driver 機制(通過driver_register函數進行注冊)相比,一個十分明顯的� ......
總結
以上是生活随笔為你收集整理的linux缓存代码,Linux使用的缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python视频网站源码_随便撸源码分享
- 下一篇: PHP-Windows下搭建PHP-MS