我理解的逻辑地址、线性地址、物理地址和虚拟地址
内存寻址的三种模式

内存寻址的三种模型1. 地址的种类首先明确一下逻辑地址和线性地址这两个概念:1. 逻辑地址2. 线性地址3. 物理地址1.1 逻辑地址:逻辑地址是编译器生成的,我们使用在linux环境下,使用C语言指针时,指针的值就是逻辑地址。
对于每个进程而言,他们都有一样的进程地址空间,类似的逻辑地址,甚至很可能相同。
1.2 线性地址:线性地址是由分段机制将逻辑地址转化而来的,如果没有分段机制作用,那么程序的逻辑地址就是线性地址了。
1.3 物理地址物理地址是CPU在地址总线上发出的电平信号,要得到物理地址,必须要将逻辑地址经过分段,分页等机制转化而来。
2. 三种寻址模型x86体系结构下,使用的较多的内存寻址模型主要有三种:1. 实模式扁平模型real mode flat model2. 实模式分段模型real mode segment model3. 保护模式扁平模型protected mode flat model下面是对这三种模型的描述实模式和保护模式相对,实模式运行于20位地址总线,保护模式则启用了32位地址总线,地址使用的是虚拟地址,引入了描述符表;虽然二者都引入了段这样一个概念,但是实模式的段是64KB固定大小,只有16KB个不同的段,CS,DS等存储的是段的序号(想想为什么?)。
保护模式则引入了GDT和LDT段描述符表的数据结构来定义每个段。
扁平模型和分段模型相对,区别在于程序的线性地址是共享一个地址空间还是需要分成多个段,即为多个程序同时运行在同一个CS,DS的范围内还是每个程序都拥有自己的CS,DS:前者(flat)指令的逻辑地址要形成线性地址,不需要切换CS,DS;后者的逻辑地址,必须要经过段选择子去查找段描述符,切换CS,DS,才能形成线性地址。
3. 实模式扁平模型该模式只有在386及更高的处理器中才能出现!80386的实模式,就是指CPU可用的地址线只有20位,能寻址0~1MB的地址空间。
微机原理及接口技术问答题

“微机原理与接口技术”1. 微机系统的硬件由哪几部分组成?答:三部分:微型计算机(微处理器,存储器,I/0接口,系统总线),外围设备,电源。
2. 什么是微机的总线,分为哪三组?答:是传递信息的一组公用导线。
分三组:地址总线,数据总线,控制总线。
3. 8086/8088CPU的内部结构分为哪两大模块,各自的主要功能是什么?答:总线接口部件(BIU)功能:根据执行单元EU的请求完成CPU与存储器或IO设备之间的数据传送。
执行部件(EU),作用:从指令对列中取出指令,对指令进行译码,发出相应的传送数据或算术的控制信号接受由总线接口部件传送来的数据或把数据传送到总线接口部件进行算术运算。
4. 8086指令队列的作用是什么?答:作用是:在执行指令的同时从内存中取了一条指令或下几条指令,取来的指令放在指令队列中这样它就不需要象以往的计算机那样让CPU轮番进行取指和执行的工作,从而提高CPU的利用率。
5. 8086的存储器空间最大可以为多少?怎样用16位寄存器实现对20位地址的寻址?完成逻辑地址到物理地址转换的部件是什么?答:8086的存储器空间最大可以为2^20(1MB);8086计算机引入了分段管理机制,当CPU寻址某个存储单元时,先将段寄存器内的内容左移4位,然后加上指令中提供的16位偏移地址形成20位物理地址。
6. 段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗? 答:指令的物理地址为21F00H;CS值和IP值不是唯一的,例如:CS=2100H,IP=0F00H。
7. 设存储器的段地址是4ABFH,物理地址为50000H,其偏移地址为多少?答:偏移地址为54100H。
(物理地址=段地址*16+偏移地址)8. 8086/8088CPU有哪几个状态标志位,有哪几个控制标志位?其意义各是什么?答:状态标志位有6个: ZF,SF,CF,OF,AF,PF。
逻辑地址与物理地址

逻辑地址与物理地址物理地址是外部连接使用的、唯一的,它是“与地址总线相对应”;而逻辑地址是内部和编程使用的、并不唯一。
在内存中的实际地址就是所谓的“物理地址”,而逻辑地址就是逻辑段管理内存而形成的。
例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址(偏移地址),不和绝对物理地址相干。
只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换),逻辑地址也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。
8086体系的CPU一开始是20根地址线, 寻址寄存器是16位, 16位的寄存器可以访问64K的地址空间, 如果程序要想访问大于64K的内存, 就要把内存分段, 每段64K, 用段地址+偏移量的方法来访问。
386CPU出来之后, 采用了32条地址线, 地址寄存器也扩为32位, 这样就可以不用分段了, 直接用一个地址寄存器来线性访问4G的内存了. 这就叫平面模式.将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址。
这里左移的4位是二进制位;如果用十六进制表达地址就是左移一位。
左移4位还可以表达为乘以16,即:段地址×16+偏移地址。
同一个物理地址可以对应多个逻辑地址形式。
所以物理地址转换为逻辑地址,需要明确段基地址或偏移地址,然后同上原则确定另一个地址。
逻辑地址1460H : 0100H 或1380H : 0900H物理地址14700H于是,对于主存14700H单元,我们可以描述为在1460H(或1380H)段的0100H(或0900H)单元,或者说主存1460H : 0100H(或1380H : 0900H)单元。
存储单元的地址可以用段基值和段内偏移量来表示,段基值确定它所在的段居于整个存储空间的位置,偏移量确定它在段内的位置,这种地址表示方式称为逻辑地址。
操作系统——文件系统概述、文件逻辑地址、目录、物理地址

操作系统——⽂件系统概述、⽂件逻辑地址、⽬录、物理地址⼀、⽂件系统概述软件资源管理信息长期保存的需要存储介质:磁盘、光盘、磁带…完成外存信息的管理和存取在前⾯的学习中,我们知道⽂件也是⼀种系统资源。
这⾥先给出⽂件和⽂件系统的定义。
1、⽂件外存中具有符号名的⼀组有逻辑意义的信息项的集合。
2、⽂件系统指OS中管理⽂件的那⼀部分软件。
它负责管理⽂件的存储、检索、更新,提供安全可靠的共享和保护⼿段,并为⽤户提供⼀整套⽅便有效的⽂件使⽤和操作⽅法。
它在OS接⼝中占⽐例最⼤,是I/O系统的上层软件。
⽂件系统⾯向⽤户的主要任务是实现⽂件的“按名存取”。
按名存取是⽂件系统最为主要的任务3、⽂件的属性主要属性有:⽂件名、识别符、类型、位置、⼤⼩、创建时间、上次修改时间、⽂件所有者和保护信息等。
UNIX系统中⽂件属性:-普通⽂件d ⽬录⽂件p 管道⽂件c 字符型设备⽂件b 块设备⽂件4、⽂件的分类按性质和⽤途分:系统⽂件、库⽂件、⽤户⽂件按数据形式:源⽂件、⽬标⽂件、可执⾏⽂件按对⽂件实施的保护级别分:只读⽂件、读写⽂件、执⾏⽂件按逻辑结构分:有结构⽂件、⽆结构⽂件按⽂件中物理结构分:顺序⽂件、链接⽂件、索引⽂件⼆、⽂件的逻辑结构⽂件的结构指⽂件中信息的配置和构造⽅式,有逻辑结构和物理结构之分。
⽤户眼中⽂件信息的组织形式叫⽂件的逻辑结构。
它包括记录式⽂件和流式⽂件两种,每种⽂件信息的逻辑单位分别是记录和字符。
UNIX系统视所有⽂件的逻辑结构为⽆结构的流式⽂件早期有结构的记录式⽂件⼜分定长和不定长两种⽂件的逻辑结构与⽂件的存储介质⽆关⽂件的逻辑结构可以分为⽆结构⽂件(流式),有结构⽂件(记录式)1、⽆结构⽂件2、有结构⽂件根据各条记录的长度(占⽤的存储空间)是否相等,⼜可以分为定长记录和可变长记录两种。
根据有结构⽂件中的各条记录如何组织,可分为三类顺序⽂件索引⽂件索引顺序⽂件这⾥进⾏检索效率的分析:多级索引顺序⽂件看完⽂件的逻辑结构的划分,是不是觉得好像在哪⾥学过类似的组织⽅式?回想⼀下在计算机组成原理中Cache的组织⽅式,是不是也是这样的?地址映像的直接映像、全相联映像、组相联映像不就对应着顺序⽂件、索引⽂件、索引顺序⽂件?3、总结三、⽂件⽬录⽂件⽬录是⽂件系统管理⽂件最为重要的依据。
什么是物理地址 逻辑地址

什么是物理地址逻辑地址网络中的地址分为物理地址和逻辑地址两类,与网络层的IP地址传输层的端口号以及应用层的用户名相比较,局域望网的MAC层地址是由硬件来处理的,叫做物理地址或硬件地址.IP地址传输层的端口号以及应用层的用户名是逻辑地址一由软件处理.我认为你说的MAC地址应该就是物理地址.大多数局域网通过为网卡分配一个硬件地址来标识一个联网的计算机或其他设备.所谓物理地址是指固化在网卡EPROM中的地址,这个地址应该保证在全网是唯一的.IEEE注册委员会为每一个生产厂商分配物理地址的前三字节,即公司标识.后面三字节由厂商自行分配.即一个厂商获得一个前三字节的地址可以生产的网卡数量是16777216块.即一块网卡对应一个物理地址.也就是说对应物理地址的前三字节可以知道他的生产厂商.如果固化在网卡中的地址为002514895423,那么这块网卡插到主机A中,主机A的地址就是002514895423,不管主机A是连接在局域网1上还是在局域网2上,也不管这台计算机移到什么位置,主机A的物理地址就是002514895423 .它是不变的,而且不会和世界上任何一台计算机相同.当主机A发送一帧时,网卡执行发送程序时,直接将这个地址作为源地址写入该帧.当主机A接收一帧时,直接将这个地址与接收帧目的地址比较,以决定是否接收.物理地址MAC(Media Access Control, 介质访问控制)地址是识别LAN(局域网)节点的标识。
网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。
也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一般也是全球唯一的。
比如,著名的以太网卡,其物理地址是48bit(比特位)的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。
以太网地址管理机构(IEEE)将以太网地址,也就是48比特的不同组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将唯一地址赋予以太网卡。
通俗理解物理地址、逻辑地址、线性地址、虚拟地址、有效地址的区别

通俗理解物理地址、逻辑地址、线性地址、虚拟地址、有效地址
的区别
物理地址:物理地址就是内存单元的绝对地址,⽐如你有⼀个4G的内存条插在电脑上,物理地址0x0000就表⽰内存条的第⼀个存储单元,0x0010就表⽰内存条的第17个存储单元,不管CPU内部怎么处理地址,最终访问的都是物理地址。
在CPU实模式下“段基址+段内偏移地址”就是物理地
址,CPU可以使⽤此地址直接访问内存。
线性地址、虚拟地址:CPU在保护模式下,“段基址+段内偏移地址”叫做线性地址,注意,保护模式下段基址寄存器中存储的不是真正的段基值(和实模式的含义不⼀样),⽽是被称为“段选择⼦”的东西,通过段选择⼦在GDT(全局描述表)中找到真正的段基值。
另外,如果CPU在保护模式下没有开启分页功能,则线性地址就被当做最终的物理地址来⽤,若开启了分页功能,则线性地址就叫虚拟地址(在没开启分页功能的情况下线性地址和虚拟地址就是⼀回事)。
但是,如果开启分页功能,虚拟地址(或线性地址)还要通过页部件电路转换成最终的物理地址。
逻辑地址、有效地址:⽆论CPU在什么模式下,段内偏移地址⼜称为有效地址或者逻辑地址(只是叫法不⼀样罢了),例如实模式下 “mov ax,
[0x7c00]”,0x7c00就是逻辑地址(或有效地址),但这条指令最终操作的物理地址是DS*16+0x7c00。
物理地址的含义

物理地址的含义物理地址是什么?物理地址的含义是什么? 小编整理了物理地址的相关资料,下面大家跟着小编一起去了解一下吧。
物理地址的含义MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。
IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32 位的,而MAC地址则是48位的。
MAC 地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08: 00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。
只要你不去更改自己的MAC地址,那么你的MAC地址在世界是惟一。
静态IP:在Internet上有千百万台主机,为了区分这些主机,人们给每台主机都分配了一个专门的地址,称为IP地址。
通过IP地址就可以访问到每一台主机。
IP地址由4部分数字组成,每部分数字对应于8位二进制数字,各部分之间用小数点分开。
如某一台主机的IP地址为:211.152.65.112 ,Internet IP地址由NIC(Internet Network Information Center)统一负责全球地址的规划、管理;同时由Inter NIC、APNIC、RIPE三大网络信息中心具体负责美国及其它地区的IP地址分配。
固定IP:固定IP地址是长期固定分配给一台计算机使用的IP 地址,一般是特殊的服务器才拥有固定IP地址。
动态IP:因为IP地址资源非常短缺,通过电话拨号上网或普通宽带上网用户一般不具备固定IP地址,而是由ISP动态分配暂时的一个IP地址。
普通人一般不需要去了解动态IP地址,这些都是计算机系统自动完成的。
公有地址(Public address)由Inter NIC(Internet Network Information Center 因特网信息中心)负责。
虚拟地址和物理地址

虚拟地址和物理地址虚拟地址和物理地址第⼀层理解1、每个进程都有⾃⼰独⽴的4g内存空间,每个进程的内存空间都具有类似的结构。
2、⼀个新进程建⽴的时候,将会建⽴⾃⼰的内存空间,此进程的数据,代码等数据从磁盘拷贝到⾃⼰的进程空间,哪些数据在哪⾥,都由进程控制表中的task_struck记录,task_struck中记录⼀条链表,记录内存空间的分配情况,哪些地址有数据,哪些地址没有数据,哪些可读,哪些可写,都可以通过这个链表进⾏记录。
3、每个进程已经分配的内存及空间,都与对应的磁盘空间映射。
问题:计算机明明没有那么多内存(n个进程的话需要n*4g)内存建⽴⼀个进程,就要把磁盘上的程序⽂件拷贝到进程对应的内存中,对于⼀个程序对应多个进程这种情况,浪费内存。
第⼆层理解1、每个进程的4G内存空间只是虚拟内存空间,每次访问内存空间的某个地址,都需要把地址翻译成实际物理内存地址2、所有进程共享同⼀物理内存,每个进程只需要把⾃⼰⽬前需要的虚拟内存映射并存储到物理内存上。
3、进程要知道哪些内存地址的数据在物理内存上,哪些不在,还有在物理内存上哪⾥,需要⽤页表记录4、页表的每⼀项分两部分,第⼀部分记录此页是否在物理内存上,第⼆部分记录物理内存页的地址(如果在的话)5、当进程访问每个虚拟地址,去看页表,如果发现对应的数据不在物理内存中,则缺页异常。
6、缺页异常的处理过程,就是把进程需要的数据从磁盘上拷贝到物理内存中,如果内存已经满了,没有空地⽅了,那就找⼀个页覆盖(页⾯置换算法)优点:1、既然每个进程的内存空间都是⼀致并且固定,所以连接器在链接可执⾏⽂件时,可以设定内存地址,⽽不⽤去管这些数据最终实际的内存地址,这是独⽴内存空间的好处。
2、当不同的进程使⽤同样的代码时,⽐如库⽂件的代码,物理内存中可以值存储⼀份这样的代码,不同的进程只需要把⾃⼰的虚拟内存映射过去就可以了,节省内存。
3、在程序员需要分配连续的内存空间的时候,只需要在虚拟内存空间分配连续空间,⽽不需要实际物理内存的连续空间,可以利⽤内存碎⽚。