哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

探究slab在內(nèi)核內(nèi)存管理和用戶態(tài)Memcached的雙重存在

B4Pb_gh_6fde77c ? 來源:Linux閱碼場 ? 作者: 宋寶華 ? 2021-08-13 14:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

很多基礎(chǔ)的概念,將跨越軟件的層次而存在。比如slab,對于內(nèi)核人員,我們都知道slab是buddy之上的一層。

因為buddy作為Linux內(nèi)核最底層的內(nèi)存管理器,它分配1頁,2頁,4頁,2^n頁,但是作為內(nèi)核的堆用戶本身,經(jīng)常只是調(diào)用kmalloc()申請一個小內(nèi)存,或者調(diào)用kmem_cache_alloc()申請一個數(shù)據(jù)結(jié)構(gòu),2^n頁給它,會形成大量碎片浪費。所以slab找buddy要了2^n頁后,內(nèi)部切割為同樣size的object,再給kmalloc和kmem_cache_alloc()拿走。

697d87de-fbba-11eb-9bcf-12bb97331649.png

它的邏輯如下:

6991d324-fbba-11eb-9bcf-12bb97331649.png

這樣一種軟件本質(zhì)意義上的需求,不會因為只是內(nèi)核就需要。比如同樣的slab算法,也被著名的用戶態(tài)軟件Memcached需要著。

Memcached是一種分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web等應(yīng)用以減輕數(shù)據(jù)庫的負載。它在內(nèi)存中緩存數(shù)據(jù)和對象,使用key-value對形式存儲。它的網(wǎng)站首頁(https://memcached.org/)顯示了它的基本用法邏輯:

Memcached的原理也類似內(nèi)核態(tài)page cache的原理:

69a6c658-fbba-11eb-9bcf-12bb97331649.jpg

比如你查詢一個數(shù)據(jù)庫,可以先看看Memcached里面有沒有命中,命中就直接從Memcached的內(nèi)存里面拿到值了,沒有的時候才需要去查數(shù)據(jù)庫。查到后,可以把結(jié)果放入Memcached,這樣下次再訪問同樣數(shù)據(jù),不再需要進行數(shù)據(jù)庫的查詢動作。

Memcached也同樣采用slab分配算法來組織數(shù)據(jù)的存放,里面可以組織不同大小的chunks:

正如Linux內(nèi)核的每一種不同slab里面的object的大小不一樣。

我們安裝1個Memcached:

$ sudo apt-get install memcached

然后啟動起來,你馬上看到memcached打印說自己創(chuàng)建了各種不同chunk size的slab:

69d4799a-fbba-11eb-9bcf-12bb97331649.png

當(dāng)然,還有更多的相似性,比如Memcached里面的對象,也是LRU算法替換。所以LRU這種,也是一種本質(zhì)上的事情。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Web
    Web
    +關(guān)注

    關(guān)注

    2

    文章

    1309

    瀏覽量

    74922
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11806

    瀏覽量

    219482
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    4078

    瀏覽量

    68519
  • 管理器
    +關(guān)注

    關(guān)注

    0

    文章

    265

    瀏覽量

    19553

原文標題:宋寶華:slab在內(nèi)核內(nèi)存管理和用戶態(tài)Memcached的雙重存在

文章出處:【微信號:gh_6fde77c41971,微信公眾號:FPGA干貨】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    LuatOS的內(nèi)存分配機制

    不同 LuatOS 硬件平臺在內(nèi)存布局上存在差異,Lua 運行內(nèi)存、系統(tǒng)內(nèi)存與 PSRAM 擴展內(nèi)存的分配方式各有區(qū)別。部分型號將系統(tǒng)與腳本
    的頭像 發(fā)表于 04-16 12:37 ?44次閱讀
    LuatOS的<b class='flag-5'>內(nèi)存</b>分配機制

    在 imx93 上設(shè)置 dm-crypt,一直存在 cbc-aes-tee 驅(qū)動程序的穩(wěn)定性問題,求解決

    。據(jù)我了解: 1. 使用用戶密鑰和 cbc-aes-ce。密鑰完全不受保護,在用戶空間中以純文本形式提供。加密在內(nèi)核中處理。不是一個可行的選擇。 2. 使用 TEE 支持的可信密鑰和 cbc-aes-ce
    發(fā)表于 04-16 06:06

    深度解析?| DMA-BUF適配Android與RK特性核心Patch:高性能內(nèi)存管理升級方案

    support ANDROID and RK feature,通過12個文件的深度改造與重構(gòu),為DMA-BUF機制注入了Android生態(tài)適配與RK平臺專屬優(yōu)化的雙重能力,同時完善了其底層內(nèi)存管理邏輯
    的頭像 發(fā)表于 03-16 08:16 ?2898次閱讀
    深度解析?| DMA-BUF適配Android與RK特性核心Patch:高性能<b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b>升級方案

    Linux內(nèi)核伙伴系統(tǒng)內(nèi)存申請函數(shù)詳解:從原理到實戰(zhàn)

    在 Linux 內(nèi)核中,內(nèi)存管理是整個系統(tǒng)穩(wěn)定運行的基石,而伙伴系統(tǒng)(Buddy System) 作為內(nèi)核物理內(nèi)存分配的核心機制,更是驅(qū)動開
    的頭像 發(fā)表于 02-10 16:58 ?3710次閱讀
    Linux<b class='flag-5'>內(nèi)核</b>伙伴系統(tǒng)<b class='flag-5'>內(nèi)存</b>申請函數(shù)詳解:從原理到實戰(zhàn)

    【「Linux 設(shè)備驅(qū)動開發(fā)(第 2 版)」閱讀體驗】+讀深入理解Linux內(nèi)核內(nèi)存分配

    作者引入內(nèi)存相關(guān)術(shù)語,物理地址標識物理內(nèi)存位置。由于虛擬內(nèi)存機制,用戶內(nèi)核從不直接訪問物理地址,而是通過相應(yīng)的邏輯地址來訪問的。MMU(
    發(fā)表于 01-16 20:05

    rk基于linux/android內(nèi)存管理

    內(nèi)核對容量的識別), 64 位平臺上認為所有內(nèi)存都可 用。然后通過一系列 reserve_xxx() 接口從內(nèi)存末尾往前預(yù)留需要的內(nèi)存,最后把自己 relocate 到某段 reser
    的頭像 發(fā)表于 12-15 10:42 ?277次閱讀
    rk基于linux/android<b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b>

    Linux內(nèi)核模塊的加載機制

    \"GPL\") bool sig_ok;// 簽名驗證結(jié)果 };然后進行內(nèi)存分配 1、使用vmalloc()在內(nèi)核空間分配內(nèi)存,映射模塊的代碼和數(shù)據(jù)段。 2、標記可執(zhí)行頁(需
    發(fā)表于 11-25 06:59

    飛凌嵌入式ElfBoard-文件I/O的了解探究之Linux系統(tǒng)的文件管理機制

    函數(shù)去打開文件的時候,內(nèi)核會申請一段內(nèi)存(一段緩沖區(qū)),并且將靜態(tài)文件的數(shù)據(jù)內(nèi)容從磁盤這些存儲設(shè)備中讀取到內(nèi)存中進行管理、緩存(也把內(nèi)存中的
    發(fā)表于 11-18 08:50

    探索操作系統(tǒng)底層的關(guān)鍵接口

      在linux中,將程序的運行空間分為內(nèi)核空間與用戶空間(內(nèi)核態(tài)用戶態(tài)),在邏輯上它們之間是
    的頭像 發(fā)表于 11-08 12:42 ?863次閱讀

    RusT-Thread:基于Rust面向資源受限嵌入式設(shè)備的操作系統(tǒng)的實踐 | 技術(shù)集結(jié)

    摘要隨著物聯(lián)網(wǎng)和嵌入式系統(tǒng)的發(fā)展,實時操作系統(tǒng)(RTOS)的安全性和性能需求日益提高。傳統(tǒng)基于C語言的RTOS在內(nèi)存安全和并發(fā)控制方面存在局限,容易導(dǎo)致緩沖區(qū)溢出、數(shù)據(jù)競爭等問題。本項目以
    的頭像 發(fā)表于 11-07 17:37 ?7024次閱讀
    RusT-Thread:基于Rust面向資源受限嵌入式設(shè)備的操作系統(tǒng)的實踐 | 技術(shù)集結(jié)

    求助,關(guān)于rt-smart用戶態(tài)線程實時性差的問題求解

    finishn\"); return 0; } 即使用忙等待的方式測量50us定時性能,發(fā)現(xiàn)在內(nèi)核態(tài)時代碼平均周期為50us,最小周期為50us,最大周期為57us,性能十分優(yōu)異,而在用戶
    發(fā)表于 09-26 08:25

    qkey軟件包在內(nèi)核V5.02下運行出錯是哪里的問題?

    qkey軟件包,在內(nèi)核V5.0.2編譯無問題,運行報錯: (rt_object_get_type(&m->parent
    發(fā)表于 09-15 07:46

    靈活高效ZBUFF — C內(nèi)存數(shù)據(jù)操作庫:優(yōu)化內(nèi)存管理的利器

    在C語言開發(fā)中,高效的內(nèi)存管理是提升程序性能的關(guān)鍵。ZBUFF作為一款靈活高效的內(nèi)存數(shù)據(jù)操作庫,通過優(yōu)化內(nèi)存分配與釋放機制,為開發(fā)者提供了更簡潔、更安全的API接口,極大地簡化了復(fù)雜數(shù)
    的頭像 發(fā)表于 08-14 18:01 ?806次閱讀
    靈活高效ZBUFF — C<b class='flag-5'>內(nèi)存</b>數(shù)據(jù)操作庫:優(yōu)化<b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b>的利器

    雙重驅(qū)動的新型直線電機研究

    摘罷:大行程、高精度,同時易于小型化的移動機構(gòu)是先進制造業(yè)等領(lǐng)域要解決的關(guān)鍵問題之一,綜述了現(xiàn)有宏/微雙重驅(qū)動機構(gòu)和直線超聲電機的研究進展和存在問題,提出了一種宏微雙重驅(qū)動新型直線壓電電機,使其既能
    發(fā)表于 06-24 14:17

    harmony OS NEXT-通過用戶首選項實現(xiàn)數(shù)據(jù)持久化

    存儲的地方,可以采用用戶首選項來進行存儲。Preferences會將該數(shù)據(jù)緩存在內(nèi)存中,當(dāng)用戶讀取的時候,能夠快速從內(nèi)存中獲取數(shù)據(jù),當(dāng)需要持久化時可以使用flush接口將
    的頭像 發(fā)表于 04-29 16:38 ?1288次閱讀
    东港市| 永福县| 扶风县| 恭城| 岑巩县| 九龙坡区| 剑阁县| 莒南县| 福鼎市| 土默特右旗| 梁平县| 宜都市| 宝丰县| 龙南县| 吉木萨尔县| 古浪县| 永安市| 怀安县| 衡阳县| 应用必备| 马山县| 安平县| 古丈县| 洛宁县| 乐都县| 宝丰县| 彰化市| 夏津县| 西和县| 双城市| 盐边县| 军事| 英山县| 屏东县| 株洲市| 新乐市| 临沭县| 大方县| 秦皇岛市| 新兴县| 昌都县|