cache是內(nèi)存還是外存 cache與內(nèi)存的區(qū)別?
cache與內(nèi)存的區(qū)別??jī)?nèi)存,內(nèi)存,用于輔助CPU輸入和輸出數(shù)據(jù)操作。緩存是一種特殊的存儲(chǔ)器。因?yàn)橹鞔鎯?chǔ)器不夠快,所以使用少量非??斓浅0嘿F的存儲(chǔ)器來(lái)加速緩存。這是緩存。兩者都是RAM中的數(shù)據(jù)。簡(jiǎn)而
cache與內(nèi)存的區(qū)別?
內(nèi)存,內(nèi)存,用于輔助CPU輸入和輸出數(shù)據(jù)操作。緩存是一種特殊的存儲(chǔ)器。因?yàn)橹鞔鎯?chǔ)器不夠快,所以使用少量非??斓浅0嘿F的存儲(chǔ)器來(lái)加速緩存。這是緩存。兩者都是RAM中的數(shù)據(jù)。簡(jiǎn)而言之,緩沖區(qū)即將寫(xiě)入磁盤(pán),而高速緩存則從磁盤(pán)讀取。Cached用于保存讀取的數(shù)據(jù)。重新讀取時(shí),如果命中(找到所需數(shù)據(jù)),請(qǐng)不要讀取硬盤(pán)。如果沒(méi)有命中,請(qǐng)讀取硬盤(pán)。數(shù)據(jù)將根據(jù)閱讀頻率進(jìn)行組織,最常閱讀的內(nèi)容將放在最容易找到的位置,不再閱讀的內(nèi)容將保留在后排,直到刪除為止。實(shí)際上,cache不是文件緩沖區(qū),而是塊緩沖區(qū),它是磁盤(pán)I/O操作的最小單位(在Linux中,通常是1KB)。這樣可以緩沖目錄、超級(jí)塊、其他文件系統(tǒng)的記錄數(shù)據(jù)和非文件系統(tǒng)的磁盤(pán)數(shù)據(jù)。如果緩存的大小是固定的,那么如果緩存太大就不好了,因?yàn)樗鼤?huì)使可用內(nèi)存太小,并導(dǎo)致交換操作(這也很慢)。為了最有效地使用真實(shí)內(nèi)存,Linux自動(dòng)使用所有空閑內(nèi)存作為緩存。當(dāng)程序需要更多內(nèi)存時(shí),它也會(huì)自動(dòng)減小緩沖區(qū)的大小。根據(jù)磁盤(pán)的讀寫(xiě)情況設(shè)計(jì)緩沖區(qū),集中了分散的寫(xiě)操作,減少了磁盤(pán)碎片和硬盤(pán)的重復(fù)尋道,提高了系統(tǒng)性能。Linux有一個(gè)守護(hù)進(jìn)程來(lái)定期清除緩沖區(qū)內(nèi)容(即寫(xiě)入磁盤(pán)),也可以通過(guò)sync命令手動(dòng)清除緩沖區(qū)。舉個(gè)例子:我有一個(gè)ext2u盤(pán)。我在里面放了一個(gè)3M的MP3,但是U盤(pán)上的燈不亮。過(guò)了一段時(shí)間(或手動(dòng)輸入同步),U盤(pán)上的指示燈開(kāi)始閃爍。卸載設(shè)備時(shí),緩沖區(qū)會(huì)被清除,因此有時(shí)卸載設(shè)備需要幾秒鐘。緩沖區(qū)由各個(gè)進(jìn)程分配,并由進(jìn)程和系統(tǒng)管理。它用于輸入隊(duì)列等方面。一個(gè)簡(jiǎn)單的例子是,一個(gè)進(jìn)程需要讀入多個(gè)字段。在完全讀入所有字段之前,進(jìn)程將先前讀入的字段保存在緩沖區(qū)中。緩存通常用于磁盤(pán)I/O請(qǐng)求。如果多個(gè)進(jìn)程要訪(fǎng)問(wèn)一個(gè)文件,則會(huì)將該文件放入緩存中,以便于下次訪(fǎng)問(wèn),從而提供系統(tǒng)性能。綜上所述,可以理解為緩存系統(tǒng)的管理,而緩存是由進(jìn)程和系統(tǒng)共同管理的。