当前位置: 首页 > news >正文

驱动开发系列18 - PAGE_SHIFT 解释

一:概述:

  PAGE_SHIFT 是一个在内核开发中常用的宏,通常用于计算与内存页面大小相关的值。它定义了页的大小通过位移(shift)的方式进行转换。

二:什么是 PAGE_SHIFT

   PAGE_SHIFT 是一个预定义的常量,用来表示页面大小的位移量。操作系统中的内存通常以“页”(page)为单位进行管理。常见的页大小是 4 KB(4096 字节)。由于 4096 是 2 的 12 次方,可以用位移操作代替乘除法进行页面相关的计算,因此 PAGE_SHIFT 通常定义为 12。

#define PAGE_SHIFT 12  // 对应的页面大小为 2^12 = 4096 字节

三:用法场景

  1. 将页号转换为字节地址
    页号(page frame number, PFN)通常指的是内存中的一个页面块。如果需要将页号转换为内存中的字节地址,就可以使用 PAGE_SHIFT

// 将页号转换为物理地址
unsigned long pfn &

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Golang | Leetcode Golang题解之第438题找到字符串中所有字母异位词
  • 智能监控,守护绿色能源:EasyCVR在电站视频监控中心的一站式解决方案
  • 华为GaussDB数据库(单机版)在ARM环境下的安装指南
  • 【C++笔试强训】如何成为算法糕手Day5
  • Html jquery下拉select美化插件——selectFilter.js
  • 街头摊贩检测系统源码分享
  • 微信小程序showLoading ,showToast ,hideLoading连续调用出现showLoading 不关闭的情况记录
  • Linux云计算 |【第四阶段】NOSQL-DAY2
  • 了解针对基座大语言模型(类似 ChatGPT 的架构,Decoder-only)的重头预训练和微调训练
  • SpringCloud 2023各依赖版本选择、核心功能与组件、创建项目(注意事项、依赖)
  • Redis一些简单通用命令认识常用数据类型和编码方式认识Redis单线程模型
  • 【Python-GUI图形化界面-PyQt5模块(3)】——Qwidget核心模块
  • Django项目配置日志
  • 【重学 MySQL】四十、SQL 语句执行过程
  • ArrayList源码实现(一)
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • [译]CSS 居中(Center)方法大合集
  • 【Leetcode】104. 二叉树的最大深度
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 30秒的PHP代码片段(1)数组 - Array
  • C# 免费离线人脸识别 2.0 Demo
  • ES6 ...操作符
  • ES6 学习笔记(一)let,const和解构赋值
  • Hibernate【inverse和cascade属性】知识要点
  • JAVA SE 6 GC调优笔记
  • java 多线程基础, 我觉得还是有必要看看的
  • JAVA多线程机制解析-volatilesynchronized
  • Promise面试题,控制异步流程
  • SAP云平台里Global Account和Sub Account的关系
  • yii2中session跨域名的问题
  • 闭包--闭包之tab栏切换(四)
  • 力扣(LeetCode)21
  • 如何设计一个微型分布式架构?
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 想写好前端,先练好内功
  • 项目实战-Api的解决方案
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 06-01 点餐小程序前台界面搭建
  • Java性能优化之JVM GC(垃圾回收机制)
  • Semaphore
  • ​Linux·i2c驱动架构​
  • ​如何在iOS手机上查看应用日志
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #ifdef 的技巧用法
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Java入门)学生管理系统
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (三)mysql_MYSQL(三)
  • (十三)Maven插件解析运行机制
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • *Django中的Ajax 纯js的书写样式1
  • .NET 5.0正式发布,有什么功能特性(翻译)