[英]what is kernel mapping in linux?
什么是內核映射? 什么是永久映射和臨時映射。 在這種情況下,窗口是什么? 我經歷了代碼和對此的解釋,但不明白這一點
我假設您正在談論Linux內核中的內存映射。
內存映射是將內核地址空間直接映射到用戶進程的地址空間的過程。
用戶虛擬地址:這些是用戶空間程序看到的常規地址
物理地址:處理器和系統內存之間使用的地址。
高低內存:
內核將虛擬地址分為兩部分: 用戶地址空間和內核地址空間。 內核的代碼和數據結構必須適合該空間,但是內核地址空間的最大消耗者是物理內存的虛擬映射。 因此,內核需要它必須直接接觸的任何內存的虛擬地址。 因此,內核可以處理的最大物理內存量是可以映射到虛擬地址空間的內核部分的數量,減去內核代碼使用的空間。
臨時映射:當必須創建映射但當前上下文無法休眠時,內核會提供臨時映射(也稱為原子映射)。 內核可以原子地將高內存頁面映射到其中一個保留映射(可以保留臨時映射)中。 因此,可以在無法休眠的地方(例如中斷處理程序)使用臨時映射,因為獲取映射不會阻塞。
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.