ssuu11221166的的專(zhuān)專(zhuān)欄欄 《《LLiinnuuxx命命令令行行與與sshheellll腳腳本本編編程程大大全全》》 第第一一、、 章章 學(xué)學(xué)習(xí)習(xí)筆筆記記 分類(lèi): Linux命令行與shell腳本編程大全 2012-11-22 21:50 221人閱讀 評(píng)論 (0) 收藏 舉報(bào) 第第一一章章::初初識(shí)識(shí)LLiinnuuxx sshheellll LLiinnuuxx內(nèi)內(nèi)核核負(fù)負(fù)責(zé)責(zé)以以下下44個(gè)個(gè)主主要要功功能能:: 11..系系統(tǒng)統(tǒng)內(nèi)內(nèi)存存管管理理 22..軟軟件件程程序序管管理理 33..硬硬件件設(shè)設(shè)備備管管理理 44..文文件件系系統(tǒng)統(tǒng)管管理理 11..系系統(tǒng)統(tǒng)內(nèi)內(nèi)存存管管理理 內(nèi)內(nèi)核核不不僅僅管管理理服服務(wù)務(wù)器器上上的的可可用用物物理理內(nèi)內(nèi)存存,,還還可可以以創(chuàng)創(chuàng)建建和和管管理理虛虛擬擬內(nèi)內(nèi)存存 內(nèi)內(nèi)核核通通過(guò)過(guò)硬硬盤(pán)盤(pán)上上的的存存儲(chǔ)儲(chǔ)空空間間來(lái)來(lái)實(shí)實(shí)現(xiàn)現(xiàn)虛虛擬擬內(nèi)內(nèi)存存,,這這塊塊區(qū)區(qū)域域稱(chēng)稱(chēng)為為交交換換空空間間 ((sswwaapp ssppaaccee)) 內(nèi)內(nèi)核核不不斷斷的的在在交交換換空空間間和和實(shí)實(shí)際際物物理理內(nèi)內(nèi)存存之之間間反反復(fù)復(fù)交交換換虛虛擬擬內(nèi)內(nèi)存存存存儲(chǔ)儲(chǔ)單單元元的的內(nèi)內(nèi)容容 (這使得系統(tǒng)以為它擁有比物 理內(nèi)存更多的可用內(nèi)存) 下面是書(shū)中的圖片 (實(shí)際上和書(shū)中有點(diǎn)出入,為了省事),讓我有些不解關(guān)于上面的圖讓我有些迷惑,所以我就把虛擬內(nèi)存和交換空間作為關(guān)鍵詞查了一下 中文wiki上的解釋?zhuān)禾摂M內(nèi)存 (查看:Linux操作系統(tǒng)下虛擬內(nèi)存實(shí)現(xiàn)) 也就是說(shuō)linux命令大全,交換空間實(shí)現(xiàn)了虛擬內(nèi)存。
虛擬內(nèi)存存在于交換空間之上,我的理解是這樣的1 內(nèi)內(nèi)存存存存儲(chǔ)儲(chǔ)單單元元會(huì)會(huì)被被按按組組分分成成很很多多塊塊,,這這些些塊塊稱(chēng)稱(chēng)為為頁(yè)頁(yè)面面 ((ppaaggee)) 內(nèi)內(nèi)核核會(huì)會(huì)將將每每個(gè)個(gè)內(nèi)內(nèi)存存頁(yè)頁(yè)面面放放在在物物理理內(nèi)內(nèi)存存或或者者交交換換空空間間。。內(nèi)內(nèi)核核會(huì)會(huì)維維護(hù)護(hù)一一個(gè)個(gè)內(nèi)內(nèi)存存頁(yè)頁(yè)面面表表,,指指明明那那些些頁(yè)頁(yè)面面位位于于物物理理 內(nèi)內(nèi)存存,,哪哪些些頁(yè)頁(yè)面面位位于于交交換換空空間間 內(nèi)內(nèi)核核會(huì)會(huì)記記錄錄哪哪些些頁(yè)頁(yè)面面正正在在使使用用,,并并 自自動(dòng)動(dòng)把把一一段段時(shí)時(shí)間間未未訪訪問(wèn)問(wèn)的的內(nèi)內(nèi)存存頁(yè)頁(yè)面面復(fù)復(fù)制制到到交交換換空空間間區(qū)區(qū)域域 ((稱(chēng)稱(chēng)之之為為換換 出出,,sswwaappppiinngg oouutt)),,即即使使還還有有可可用用內(nèi)內(nèi)存存 當(dāng)當(dāng)程程序序要要訪訪問(wèn)問(wèn)一一個(gè)個(gè)已已被被喚喚出出的的內(nèi)內(nèi)存存頁(yè)頁(yè)面面時(shí)時(shí),,內(nèi)內(nèi)核核必必須須從從物物理理內(nèi)內(nèi)存存喚喚出出另另外外一一個(gè)個(gè)內(nèi)內(nèi)存存頁(yè)頁(yè)面面讓讓出出空空間間,,然然后后從從 交交換換空空間間換換入入請(qǐng)請(qǐng)求求的的頁(yè)頁(yè)面面 ((sswwaappppiinngg iinn))。。這這個(gè)個(gè)過(guò)過(guò)程程使使得得運(yùn)運(yùn)行行中中的的進(jìn)進(jìn)程程變變慢慢 查查看看//pprroocc//mmeemmiinnffoo文文件件可可以以看看到到虛虛擬擬內(nèi)內(nèi)存存的的當(dāng)當(dāng)前前狀狀態(tài)態(tài) cat /proc/meminfo MemTotal: 3954168 kB MemFree: 454136 kB Buffers: 78916 kB Cached: 1120528 kB SwapCached: 17144 kB Active: 1879656 kB Inactive: 1367204 kB Active(anon): 1569708 kB Inactive(anon): 681008 kB Active(file): 309948 kB Inactive(file): 686196 kB Unevictable: 52 kB Mlocked: 52 kB SwapTotal: 2899696 kB SwapFree: 2844256 kB …… MemTotal總內(nèi)存 MemFree空閑內(nèi)存 SwapTotal虛擬內(nèi)存 默默認(rèn)認(rèn)情情況況下下,,運(yùn)運(yùn)行行在在LLiinnuuxx系系統(tǒng)統(tǒng)上上的的每每個(gè)個(gè)進(jìn)進(jìn)程程都都有有各各 自自的的內(nèi)內(nèi)存存頁(yè)頁(yè)面面,,進(jìn)進(jìn)程程不不能能訪訪問(wèn)問(wèn)其其他他進(jìn)進(jìn)程程正正在在使使用用的的內(nèi)內(nèi)存存 頁(yè)頁(yè)面面2 用用戶(hù)戶(hù)進(jìn)進(jìn)程程不不能能訪訪問(wèn)問(wèn)內(nèi)內(nèi)核核進(jìn)進(jìn)程程使使用用的的內(nèi)內(nèi)存存 為為了了方方便便共共享享數(shù)數(shù)據(jù)據(jù),,可可以以創(chuàng)創(chuàng)建建一一些些共共享享內(nèi)內(nèi)存存頁(yè)頁(yè)面面,,多多個(gè)個(gè)進(jìn)進(jìn)程程可可在在同同一一塊塊共共用用內(nèi)內(nèi)存存區(qū)區(qū)域域進(jìn)進(jìn)行行讀讀取取和和寫(xiě)寫(xiě)入入操操作作 內(nèi)內(nèi)核核負(fù)負(fù)責(zé)責(zé)維維護(hù)護(hù)和和管管理理這這塊塊共共用用內(nèi)內(nèi)存存區(qū)區(qū)域域并并控控制制每每個(gè)個(gè)進(jìn)進(jìn)程程訪訪問(wèn)問(wèn)這這塊塊共共享享區(qū)區(qū)域域 iippccss 作作用用::查查看看系系統(tǒng)統(tǒng)上上的的當(dāng)當(dāng)前前內(nèi)內(nèi)存存共共享享頁(yè)頁(yè)面面 $ iippccss --mm Shared Memory Segments key shmid owner perms bytes nattch status 0x00000000 65536 suzhaoqian 600 393216 2 dest 0x00000000 98305 suzhaoqian 600 393216 2 dest 0x00000000 131074 suzhaoqian 600 393216 2 dest 0x00000000 163843 suzhaoqian 600 393216 2 dest 0x00000000 196612 suzhaoqian 600 393216 2 dest 0x00000000 229381 suzhaoqian 600 393216 2 dest …… 每每個(gè)個(gè)共共享享內(nèi)內(nèi)存存段段都都有有個(gè)個(gè)所所有有者者,,是是創(chuàng)創(chuàng)建建它它的的用用戶(hù)戶(hù) 每每個(gè)個(gè)段段也也都都有有標(biāo)標(biāo)準(zhǔn)準(zhǔn)的的LLiinnuuxx權(quán)權(quán)限限設(shè)設(shè)置置來(lái)來(lái)設(shè)設(shè)定定其其他他用用戶(hù)戶(hù)是是否否可可以以訪訪問(wèn)問(wèn)該該段段 22..軟軟件件程程序序管管理理 一一些些LLiinnuuxx發(fā)發(fā)行行版版使使用用一一個(gè)個(gè)表表來(lái)來(lái)管管理理在在系系統(tǒng)統(tǒng)開(kāi)開(kāi)機(jī)機(jī)時(shí)時(shí)要要啟啟動(dòng)動(dòng)的的進(jìn)進(jìn)程程。