下面兩個函數(shù)返回page指針: alloc_pages(gfp_mask,order); alloc_page(gfp_mask); 下面幾個函數(shù)返回線性地址: __get...

下面兩個函數(shù)返回page指針: alloc_pages(gfp_mask,order); alloc_page(gfp_mask); 下面幾個函數(shù)返回線性地址: __get...
tasklet:調(diào)度一個tasklet,表明我們只是希望內(nèi)核選擇某個其后的時間來執(zhí)行調(diào)度的函數(shù)昧识。與定時器類 似轰传,tasklet也會在“軟件中斷”上下文以原子模...
內(nèi)核定時器可用來在未來的某個時間點(基于時鐘滴答)調(diào)度執(zhí)行的某個函數(shù)幔嫂。 當(dāng)定時器運行時辆它,調(diào)度定時器的進程可能正在休眠或在其他處理器上執(zhí)行,或干脆已經(jīng)退出履恩。 定時器運行在軟中斷...
異步通知:poll此類方法是采用輪詢機制實現(xiàn)锰茉,有時不算一個好方法。而通過異步通知切心,應(yīng)用程序可以在數(shù)據(jù)可用時收到一個信號飒筑,而不需要不停得使用輪詢來關(guān)注數(shù)據(jù)。 異步通知的實現(xiàn): ...
非堵塞型I/O:當(dāng)數(shù)據(jù)不可用時绽昏,進程調(diào)用read或write系統(tǒng)調(diào)用時协屡,進程不會堵塞,會立即返回而涉,即使現(xiàn)在沒有數(shù)據(jù)可讀或者可寫著瓶。 非堵塞型I/O分為 兩種:顯示和隱式的联予。 顯...
堵塞型I/O:當(dāng)數(shù)據(jù)不可用時啼县,如果進程調(diào)用read或write系統(tǒng)調(diào)用時,此時會造成進程的堵塞沸久,當(dāng)數(shù)據(jù)傳輸完成后季眷,再返回進程。 休眠的兩個規(guī)則: 永遠不要在原子上下文中休眠卷胯。...
首先32位linux內(nèi)核(2.6.32)中線性地址(虛擬地址)分為兩塊: 3G~4G為內(nèi)核地址空間 其余為進程地址 內(nèi)核總共占據(jù)物理內(nèi)存1G子刮,分為3部分: DMA(0~15M...
對我們的塊驅(qū)動程序的參數(shù)進行設(shè)置(磁頭,柱面窑睁,扇區(qū)/柱面)挺峡,通過對fosp中的getgeo成員進行賦值: static struct block_device_operati...
上一節(jié)給出了一個塊驅(qū)動程序的框架。其中 static struct request_queue *simp_blkdev_queue; 這個結(jié)構(gòu)很重要,我們將它的處理函數(shù)設(shè)置...
這個是對CU上OstrichFly的“寫一個塊設(shè)備驅(qū)動“文章的讀書筆記担钮。 首先建立一個”常規(guī)”的塊驅(qū)動程序: 為設(shè)備申請一塊連續(xù)的內(nèi)存橱赠,作為磁盤: uns...
第17章 回收頁框 頁框回收算法 內(nèi)存及磁盤高速緩存抓取了那么多的頁框但從未釋放任何頁框。因此箫津,遲早所有的空閑內(nèi)存將被分配給進程和高速緩存狭姨。Linux內(nèi)核的頁框回收算法(pa...
第八章 內(nèi)存管理 本章通過三部分內(nèi)容描述內(nèi)核給自己動態(tài)分配內(nèi)存: 頁框處理 ...
第二章 內(nèi)存尋址 內(nèi)存地址 內(nèi)存地址分為三種:邏輯地址(logical address)(段+偏移量) 線性地址(linear ad...