【计组OS】访存过程以及存储层次化结构

                                                                            苏泽 

本专栏纯个人笔记作用 用于记录408 学习的笔记记录(敲了两年码实在不习惯手写笔记了)

                                                         如果能帮助到大家当然最好   

但由于是工作后退下来备考 很多说法和想法都会结合实际开发的思想 可能不是那么的纯粹应试

希望大家挑选自己喜欢的口味食用    仅供参考


首先捋清楚 存储体系的层次化结构  我把知识整理成了这样的一张图

那么我们就能很清晰的在这张图上面理解到CPU在访问存储数据的过程

  1. Cache 访问

    • CPU尝试从Cache中获取所需的数据。
    • 如果Cache命中(Cache Hit),则直接从Cache中读取数据,完成访存操作。
  2. TLB 查询

    • 如果Cache未命中(Cache Miss),CPU接下来会检查TLB(Translation Lookaside Buffer)。
    • TLB是一种特殊的存储器,用于快速地址转换,存储最近访问的页表条目。
    • 如果TLB命中(TLB Hit),则使用TLB中的信息完成地址转换。
  3. 页表查询

    • 如果TLB未命中(TLB Miss),CPU将访问页表进行地址转换。
    • 页表存储逻辑地址到物理地址的映射关系。
    • 操作系统维护页表,其中包含有效位,指示对应的页面是否在物理内存中。
  4. 有效位检查

    • 在页表中找到对应的页表项后,CPU检查该项的有效位。
    • 如果有效位为1,表示数据在主存中,CPU可以继续访问主存以获取数据。
  5. 缺页异常处理

    • 如果有效位为0,表示数据不在主存中,即发生了缺页异常(Page Fault)。
    • 缺页异常处理程序被调用,操作系统开始处理这一异常。
  6. 辅存访问

    • 操作系统确定辅存中数据的位置,通常通过页面置换算法的数据结构来选择一个页面进行置换。
  7. 数据加载与页表更新

    • 操作系统从辅存中加载缺失的数据到主存。
    • 加载完成后,操作系统更新页表,将新的物理地址映射到原来的逻辑地址。
  8. 重新尝试访问

    • 页表更新后,操作系统会重新执行导致缺页异常的指令。
    • CPU再次尝试访问数据,这次数据应该已经在主存中,可以成功访问。
  9. 继续执行程序

    • 一旦数据被加载到主存并且页表被更新,CPU可以继续执行程序,就像没有发生缺页异常一样。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神经网络怎么把隐含层变量融合到损失函数中?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

STM32F10x移植FreeRTOS

一、获取FreeRTOS源码 (1)登录FreeRTOS官网:www.freertos.org,下载第一个压缩包 (2)通过GitHub网站:github.com/FreeRTOS/FreeRTOS下载,由于该网站服务器在国外,所以访问…

2-5 任务:打印九九表

本次实战的目标是通过编写程序实现打印九九乘法表、字符矩形、字符平行四边形和字符菱形等图形,以及解决百钱买百鸡问题和输出素数等实际问题。在实战过程中,我们将学习并掌握以下知识点。 双重循环的使用:通过双重循环实现九九乘法表的打印&…

[笔记] Win11 Microsoft Store App 离线下载

微软应用商店无法下载或下载缓慢解决方法 在一些环境下 Microsoft Store 下载速度缓慢,或者需要账号登录才能安装的场景,可以通过找到对应的离线安装包的形式进行安装。 Micorsoft Store 中的离线安装包一般后缀为 AppxBundle 和 Appx。以 Ubuntu 为例…

【three.js】23. Raycaster and Mouse Events 投射射线(碰撞检测)和鼠标事件

介绍 顾名思义,Raycaster 可以向特定方向投射(或发射)一条射线,并测试与它相交的对象。 您可以使用该技术来检测玩家前面是否有墙,测试激光枪是否击中了什么东西,测试当前鼠标下方是否有东西来模拟鼠标事…

Kansformer?变形金刚来自过去的新敌人

​1.前言 多层感知器(MLPs),也被称为全连接前馈神经网络,是当今深度学习模型的基础组成部分。 MLPs在机器学习中扮演着至关重要的角色,因为它们是用于近似非线性函数的默认模型,这得益于通用近似定理所保证的表达能力。然而,MLPs真的是我们能构建的最佳非线性回归器吗?尽管ML…

如何去官网下载windows10操作系统iso镜像

文章目录 一、先从微软中国官网https://www.microsoft.com/zh-cn/进去二、然后按图示一步步点进去三、点击下载工具这个工具会帮你生成windows操作系统iso文件四、下载好后一步步按图示要求成功操作一、先从微软中国官网https://www.microsoft.com/zh-cn/进去 二、然后按图示一…

强一致性的皇冠:分布式事务模型的至高法则揭秘

关注微信公众号 “程序员小胖” 每日技术干货,第一时间送达! 引言 分布式事务模型是分布式系统设计的核心,关键在于保证数据一致性和事务完整性,尤其强调强一致性。诸如2PC、3PC、Saga、TCC等模型与协议,应运而生以解…

类加载器aa

一,关系图及各自管辖范围 (不赘述) 二,查看关系 package com.jiazai;public class Main {public static void main(String[] args) {ClassLoader appClassLoader ClassLoader.getSystemClassLoader();//默认System.out.println…

5.7代码

1.环境治理 分析:最开始进入了一个误区,觉得都有通路了直接算通路就可以,后来才发现居然是最小路径的总和,所以大概是每减一次都要算一次各点之间的最小路径了,然后是循环,到需要的条件为止 总的来说思路不…

[leetcode] 67. 二进制求和

文章目录 题目描述解题方法模拟java代码复杂度分析 相似题目 题目描述 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 1: 输入:a "11", b "1" 输出:"100"示例 2: 输…

使用curl命令查看服务器端口开放情况

目录 1.ssh端口 22 2.mysql数据库端口 3306 3.web应用端口 (Jellyfin 8082) (wordpress 8088) (tomcat 8080) 4.不存在的端口 5.被防火墙阻挡的端口 1.ssh端口 22 curl -v 10.10.10.205:22 curl…