【Linux】进程补充知识

文章目录

  • 前言
  • 磁盘与物理内存 数据交互
  • 局部性原理
  • 页表

前言

磁盘是计算机唯一的一个机械设备,在磁盘文件系统中,我们了解到,磁盘的数据读取写入相比物理内存,CPU等效率低了很多。但是其作为数据的载体,物理内存与其交互的工作必定是高频的,所以二者之间的交互肯定不是一字节一字节的读取。

磁盘与物理内存 数据交互

物理内存与磁盘的数据交互,绝不是一字节一字节的读取,大部分的操作系统对此的规定是4KB。我们知道磁盘的基本存储单元是扇区,一个扇区一般为512字节,也就是物理内存一次读取8个扇区的数据
而为了对接磁盘,物理内存也是以4KB为一个单元,并且使用一个结构体管理,该结构体内部有一个数组,记录各单元之间的划分。
物理内存的单元叫作页框,磁盘的单元叫作页帧。二者大小都是4KB。

局部性原理

局部性原理是现代计算机预加载数据的理论基础
允许提前加载正在访问数据的相邻或者附近的数据
通过预加载附近数据,减少IO次数。

页表

我们知道虚拟地址有4GB,然后通过页表将虚拟地址与物理内存的地址建立映射关系。但是如果是每一个虚拟地址都直接建立映射关系的话,那页表的条目就需要2^32次方个,如果单单映射关系,则一个条目至少需要8字节,极端算下来就需要32GB,这是不可能的。所以页表的映射并不是这样单纯的映射
在这里插入图片描述

在32位系统下,虚拟地址是4GB的,也就是由32位比特位组成的地址。
实际的页表映射,是将这32个比特位分为3部分
前10个比特位为第一部分,再之后10个比特位为第二部分,最后12个比特位为最后一部分。
如下图

在这里插入图片描述
以下图片来源网络
在这里插入图片描述

因为物理内存每一个页帧都是4KB,也就是2^12次方,12个比特位,所以最后刚好可以映射虚拟地址的最后12个比特位,省下了不少空间。
负责映射前10个比特位的页表叫作页目录,负责中间10个比特位的叫作页表项

这样我们就可以访问到物理内存的任意一个字节地址了,而访问变量,其实就是物理内存的起始地址+类型的大小(偏移量),这就是页内偏移
定位任意一个内存字节位置:页框+页内偏移(基地址+偏移量)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/783360.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CentOS7下安装Doris

Doris简介 Apache Doris 是一款基于 MPP 架构的高性能、实时的分析型数据库,以高效、简单、统一的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场…

新时代【机器学习】与【Pycharm】:【随机数据生成】与智能【股票市场分析】

目录 第一步:准备工作 1.1 安装必要的库 小李的理解: 1.2 导入库 小李的理解: 第二步:生成和准备数据 2.1 生成随机股票数据 小李的理解: 2.2 数据探索与可视化 小李的理解: 2.3 数据处理 小李…

谷粒商城学习笔记-18-快速开发-配置测试微服务基本CRUD功能

文章目录 一,product模块整合mybatis-plus1,引入依赖2,product启动类指定mapper所在包3,在配置文件配置数据库连接信息4,在配置文件中配置mapper.xml映射文件信息 二,单元测试1,编写测试代码&am…

MySQL学习记录 —— 십칠 CentOS7.9环境下的MySQL8.4 安装和配置

文章目录 1、安装和配置2、MySQL 包位置3、主要程序介绍 本篇开始在之前mysql博客的基础上继续延伸,适合有一定基础的mysql使用者阅读 环境 :CentOS 7.9 root 用户,MySQL 8.4 1、安装和配置 看一下当前系统版本 cat /etc/redhat-release应当…

项目收获总结--MyBatis的知识收获

一、概述 最近几天公司项目开发上线完成,做个收获总结吧~ 今天记录MyBatis的收获和提升。 二、获取自动生成的(主)键值 insert 方法总是返回一个 int 值 ,这个值代表的是插入的行数。若表的主键id采用自增长策略,自动生成的键值在 insert…

ubuntu软件源的两种格式和环境变量

1. ubuntu的/etc是什么目录? 在Ubuntu操作系统中,/etc/是一个特殊的目录,它包含系统的配置文件。这些配置文件用于设置各种系统和应用程序的参数和选项。 一般来说,用户可以在这个目录下找到各种重要的配置文件,如网络…

Leetcode—93. 复原 IP 地址【中等】

2024每日刷题&#xff08;140&#xff09; Leetcode—93. 复原 IP 地址 实现代码 class Solution { public:vector<string> restoreIpAddresses(string s) {vector<string> ans;vector<string> path;function<void(int)>dfs [&](int start) {if…

robotframework+python接口自动化的点滴记录

在robotframeworkpython框架上写了两三天的接口自动化&#xff0c;做了一些笔记。 1.在断言的时候经常由于数据类型导致较验不通过&#xff0c;值得注意的是&#xff0c;在定义常量或者变量的时候&#xff0c;使用${}代表int类型&#xff0c;例如${2}就代表数字2&#xff0c;另…

E - Tree and Hamilton Path 2

算出所有路径之和2减去树的直径 #include <bits/stdc.h> using namespace std; typedef long long ll; const int N2e610; ll n,ans; ll e[N],h[N],idx,w[N],ne[N],dis[N]; void add(ll a,ll b,ll c){ e[idx]b,ne[idx]h[a],w[idx]c,h[a]idx; } ll c; void dfs(ll u,…

23款奔驰S400升级原厂后排电动座椅调节有哪些功能

奔驰 S400 商务版升级后排电动座椅后&#xff0c;通常会具备以下功能&#xff1a; • 电动调节功能&#xff1a;可以通过按钮或控制面板来调节座椅的前后、上下、倾斜等位置&#xff0c;以获得最佳的舒适度。 • 座椅加热功能&#xff1a;在寒冷的天气中&#xff0c;座椅加热…

云渲染平台那个好?2024云渲染测评

1.渲染100&#xff08;强烈推荐&#xff09; 以高性价比著称&#xff0c;是预算有限的小伙伴首选。 15分钟0.2,60分钟内0.8;注册填邀请码【5858】可领30元礼包和免费渲染券) 提供了多种机器配置选择(可以自行匹配环境)最高256G大内存机器&#xff0c;满足不同用户需求。支持…

自然语言处理领域介绍及其发展历史

自然语言处理领域介绍及其发展历史 1 NLP2 主要任务3 主要的方法1 基于规则的方法&#xff08;1950-1980&#xff09;2 基于统计的方法&#xff08;传统的机器学习的方法&#xff09;3 Connectionist approach&#xff08;Neural networks&#xff09; 1 NLP 自动的理解人类语…

uniapp父页面调用子页面 组件方法记录

文章目录 导文如何点击父页面&#xff0c;触发子页面函数先写一个子页面的基础内容父元素 如何点击父页面&#xff0c;修改子页面的值先写一个子页面的基础内容父元素 导文 如何点击父页面&#xff0c;触发子页面函数&#xff1f; 如何点击父页面&#xff0c;修改子页面的值&am…

jvisualvm工具使用--添加远程监视

jvisualvm简介 jvisualvm该工具位于jdk的bin目录下&#xff0c;是jdk自带的可用于监控线程、内存情况、查看方法的CPU时间和内存中的对 象、已被GC的对象、反向查看分配的堆栈等&#xff0c;即&#xff1a;Java虚拟机监控、故障排查及性能分析工具。 远程监控方法 以windows端…

最小二乘法实践

食堂饭菜价格表如下图所示&#xff0c;采用最小二乘法估算荤菜、素菜、米饭的价格构成&#xff0c;增加一条记录&#xff0c;两荤22元。 提取训练数据&#xff1a; x z 12 y z 14 2x z 22 x y z 18 x 2y z 23 2x y z 26 3x y z 36 代码如下&#xff1a; i…

事件mousePressEvent、paintEvent、closeEvent、keyPressEvent】

事件 mousePressEvent、paintEvent、closeEvent、keyPressEvent 鼠标样式的设置 按WSAD通过keyPressEvent事件移动按钮 通过事件mousePressEvent获取鼠标位置的相对位置&#xff0c;绝对位置 cusor 鼠标样式设置成十字星 .h #ifndef DEFAULTHANDLEREXAMPLE_H #define DEFAUL…

01:单片机开发前的准备工作

单片机开发前的准备工作 1、 开发环境的安装2、创建工程和文件3、编译代码4、下载到单片机 1、 开发环境的安装 第一步&#xff1a;安装KEIL开发软件&#xff0c;按照如下步骤按照软件 第二步&#xff1a;注册KEIL软件 2、创建工程和文件 第一步&#xff1a;先在F盘创建一个文…

取得了PMP证书后有哪些优势?不清楚的快来看!

拿到PMP证书后&#xff0c;个人可以享受到一系列的福利&#xff0c;这些福利主要包括但不限于以下几个方面&#xff1a; 职业发展优势 PMP证书是项目管理领域的全球权威认证&#xff0c;能证明持证者具备系统的项目管理知识和经验。在求职和职业发展过程中&#xff0c;PMP证书…

【基础算法总结】分治—归并

分治—归并 1.排序数组2.交易逆序对的总数3.计算右侧小于当前元素的个数4.翻转对 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.排序数组 …

阶段三:项目开发---民航功能模块实现:任务18:指挥航空公司架次与延误率占比

任务描述 内 容&#xff1a;在前面的“使用Spark清洗统计业务数据并保存到数据库”任务中&#xff0c;已经通过Spark Streaming 清洗程序&#xff0c;将Kafka中Topic为“task_Aftn”的报文数据&#xff0c;经过数据清洗后&#xff0c;保存到了MySQL数据库中&#xff1b;本节任…