chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

虛擬機:linux高端內(nèi)存管理之永久內(nèi)核映射

如意 ? 來源:CSDN ? 作者:CaspianSea ? 2020-06-23 08:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

與直接映射的物理內(nèi)存末端、高端內(nèi)存的始端所對應(yīng)的線性地址存放在high_memory變量中,在x86體系結(jié)構(gòu)上,高于896MB的所有物理內(nèi)存的范圍大都是高端內(nèi)存,它并不會永久地或自動地映射到內(nèi)核地址空間,盡管x86處理器能夠?qū)ぶ肺锢?a href="http://www.brongaenegriffin.com/tags/ram/" target="_blank">RAM的范圍達(dá)到4GB(啟用PAE可以尋址到64GB)。一旦這些頁被分配,就必須in射到內(nèi)核的邏輯地址空間上。在x86上,高端內(nèi)存中的頁被映射到3GB-4GB。

內(nèi)核可以采用三種不同的機制將頁框映射到高端內(nèi)存;分別叫做永久內(nèi)核映射、臨時內(nèi)核映射以及非連續(xù)內(nèi)存分配。在這里,只總結(jié)前兩種技術(shù),第三種技術(shù)將在后面總結(jié)。

建立永久內(nèi)核映射可能阻塞當(dāng)前進(jìn)程;這發(fā)生在空閑頁表項不存在時,也就是在高端內(nèi)存上沒有頁表項可以用作頁框的“窗口”時。因此,永久內(nèi)核映射不能用于中斷處理程序和可延遲函數(shù)。相反,建立臨時內(nèi)核映射絕不會要求阻塞當(dāng)前進(jìn)程;不過,他的缺點是只有很少的臨時內(nèi)核映射可以同時建立起來。

使用臨時內(nèi)核映射的內(nèi)核控制路徑必須保證當(dāng)前沒有其他的內(nèi)核控制路徑在使用同樣地映射。這意味著內(nèi)核控制路徑永遠(yuǎn)不能被阻塞,后者其他內(nèi)核控制路徑有可能使用同一個窗口來映射其他的高端內(nèi)存頁。

永久內(nèi)存映射

永久內(nèi)核映射允許內(nèi)核建立高端頁框到內(nèi)核地址空間的長期映射。他們使用住內(nèi)核頁表中一個專門的頁表,其地址存放在變量pkmap_page_table中,這在前面的頁表機制管理區(qū)初始化中已經(jīng)介紹過了。頁表中的表項數(shù)由LAST_PKMAP宏產(chǎn)生。因此,內(nèi)核一次最多訪問2MB或4MB的高端內(nèi)存。

虛擬機:linux高端內(nèi)存管理之永久內(nèi)核映射

該頁表映射的線性地址從PKMAP_BASE開始。pkmap_count數(shù)組包含LAST_PKMAP個計數(shù)器,pkmap_page_table頁表中的每一項都有一個。

高端映射區(qū)邏輯頁面的分配結(jié)構(gòu)用分配表(pkmap_count)來描述,它有1024項,對應(yīng)于映射區(qū)內(nèi)不同的邏輯頁面。當(dāng)分配項的值等于0時為自由項,等于1時為緩沖項,大于1時為映射項。映射頁面的分配基于分配表的掃描,當(dāng)所有的自由項都用完時,系統(tǒng)將清除所有的緩沖項,如果連緩沖項都用完時,系統(tǒng)將進(jìn)入等待狀態(tài)。

虛擬機:linux高端內(nèi)存管理之永久內(nèi)核映射

為了記錄高端內(nèi)存頁框與永久內(nèi)核映射包含的線性地址之間的聯(lián)系,內(nèi)核使用了page_address_htable散列表。該表包含一個page_address_map數(shù)據(jù)結(jié)構(gòu),用于為高端內(nèi)存中的每一個頁框進(jìn)行當(dāng)前映射。而該數(shù)據(jù)結(jié)構(gòu)還包含一個指向頁描述符的指針和分配給該頁框的線性地址。

page_address()函數(shù)返回頁框?qū)?yīng)的線性地址

虛擬機:linux高端內(nèi)存管理之永久內(nèi)核映射

kmap()函數(shù)建立永久內(nèi)核映射。

虛擬機:linux高端內(nèi)存管理之永久內(nèi)核映射

kunmap()函數(shù)撤銷先前由kmap()建立的永久內(nèi)核映射

虛擬機:linux高端內(nèi)存管理之永久內(nèi)核映射

虛擬機:linux高端內(nèi)存管理之永久內(nèi)核映射


如果頁確實在高端內(nèi)存中,則調(diào)用kunmap_high()函數(shù)

虛擬機:linux高端內(nèi)存管理之永久內(nèi)核映射

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

    關(guān)注

    87

    文章

    11509

    瀏覽量

    213748
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3123

    瀏覽量

    75253
  • 虛擬機
    +關(guān)注

    關(guān)注

    1

    文章

    966

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    Linux內(nèi)核內(nèi)存映射原理分析

    Linux 內(nèi)核采用延遲分配物理內(nèi)存的策略,在進(jìn)程第一次訪問虛擬頁的時候,產(chǎn)生缺頁異常。如果是文件映射,那么分配物理頁,把文件指定區(qū)間的數(shù)據(jù)
    發(fā)表于 07-21 17:06 ?2579次閱讀

    Linux內(nèi)核地址映射模型與Linux內(nèi)核高端內(nèi)存詳解

    Linux 操作系統(tǒng)和驅(qū)動程序運行在內(nèi)核空間,應(yīng)用程序運行在用戶空間,兩者不能簡單地使用指針傳遞數(shù)據(jù),因為Linux使用的虛擬內(nèi)存機制,用戶空間的數(shù)據(jù)可能被換出,當(dāng)
    發(fā)表于 05-08 10:33 ?3598次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>地址<b class='flag-5'>映射</b>模型與<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b><b class='flag-5'>高端</b><b class='flag-5'>內(nèi)存</b>詳解

    ARM32 Linux內(nèi)存布局

    ,若都被占用不釋放,則沒有建立映射到物理內(nèi)存都無法訪問了。2. Linux內(nèi)核高端內(nèi)存的劃分對于
    發(fā)表于 04-24 14:20

    Linux虛擬內(nèi)存和物理內(nèi)存的深刻分析

    能夠映射的物理內(nèi)存大小只有896MB,該值保存在high_memory中。內(nèi)核地址空間的線性地址區(qū)間如下圖所示:? 從圖中可以看出,內(nèi)核采用了三種機制將
    發(fā)表于 05-31 08:00

    linux虛擬機怎么聯(lián)網(wǎng)

    虛擬機安裝linux系統(tǒng)無法上網(wǎng)的解決方法。
    發(fā)表于 06-03 09:29 ?2566次閱讀

    虛擬機Linux如何測試 DBUS Daemon

    虛擬機Linux如何測試 DBUS Daemon
    的頭像 發(fā)表于 06-22 16:35 ?4638次閱讀
    <b class='flag-5'>虛擬機</b>:<b class='flag-5'>Linux</b>如何測試 DBUS Daemon

    Linux虛擬機tcpdump命令操作詳解

    Linux虛擬機tcpdump命令操作詳解
    發(fā)表于 08-12 09:50 ?23次下載

    KVM虛擬機管理和基本使用

    KVM — 全稱是基于內(nèi)核虛擬機(Kernel-based Virtual Machine)是一個開源軟件,基于內(nèi)核虛擬化技術(shù),實際是嵌入系統(tǒng)的一個
    的頭像 發(fā)表于 02-07 09:20 ?1734次閱讀

    使用Ansible構(gòu)建虛擬機部署Linux的最佳實踐

    編者按:本文節(jié)選自節(jié)選自《基于Linux的企業(yè)自動化》第五章?!暗?章,使用Ansible構(gòu)建用于部署的虛擬機模板,通過構(gòu)建虛擬機模板來探索部署Linux的最佳實踐,
    的頭像 發(fā)表于 05-16 15:13 ?1440次閱讀

    Linux 內(nèi)存管理總結(jié)

    一、Linux內(nèi)存管理概述 Linux內(nèi)存管理是指對系統(tǒng)內(nèi)存
    的頭像 發(fā)表于 11-10 14:58 ?822次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b>總結(jié)

    linux虛擬機系統(tǒng)基本指令

    Linux虛擬機系統(tǒng)是一種通過虛擬化技術(shù)在物理服務(wù)器上部署多個獨立的虛擬機實例的操作系統(tǒng)。它可以幫助用戶更有效地利用硬件資源,并方便地部署和管理
    的頭像 發(fā)表于 11-17 10:04 ?2161次閱讀

    linux虛擬機使用教程

    引言:Linux虛擬機是一種方便且常用的技術(shù),它允許用戶在現(xiàn)有操作系統(tǒng)的基礎(chǔ)上創(chuàng)建和運行另一個獨立的操作系統(tǒng)。在本篇文章中,我們將提供一份詳盡的教程,幫助你了解如何安裝、配置和使用Linux
    的頭像 發(fā)表于 11-17 10:06 ?2316次閱讀

    虛擬機linux怎么編寫程序

    虛擬機Linux上編寫程序是一項非常常見且有用的任務(wù)。無論是開發(fā)一個簡單的腳本、一個Web應(yīng)用程序還是一個復(fù)雜的軟件項目,Linux提供了強大的工具和環(huán)境來幫助你進(jìn)行編程。本文將詳細(xì)介紹如何在
    的頭像 發(fā)表于 11-17 10:08 ?2394次閱讀

    linux虛擬機怎么運行代碼

    運行代碼是Linux虛擬機中的常見操作,本文將詳細(xì)介紹如何運行代碼。 首先,要運行代碼,你需要先安裝好Linux虛擬機,并確保能夠順利運行。接下來,你需要打開
    的頭像 發(fā)表于 11-17 10:12 ?5945次閱讀

    怎么安裝linux虛擬機

    在計算機領(lǐng)域,虛擬機是一種軟件程序,它允許在主操作系統(tǒng)上運行多個虛擬操作系統(tǒng)。Linux虛擬機在開發(fā)、測試和學(xué)習(xí)等環(huán)境中得到廣泛應(yīng)用。本文將詳細(xì)介紹如何安裝
    的頭像 發(fā)表于 11-23 10:50 ?1492次閱讀