雅安建设局网站/东莞今天新增加的情况
一.硬编码/静态重定向
我们先来观察下没有地址分段时代CPU是怎么和内存们打交道,在8086CPU以前的老大哥们,访问内存时通常就是实打实的“指哪打哪”,程序指定要放在哪个地址,那就老老实实地放在哪个地址,比如程序A要放在以0XC100为起始的地址,那么如果内存中没有其他程序的情况下,程序A 就毫不客气地放进去:
这种指哪打哪的方式有个专业的名词来形容它:硬编码,也可以叫做静态重定向。程序首次装入内存后就不能再次在内存中移动了,在这个前提下再牛逼的操作系统也无法高效的完成内存的回收和分配,这种硬编码会导致的两个问题:
- 会导致内存碎片化
- 会导致程序长时间处于等待状态
内存碎片化很好理解,因为程序是固定地址的,如果下一个程序再来的时候一看,哎呦不够地方放了:
又或者说程序B也想从0XC100开始,但是恰好程序A也在:
这时候程序B只能站在一边扣着手指头等,一直等待程序A运行完之后主动让出空间来。眼看着程序的队伍排得越来越长,CPU开发工程师熬白了头发,终于发明了“段基址+段内偏移地址”的内存访问形式,并且首次应用于8086CPU中,从此8086CPU就称为了CPU界的里程碑,后续的286、386、586等x86CPU中“x”,其实指代的是Inter的86系列CPU。
二.动态重定向
为了支持分段机制,CPU新增了诸如cs、ds以及es等段寄存器。CS段基址寄存器与IP逻辑地址寄存器组合在一起,实现程序的动态重定向。动态重定向的程序在逻辑地址上还是按照静态重定向的方式不变,区别在于动态重定向的程序在编译链接时,会在逻辑地址上加上段基址,用两者相加的结果作为实际的寻址地址进行内存寻址。该方法可以使得程序在内存中任意移动,比如前面出现的例子:
就可以通过动态重定向将程序A进行程序重定向:
进行内存空间管理,避免内存碎片化,程序B就有足够的空间放入内存:
采用“段基址+逻辑地址”的方法实现了即使程序的逻辑地址(如程序A和程序B都是以0x0000开头)相同,程序也能被放置在内存的不同位置,提高了CPU的运行效率。
再到后来,研发人员在分段机制的基础上将程序分解成立:代码段+数据段+栈段+堆段+巴拉巴拉,将连续的逻辑地址空间分解成非连续的物理空间,也算是内存分配的一种优化:
三.8086CPU实模式下的段基址为啥左移四位
在实模式下进行CS:IP的地址偏移运算时,通常需要将CS的地址左移四位,再和IP里面的地址进行相加,这是为什么呢?
原因在于实模式下8086的CPU地址总线一共有20位(A0~A19),20位=1048576个字节=1MB,最大地址转换成16进制表示为0XFFFFF,也就是说20位的地址空间总共有1MB大小的地址空间,而寄存器一般为16位,也就是最大只能找到64KB的地址宽度,最大地址转换成16进制表示位0XFFFF,这也就说明了使用单个寄存器无法找到全部的地址总线。一个寄存器不行,那就用两个行不行?对不起,还是不行,用两个寄存器(我们给他们起个名字叫段基址寄存器和逻辑地址寄存器),就算是两个寄存器都取最大值0XFFFF,两者相加的结果是0X1FFFE
这个结果也只能到达17位,还不够16位(两个n位的数无论多大,其相加的结果也不会超过n+1位,原因很简单,因为即使n位的数能表示的最大数相加,也只是相当于乘以2,数值上与往左移动了1位而已),虽说直接使用立即数手动指定20位的地址也可以,但那是利用了程序员自身的软件办法来补了硬件的这个坑,但是作为一个严谨的CPU硬件,如果寄存器确实不支持1MB的寻址空间,那就写不支持就好,但是既然写了寄存器寻址支持1MB的寻址宽度,那么就得自圆其说。
那么最后CPU的研发人员采用了什么方法呢?方法就是将段基址左移四位便可以解决问题,比如段基址0XFFFF,左移四位就相当于乘以10H得出0XFFFF0
再与偏移地址0XFFFF相加,结果是0X10FFEF
这个结果虽然可以访问20位的地址空间,但是也有点溢出了,原因是段基址如果取最大值0XFFFF的话,往左偏移4位结果为0XFFFF0(这个结果由地址加法器算出来后直接往控制电路方向送,如果对这部分感兴趣的可以参考以前写过的一篇文章:【汇编语言】CS:IP寄存器),那么偏移地址最大也只能等于0XF,而现在偏移地址是0XFFFF,整整多出来0XFFF0这么多的空间,也就是64K-16B,而这部分的内存有个专业的名称叫做高端内存区。
那么这个多出来的部分要怎么处理呢?事实上不用任何处理。你可以思考下,地址空间一共也就20位,而0X10FFEF一共有21位,比地址总线还多出来1位,那多出来的哪位能干什么用呢?什么用都没有,直接扔掉,也就相当于把地址对1MB取模了。
最后举个例子,0XFFFFF+2,理论上结果为0X10001,因为地址总线只有20位,所以实际上的结果为0x00001,这种超出最大范围后又从0重新计数的技术,叫做回卷。
相关文章:

【计算机组成】实模式/保护模式下地址分段(基段地址+偏移地址)的原因
一.硬编码/静态重定向 我们先来观察下没有地址分段时代CPU是怎么和内存们打交道,在8086CPU以前的老大哥们,访问内存时通常就是实打实的“指哪打哪”,程序指定要放在哪个地址,那就老老实实地放在哪个地址,比如程序A要放…...

Web逆向-某网络学院学习的”偷懒“思路分析
接到求助,帮朋友完成20课时的网络学习。 我想都没想就接下了,寻思找个接口直接把学习时间提交上去,易如反掌。 最不济最不济,咱还能16x播放,也简单的很 然鹅,当我登陆的时候,发现自己还是太天真…...

一个用python PyQT写的背单词小程序
主要用到了QGridLayout, QTableWidget import sys import os import pandas as pd from PyQt5.QtWidgets import *class DataFrameExample(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle(DataFrame Example)self.setGeom…...

AutoSAR配置与实践(深入篇)10.1 UDS刷写诊断服务解析(34/36/37服务)
AutoSAR配置与实践(深入篇)10.1 Boot刷写诊断服务解析(34/36/37服务) UDS刷写服务一、0x34服务1.1 0x34服务请求格式1.2 0x34服务响应格式1.3 举例说明二、TransferData (0x36) service2.1 0x36服务请求格式2.2 0x36服务响应格式2.3 举例说明三、RequestTransferExit (0x37…...
【机器学习】六、概率图模型
今天我们对概率图模型(Probabilistic Graphical Model,PGM)做一个总结。 模型表示 概率图模型,是指一种用图结构来描述多元随机变量之间条件独立关系的概率模型。 它提出的背景是为了更好研究复杂联合概率分布的数据特征&#x…...

机器视觉软件破解的背后是道高一尺,魔高一丈
讲个故事,小明从某购物平台花2000元买了一个C#机器视觉架构,压缩包带加密,卖家让小明先确认收货后给密码。 小明花了3元从另外一家卖家破解开压缩包密码,然后迅速从第一家卖家退货。小明成功省了1997元。 “道高一尺,…...

【I/O流之旅】File类-零基础入门指南
🎊专栏【Java】 🌺每日一句:看不清楚未来时,就比别人坚持久一点 ⭐欢迎并且感谢大家指出我的问题 目录 1.File概述 2.File构造方法 (1).根据文件路径创建文件对象 (2).根据父路径名字符串和子路径名字符串创建对象 (3).根据父路径对应文件对象和子路…...

ArrayList和LinkedList的区别有哪些?
ArrayList 和 LinkedList 是 Java 中常用的两种集合类,它们之间有一些重要的区别,主要涉及到其内部实现和性能特点: 内部实现: ArrayList 是基于动态数组实现的。它使用一个数组来存储元素,当数组已满并需要添加新元素…...

Pyhotn: Mac安装selenium没有chromedriver-114以上及chromedriver无法挪到/usr/bin目录下的问题
1.0 安装selenium 终端输入: pip install selenium 查看版本: pip show selenium2.0 安装chromedriver 查看chrome版本 网上大多数是,基本到114就停了。 https://registry.npmmirror.com/binary.html?pathchromedriver/ 各种搜索&#…...

Java TCP服务端多线程接收RFID网络读卡器上传数据
本示例使用设备介绍:WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; impor…...

SpringCloud——服务网关——GateWay
1.GateWay是什么? gateway也叫服务网关,SpringCloud GateWay使用的是Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架。 gateway的功能有反向代理、鉴权、流量控制、熔断、日志监控...... 2.为什么不使用Zuul?…...

Linux程序的地址空间
Linux程序的地址空间 📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容深刻理解了什么程序或者进程的地址…...

Docker安装Minio(稳定版)
1、安装 docker pull minio/minio:RELEASE.2021-06-17T00-10-46Z docker run -p 9000:9000 minio/minio:RELEASE.2021-06-17T00-10-46Z server /data 2、访问测试 3、MinIO自定义Access和Secret密钥 要覆盖MinIO的自动生成的密钥,您可以将Access和Secret密钥设为…...

大数据毕业设计选题推荐-超级英雄运营数据监控平台-Hadoop-Spark-Hive
✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...

视频转码教程:轻松制作GIF动态图,一键高效剪辑操作
随着社交媒体的兴起,GIF动态图已经成为了人们表达情感、分享精彩瞬间的重要方式。而将视频转化为GIF动态图,不仅可以方便地在社交媒体上分享,还可以延长视频的播放时长,吸引更多的观众。本篇文章将为大家介绍如何将视频轻松转化为…...

Seata分布式事务实现原理
Seata可以解决分布式事务问题,利用GlobalTransacational(name "fsp-create-order",rollbackFor Exception.class)注解就可以实现全局的事务管理,但是我们需要明白原理的实现。 我们举例创建订单——>调减库存——>调扣余额——>改订…...

Rasa NLU中的组件
Rasa NLU部分主要是解决NER(序列建模)和意图识别(分类建模)这2个任务。Rasa NLP是一个基于DAG的通用框架,图中的顶点即组件。组件特征包括有顺序关系、可相互替换、可互斥和可同时使用。有向无环图(DAG&…...

redis笔记 三 redis持久化
文章目录 Redis持久化RDB持久化执行时机RDB原理小结 AOF持久化AOF原理AOF配置AOF文件重写 RDB与AOF对比 Redis持久化 redis持久化是为了解决redis宕机时丢失数据的问题,Redis有两种持久化方案: RDB持久化AOF持久化 RDB持久化 RDB全称Redis Database …...

k8s-----数据存储
目录 一、数据存储的概念 二、基本存储 1、EmptyDir存储卷 2、hostPath存储卷 3、nfs共享存储卷 三、高级存储 1、PV(持久化卷) 2、PVC(持久化卷声明) 3、静态PV实验 4、动态PV实验 4.1 在stor01节点上安装nfs…...

macOS电池续航工具:Endurance中文
Endurance for Mac是一款强大而实用的电池管理和优化软件,专为MacBook设计。通过智能调整系统设置和管理后台应用,它能有效延长电池续航时间,提升工作和娱乐效率,成为你在各种场合下的得力助手。 Endurance for Mac软件的功能特色…...

栈(定义,基本操作,顺序存储,链式存储)
目录 1.栈的定义1.重要术语2.特点 2.栈的基本操作3.栈的顺序存储1.顺序栈的定义2.基本操作1.初始化2.进栈3.出栈4.读栈顶 3.共享栈 4.栈的链式存储 1.栈的定义 栈( Stack)是只允许在一端进行插入或删除操作的线性表。 一种受限的线性表,只能在栈顶进行插…...

在HTML单页面中,使用Bootstrap框架的多选框如何提交数据
1.引入Bootstrap CSS和JavaScript文件:确保在HTML页面的标签内引入Bootstrap的CSS和JavaScript文件。可以使用CDN链接或者下载本地文件。 <link rel"stylesheet" href"https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css&q…...

当爱好变成职业,会不会就失去了兴趣?
当爱好变成职业,会不会就失去了兴趣? 当兴趣变成职业 1、学习能力变强了,积极主动性增加了。 2、学习努力变现了,赚到的更钱多了。 3、赚钱能力变强了,反过来再次促使兴趣发展(兴趣更大了....干劲更足了&…...

3-知识补充-MVC框架
3-知识补充-MVC框架 文章目录 3-知识补充-MVC框架MVC概述M、V、C各自负责功能及常用包MVC框架图非前后端分离框架图前后端分离框架图 MVC概述 MVC(Model、View、Controller)是软件工程中的一种**软件架构模式,它把软件系统分为模型、视图和控…...

leetcode:141. 环形链表
一、题目 函数原型: bool hasCycle(struct ListNode *head) 二、算法 判断不是环形链表,只需遍历链表找到空结点即可。 判断是环形链表,由于链表是环形的,遍历不会永远不会结束。所以要设置快慢指针,慢指针一次走一步&…...

了解企业邮箱的外观和功能特点
企业邮箱是什么样子的?企业邮箱不是单一产品,而是由一系列电子邮件服务组成的生态系统。这些服务包括但不限于邮件服务器、客户端、安全解决方案等。这些服务共同构成了企业邮箱的基础设施。 在外观上,企业邮箱和个人邮箱没有太大区别。用户通…...

配置阿里云镜像加速器 -docker
1.百度aliyun 2.找到镜像服务ACR 3.搞一个个人版,身份验证一下就行了很简单 4.找到镜像加速器Centos 5.执行下面4条命令:4条命令直接从上面操作文档中粘贴,不容易出错 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<…...

11 抽象向量空间
抽象向量空间 向量是什么函数什么是线性推论向量空间 这是关于3Blue1Brown "线性代数的本质"的学习笔记。 向量是什么 可以是一个箭头,可以是一组实数,即一个坐标对。 箭头在高维(4维,甚至更高)空间&…...

干洗店洗鞋店管理系统app小程序;
干洗店洗鞋店管理系统是一款专业的洗衣店管理软件,集成了前台收费收银系统、会员卡管理系统和财务报表系统等强大功能。界面简洁优美,操作直观简单。这款系统为干洗店和洗衣店提供了成本分析、利润分析、洗衣流程管理等诸多实用功能,用全新的…...

NOIP2023模拟13联测34 总结
NOIP2023模拟13联测34 总结 文章目录 NOIP2023模拟13联测34 总结比赛过程题目A. origen题目大意思路 B.competition题目大意思路 C. tour题目大意 D.abstract题目大意 比赛过程 看了一下题,感觉就 T 2 T2 T2 有一点思路。 T 1 T1 T1 先打一个 30 30 30 分暴力&am…...