Linux中Swap(即:交換分區(qū)),類(lèi)似于Windows的虛擬內(nèi)存,就是當(dāng)內(nèi)存不足的時(shí)候,把一部分硬盤(pán)空間虛擬成內(nèi)存使用,從而解決內(nèi)存容量不足的情況。Android是基于Linux的操作系統(tǒng),所以也可以使用Swap分區(qū)來(lái)提升系統(tǒng)運(yùn)行效率。
請(qǐng)問(wèn)開(kāi)啟swap虛擬內(nèi)存好不好?
把存儲(chǔ)卡上建立一個(gè)交換文件用于存儲(chǔ)臨時(shí)數(shù)據(jù)。也即是在同時(shí)運(yùn)行多個(gè)程序時(shí),一旦物理內(nèi)存不夠的時(shí)候,將常駐內(nèi)存的一些不常用進(jìn)程緩存入SWAP(虛擬內(nèi)存)中,置換出內(nèi)存空間給新開(kāi)啟的進(jìn)程運(yùn)行,等到需要的時(shí)候...
請(qǐng)問(wèn)大家手表手機(jī)swap哪款更好用?
您好,英國(guó)SWAP安卓雙核手表手機(jī)還不錯(cuò),真正高清安卓4.04智能機(jī),有兩個(gè)版本,EC308是2G網(wǎng)絡(luò)版(只能用聯(lián)通和移動(dòng)的GSM電話卡)、EC309是3G網(wǎng)絡(luò)版(可以用聯(lián)通WCDMA電話卡、也可以用...
-作為RAM使用SD記憶卡(SWAP RAM/SWAP內(nèi)存)
-交換文件內(nèi)存擴(kuò)展,最高可達(dá)2.5 GB
-分頁(yè)通常的性能下降時(shí)不會(huì)出現(xiàn)SD卡
-小工具為PNP交換(交換ON/OFF掉)
-內(nèi)存的詳細(xì)信息及分析
-自動(dòng)運(yùn)行
-Swappiness核心參數(shù)設(shè)置
-萬(wàn)無(wú)一失使用容易(1鍵優(yōu)化,自動(dòng)計(jì)算)。
mov:片內(nèi)ram傳送
movx:片外ram傳送
movc:rom傳送
inc:加1
dec:減1
mul:乘法
div:除法
xch:交換(和a交換)
swap:a內(nèi)半字節(jié)交換
add:不帶進(jìn)位加
addc:帶進(jìn)位加
subb:帶進(jìn)位減
daa:調(diào)處
在單處理機(jī)環(huán)境中可以使用特定的原子級(jí)匯編指令swap和test_and_set實(shí)現(xiàn)進(jìn)程互斥,(Swap指令:交換兩個(gè)內(nèi)存單元的內(nèi)容;test_and_set指令取出內(nèi)存某一單元(位)的值,然后再給該單元(位)賦一個(gè)新值,關(guān)于為何這兩條指令能實(shí)現(xiàn)互斥我們不在贅述,讀者可以了解其算法) 這些指令涉及對(duì)同一存儲(chǔ)單元的兩次或兩次以上操作,這些操作將在幾個(gè)指令周期內(nèi)完成,但由于中斷只能發(fā)生在兩條機(jī)器指令之間,而同一指令內(nèi)的多個(gè)指令周期不可中斷,從而保證swap指令或test_and_set指令的執(zhí)行不會(huì)交叉進(jìn)行.
但在多處理機(jī)環(huán)境中情況有所不同,例如test_and_set指令包括“取”、“送”兩個(gè)指令周期,兩個(gè)CPU執(zhí)行test_and_set(lock)可能發(fā)生指令周期上的交叉,假如lock初始為0, CPU1和CPU2可能分別執(zhí)行完前一個(gè)指令周期并通過(guò)檢測(cè)(均為0),然后分別執(zhí)行后一個(gè)指令周期將lock設(shè)置為1,結(jié)果都取回0作為判斷臨界區(qū)空閑的依據(jù),從而不能實(shí)現(xiàn)互斥。
為在多CPU環(huán)境中利用test_and_set指令實(shí)現(xiàn)進(jìn)程互斥,硬件需要提供進(jìn)一步的支持,以保證test_and_set指令執(zhí)行的原子性. 這種支持多以“鎖總線”(bus locking)的形式提供的,由于test_and_set指令對(duì)內(nèi)存的兩次操作都需要經(jīng)過(guò)總線,在執(zhí)行test_and_set指令之前鎖住總線,在執(zhí)行test_and_set指令后開(kāi)放總線,即可保證test_and_set指令執(zhí)行的原子性,用法如下:
算法4-6:多處理機(jī)互斥算法(自旋鎖算法)
do{
b=1;
while(b){
lock(bus);
b = test_and_set(&lock);
unlock(bus);
}
臨界區(qū)
lock = 0;
其余部分
}while(1)
總之,自旋鎖是一種對(duì)多處理器相當(dāng)有效的機(jī)制,而在單處理器非搶占式的系統(tǒng)中基本上沒(méi)有作用。自旋鎖在SMP系統(tǒng)中應(yīng)用得相當(dāng)普遍。在許多SMP系統(tǒng)中,允許多個(gè)處理機(jī)同時(shí)執(zhí)行目態(tài)程序,而一次只允許一個(gè)處理機(jī)執(zhí)行操作系統(tǒng)代碼,利用一個(gè)自旋鎖可以很容易實(shí)現(xiàn)這種控制.一次只允許一個(gè)CPU執(zhí)行核心代碼并發(fā)性不夠高,若期望核心程序在多CPU之間的并行執(zhí)行,將核心分為若干相對(duì)獨(dú)立的部分,不同的CPU可以同時(shí)進(jìn)入和執(zhí)行核心中的不同部分,實(shí)現(xiàn)時(shí)可以為每個(gè)相對(duì)獨(dú)立的區(qū)域設(shè)置一個(gè)自旋鎖.