什么是物理地址 逻辑地址
MMU所起的作用
MMU所起的作用
一、名词解释
①逻辑地址(虚拟地址)
用户程序经编译、链接以后形成的每条指令或数据单元的地址,这些地址都是相对于某个基地址来编制的。
②逻辑地址空间
某个用户程序的虚拟地址的集合。
③物理地址(绝对地址)
处理机能直接访问的存储器地址。
④物理地址空间
物理地址空间是指进程在内存中一系列存储信息的物理单元的集合。
物理地址空间也叫存储空间,存储空间与地址空间既相互关联,又相互独立,是内存管理的核心概念。
二、MMU所起的作用
1.内存分配和回收
使各作业或进程各得其所
2.内存保护
内存保护就是确保多个进程都在各自分配到内存区域内操作,互不干扰,防止一个进程破坏其他进程的信息。
3.内存扩充
内存“扩充”包含了存储器利用的提高和扩充两方面的内容。
为用户提供比内存物理空间大得多的地址空间。
比较典型的内存扩充是虚拟存储器。
4.地址映射
地址映射就是将进程的逻辑地址变换为内存中的物理地址。
我们需要实现从逻辑地址到物理地址的变换,即实现从虚地址到实地址的变换。
这种变换就是重定位。
微型计算机原理与接口技术冯博琴主编___课后答案(2)
微型计算机原理与接口技术冯博琴主编___课后答案(2)1.3 完成下列数制的转换。
(1)166,A6H(2)0.75(3)11111101.01B, FD.4H(4 ) 5B.AH, (10010001.011000100101)BCD1.5 写出下列真值对应的原码和补码的形式。
(1)原码:11110011 补码:10001101(2)原码:11000111 补码:10111001(3)原码:01001001 补码:010010012.3说明8086的EU和BIU的主要功能。
在执行程序过程中他们是如何相互配合工作的?解:执行单元EU负责执行指令。
EU在工作时不断地从指令队列取出指令代码,对其译码后产生完成指令所需要的控制信息。
数据在ALU中进行运算,运算结果的特征保留在标志寄存器FLAGS中。
总线接口单元BIU负责CPU与存储器、I/O接口之间的信息传送。
BIU取出的指令被送入指令队列供EU执行,BIU取出的数据被送入相关寄存器中以便做进一步的处理。
当EU从指令队列中取走指令,指令队列出现空字节时,BIU就自动执行一次取指令周期,从内存中取出后续的指令代码放入队列中。
当EU需要数据时,BIU根据EU给出的地址,从指定的内存单元或外设中取出数据供EU使用。
当运算结束时,BIU将运算结果送入指定的内存单元或寄存器。
当指令队列空时,EU 就等待,直到有指令为止。
若BIU正在取指令,EU发出访问总线的请求,则必须等BIU取指令完毕后,该请求才能得到响应。
一般情况下,程序顺序执行,当遇到跳转指令时,BIU就使指令队列复位,从新地址取出指令,并立即传送EU去执行。
指令队列的存在使8086/8088的EU和BIU并行工作,从而减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度。
另外也降低了对存储器存取速度的要求。
2.4 8088CPU工作在最小模式下:(1)当CPU访问存储器时,要利用哪些信号?(2)当CPU进行I/O操作时,要利用哪些信号?(3)当HOLD有效并得到响应时,CPU的哪些信号置高阻?解:(1)要利用信号线包括WR#、RD#、IO/M#、ALE以及AD0~AD7、A8~A19。
名词解释2
1、物理地址:内存中各存储单元的地址由统一的基地址顺序编址,这种地址称为物理地址。
2、逻辑地址:用户程序经编译之后的每个目标模块都以0为基地址顺序编址,这种地址称为逻辑地址。
3、逻辑地址空间:由程序中逻辑地址组成的地址范围叫做逻辑地址空间。
4、内存空间:由内存中的一系列存储单元所限定的地址范围称为内存空间。
5、重定位:把逻辑地址转变为内存物理地址的过程叫做重定位。
6、静态重定位:把目标程序装入内存时所进行的重定位。
7、动态重定位:在程序执行期间,每次访问内存之前进行的重定位。
8、碎片:在分区法中,内存出现许多容量太小、无法被利用的小分区称做碎片。
9、紧缩:移动某些已分配区的内容,使所有作业的分区紧挨在一起,而把空闲区留在另一端,这种技术称为紧缩。
10、可重定位地址:当含有它的程序被重定位时,将随之被调整的一种地址。
11、文件:是被命名的相关信息的集合体,它通常存放在外存上,可作为一个独立的单位存放并实施相应的操作。
12、文件系统:操作系统中负责操纵和管理文件的一整套设施,它实现文件的共享和保护,方便用户“按名存取”13、目录项:为了加快对文件的检索,把文件控制块集中在一起进行管理。
这种文件控制块的有序集合称为文件目录。
文件控制块也是其中的目录项。
14、目录文件:全由目录项构成的文件称为目录文件。
15、路径:在树形目录结构中,从根出发经由所需子目录到达指定文件的通路。
16、当前目录:为了节省文件检索的时间,每个用户可以指定一个目录作为当前的工作目录,以后访问文件时,就从这个目录开始向下顺序检索。
这个目录称为当前目录。
17、文件的共享:是指系统允许多个用户共同使用某个或者某些文件。
18、中断:指CPU对系统发生的某个事件做出的一种反应,CPU暂时正在执行的程序,保留现场后自动地转去执行相应的处理程序,处理完改事件后,如被中断进程的优先级最高,则返回断点继续执行被“打断”的程序。
19、中断源---引起中断的事件或发出中断请求的来源称为中断源。
微端原理--简答笔记2
微端原理----简答笔记二、1、I/O接口的信号有哪几种?各有什么特点?答:(1)接口信号通常有以下四种:(2)开关量:只有 2 种状态,用一位二进制数(0 或 1)表示开或关。
(3)数字量:二进制形式的数据或是已经过编码的二进制形式的数据。
(4)脉冲量:脉冲信号是以脉冲形式表示的一种信号。
关注的是信号发生的跳变情况。
(5)模拟量:用模拟电压或模拟电流幅值大小表示的物理量。
2、在最小模式下,8086CPU一个基本的总线周期一般由几个时钟周期组成?以读3、8086CPU从功能上分成那两部分?这样设计的优点是什么?答:8086CPU 在功能上分成了 EU 和 BIU 两部分。
传统计算机在执行程序时,CPU 总是相继地完成取指令和执行指令的动作,即指令的提取和执行是串行进行的。
而分成两部分后,BIU 负责取指令,EU 负责指令的执行,它们之间既互相独立又互相配合,使得8086 可以在执行指令的同时进行取指令的操作,即实现了取指令和执行指令的并行工作,大大提高了 CPU 和总线的利用率,从而提高了指令的处理速度。
5、在8086系统中,什么是逻辑地址和物理地址?他们之间的关系是什么?答:逻辑地址是 16 位的,允许在程序中编排的地址;物理地址是 20 位的,是信息存放在内存中的实际地址。
物理地址是由逻辑地址的段地址左移 4 位加上偏移地址计算得到的,在 CPU 的运算器中实现。
6、为了区别不同的中断,有以下概念,请说明它们的不同:(1)可屏蔽中断和非屏蔽中断(2)内部中断和外部中断答:(1)受中断标志位控制的可进行允许或禁止操作的中断,称为可屏蔽中断;必须立刻响应的中断请求,如电源掉电、机器故障等,不受中断标志位控制的中断称非屏蔽中断。
(2)内部中断是指中断源来自主机内部,如运算出错、程序调试和软件中断等;外部中断来自主机之外,往往通过 CPU 的中断请求引脚引入主机,如外部设备、实时时钟和硬件故障产生的中断等。
计算机原理复习题(最终版)
《计算机原理及应用》复习题一、选择题1.当()时,8088CPU工作在最小模式之下。
()A.芯片引线最少B.MN/--MX=0C.MN/--MX=1 D.使用多处理器2、二进制数 10010110.10B 的十进制数值可表示为()A、 96.8B、 150.5C、 96.5D、 160.53.由段寄存器、段偏移地址所确定的物理地址是这样产生的()。
A.物理地址=段寄存器的内容×8+偏移地址B.物理地址=偏移地址×8C.物理地址=段寄存器内容×20+偏移地址D.物理地址=段寄存器内容×16+偏移地址4、RAM 6116芯片有2K×8位的容量,它的片内地址选择线和数据线分别是()A、A0~A15和D0~D15B、A0~A10和D0~D7C、A0~A11和D0~D7D、A0~A11和D0~D155、8086 CPU在响应中断时顺序将()内容压入堆栈。
A、CS.IP.PSWB、IP.CS.PSWC、PSW.CS.IPD、PSW.IP.CS6.若READY为低电平,此时CPU执行哪一个周期?()A.T3周期B.等待的时钟周期TWC.T4周期D.T1周期7.寄存器寻址的操作数包含在()中。
A.CPU的内部寄存器B.内部存贮器C.指令D.外部存贮器8.在CPU内部寄存器之间传送数据(除代码段寄存器CS和指令指针IPC以外)的是()A.ADD B.MOVC.SUB D.MUL9.若要对操作数清0,一般对操作数进行()运算。
A.相与B.相或C.异或D.移位10.外设与内存独立编址方式中,用于外设的指令功能()。
A.较强B.较弱C.与用于内存的指令相同D.以上都不是11、8086能够访问的存储空间的大小是()。
A. 64kB.1MC. 256D.16M12、8253 是可编程定时、计数器芯片,它内部有()。
A、三个定时器B、四个定时器C、二个计数器D、四个计数器13、相邻段地址之间的最小距离为()A、16个字节B、64K字节C、1K字节D、256字节14、8086 CPU的NMI引脚上输入的信号是()A、可屏蔽中断请求B、非屏蔽中断请求C、中断相应D、总线请求15、8086 CPU在()时刻采样READY信号决定是否插入等待周期。
逻辑地址与物理地址
逻辑地址与物理地址物理地址是外部连接使用的、唯一的,它是“与地址总线相对应”;而逻辑地址是内部和编程使用的、并不唯一。
在内存中的实际地址就是所谓的“物理地址”,而逻辑地址就是逻辑段管理内存而形成的。
例如,你在进行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)单元。
存储单元的地址可以用段基值和段内偏移量来表示,段基值确定它所在的段居于整个存储空间的位置,偏移量确定它在段内的位置,这种地址表示方式称为逻辑地址。
实验2 地址解析协议ARP
1.掌握 ARP 协议的报文格式2.掌握 ARP 协议的工作原理3.理解 ARP 高速缓存的作用4.掌握 ARP 请求和应答的实现方法5.掌握 ARP 缓存表的维护过程2 学时该实验采用网络结构二物理地址是节点的地址,由它所在的局域网或者广域网定义。
物理地址包含在数据链路层的帧中。
物理地址是最低一级的地址。
物理地址的长度和格式是可变的,取决于具体的网络。
以太网使用写在网络接口卡(NIC)上的 6 字节的标识作为物理地址。
物理地址可以是单播地址 (一个接收者) 、多播地址 (一组接收者) 或者广播地址 (由网络中的所有主机接收) 。
有些网络不支持多播或者广播地址,当需要把帧发送给一组主机或者所有主机时,多播地址或者广播地址就需要用单播地址来摹拟。
在互联网的环境中仅使用物理地址是不合适的,因为不同网络可以使用不同的地址格式。
因此,需要一种通用的编址系统,用来惟一地标识每一台主机,而不管底层使用什么样的物理网络。
逻辑地址就是为此目的而设计的。
目前 Internet 上的逻辑地址是 32 位地址,通常称为 IP 地址,可以用来标识连接在 Internet 上的每一台主机。
在 Internet 上没有两个主机具有同样的 IP 地址。
逻辑地址可以是单播地址、多播地址和广播地址。
其中广播地址有一些局限性。
在实验三中将详细介绍这三种类型的地址。
Internet 是由各种各样的物理网络通过使用诸如路由器之类的设备连接在一起组成的。
主机发送一个数据包到另一台主机时可能要经过多种不同的物理网络。
主机和路由器都是在网络层通过逻辑地址来识别的,这个地址是在全世界范围内是惟一的。
然而,数据包是通过物理网络传递的。
在物理网络中,主机和路由器通过其物理地址来识别的,其范围限于本地网络中。
物理地址和逻辑地址是两种不同的标识符。
这就意味着将一个数据包传递到一个主机或者路由器需要进行两级寻址:逻辑地址和物理地址。
需要能将一个逻辑地址映射到相应的物理地址。
什么是逻辑地址和物理地址
什么是逻辑地址和物理地址有网友问到小编:什么是逻辑地址和物理地址?怎么转换?针对此问题,店铺为大家分享了具体的操作方法,希望对你有帮助!什么是逻辑地址是指由程式产生的和段相关的偏移地址部分。
例如,你在进行C 语言指针编程中,能读取指针变量本身值(&操作),实际上这个值就是逻辑地址,他是相对于你当前进程数据段的地址,不和绝对物理地址相干。
只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程式执行代码段限长内的偏移地址(假定代码段、数据段如果完全相同)。
应用程式员仅需和逻辑地址打交道,而分段和分页机制对你来说是完全透明的,仅由系统编程人员涉及。
应用程式员虽然自己能直接操作内存,那也只能在操作系统给你分配的内存段操作。
什么是物理地址用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。
所以,说它是“与地址总线相对应”,是更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。
也许错误的理解更利于形而上的抽像。
虚拟内存(virtual memory) 这是对整个内存(不要与机器上插那条对上号)的抽像描述。
它是相对于物理内存来讲的,可以直接理解成“不直实的”,“假的”内存,例如,一个0x08000000内存地址,它并不对就物理地址上那个大数组中0x08000000 - 1那个地址元素;之所以是这样,是因为现代操作系统都提供了一种内存管理的抽像,即虚拟内存(virtual memory)。
进程使用虚拟内存中的地址,由操作系统协助相关硬件,把它“转换”成真正的物理地址。
操作系统第二版第五章课后习题答案
第五章存储管理作业答案2、6、10、13、15、162、解释下列概念:物理地址、逻辑地址、逻辑地址空间、内存空间、重定位、静态重定位、动态重定位、碎片、紧缩、可重定位地址。
物理地址——内存中各存储单元的地址由统一的基地址顺序编址,这种地址称为物理地址。
逻辑地址——用户程序经编译之后的每个目标模块都以0为基地址顺序编址,这种地址称为逻辑地址。
逻辑地址空间——由程序中逻辑地址组成的地址范围叫做逻辑地址空间。
内存空间——由内存中的一系列存储单元所限定的地址范围称作内存空间。
重定位——把逻辑地址转变为内存物理地址的过程叫做重定位。
静态重定位——在目标程序装入内存时所进行的重定位。
动态重定位——在程序执行期间,每次访问内存之前进行的重定位。
碎片——在分区法中,内存出现许多容量太小、无法被利用的小分区称作“碎片”。
紧缩——移动某些已分配区的内容,使所有作业的分区紧挨在一起,而把空闲区留在另一端,这种技术称为紧缩。
可重定位地址——当含有它的程序被重定位时,将随之被调整的一种地址。
6、什么是虚拟存储器?它有哪些基本特征?参考答案:虚拟存储器是用户能作为可编址内存对待的虚拟存储空间,在这种计算机系统中实现了用户逻辑存储器与物理存储器分离,它是操作系统给用户提供的一个比真实内存空间大得多的地址空间。
虚拟存储器的基本特征是:虚拟扩充——不是物理上,而是逻辑上扩充了内存容量;部分装入——每个作业不是全部一次性地装入内存,而是只装入一部分;离散分配——不必占用连续的内存空间,而是“见缝插针”;多次对换——所需的全部程序和数据要分成多次调入内存。
10、某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。
假定某时刻一个用户页表已调入内存的页面页号和物理块号如表5-1所示。
则逻辑地址0A5C(H)所对应的物理地址为。
表5-1 页表中页号和物理块号对照表参考答案:0A5C(H)换成二进制:页号为2,查表,对应物理块号为4,与页内地址拼接成物理地址:再转换为十六进制,即125C(H)13、已知段表如表5-2所示。
逻辑地址线性地址物理地址三个地址有什么联系
逻辑地址线性地址物理地址三个地址有什么联系逻辑地址线性地址物理地址一、逻辑地址转线性地址我们写个最简单的helloworld程序,用gcc编译,再反汇编后会看到以下指令:mov0x80495b0,%eax这里的内存地址0x80495b0就是一个逻辑地址,必须加上隐含的DS数据段的基地址,才能构成线性地址。
也就是说0x80495b0是当前任务的DS数据段内的偏移。
在x86保护模式下,段的信息(段基线性地址、长度、权限等)即段描述符占8个字节,段信息无法直接存放在段寄存器中(段寄存器只有2字节)。
Intel的设计是段描述符集中存放在GDT或LDT中,而段寄存器存放的是段描述符在GDT或LDT内的索引值(index)。
这样的情况下Linux只用到了GDT,不论是用户任务还是内核任务,都没有用到LDT。
GDT的第12和13项段描述符是__KERNEL_CS和__KERNEL_DS,第14和15项段描述符是__USER_CS和__USER_DS。
内核任务使用__KERNEL_CS和__KERNEL_DS,所有的用户任务共用__USER_CS和__USER_DS,也就是说不需要给每个任务再单独分配段描述符。
内核段描述符和用户段描述符虽然起始线性地址和长度都一样,但DPL(描述符特权级)是不一样的。
__KERNEL_CS和__KERNEL_DS的DPL值为0(最高特权),__USER_CS和__USER_DS的DPL值为3。
用gdb调试程序的时候,用inforeg显示当前寄存器的值:cs0x73115ss0x7b123ds0x7b123es0x7b123可以看到ds值为0x7b,转换成二进制为0000000001111011,TI字段值为0,表示使用GDT,GDT索引值为01111,即十进制15,对应的就是GDT内的__USER_DS用户数据段描述符。
从上面可以看到,Linux在x86的分段机制上运行,却通过一个巧妙的方式绕开了分段。
逻辑地址转物理地址
逻辑地址转物理地址物理地址是明确的、最终用在总线上的编号。
那么逻辑地址转物理地址怎么转? 小编为大家介绍逻辑地址转物理地址的解决方法。
希望大家喜欢。
逻辑地址转物理地址参考如下1. 物理地址和逻辑地址物理地址:加载到内存地址寄存器中的地址,内存单元的真正地址。
在前端总线上传输的内存地址都是物理内存地址,编号从0开始一直到可用物理内存的最高端。
这些数字被北桥(Nortbridge chip)映射到实际的内存条上。
物理地址是明确的、最终用在总线上的编号,不必转换,不必分页,也没有特权级检查(no translation, no paging, no privilege checks)。
逻辑地址:CPU所生成的地址。
逻辑地址是内部和编程使用的、并不唯一。
例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址(偏移地址),不和绝对物理地址相干。
为什么会有这两种地址?个人觉的原因在于逻辑地址分配更加灵活,可以允许不唯一,看起来也较为直观,例如,一段代码中分配数组,逻辑地址上是连续的,然而在物理地址上,这个数组所占用的页可能分散开来,物理地址上就是不连续的,这样对程序的可理解性上有影响。
另外,有了逻辑地址这个概念,才能使用虚拟内存技术。
CPU将一个虚拟内存空间中的地址转换为物理地址,需要进行两步:首先将给定一个逻辑地址(其实是段内偏移量,这个一定要理解!!!),CPU要利用其段式内存管理单元,先将为个逻辑地址转换成一个线程地址,再利用其页式内存管理单元,转换为最终物理地址。
物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。
线性地址逻辑地址和物理地址的区别
线性地址逻辑地址和物理地址的区别:线性地址是逻辑地址到物理地址变换之间的中间层,是处理器可寻址的内存空间(称为线性地址空间)中的地址。
程序代码会产生逻辑地址,或者说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。
如果启用了分页机制,那么线性地址可以再经变换以产生一个物理地址。
若没有启用分页机制,那么线性地址直接就是物理地址。
不过,在开启分页功能之后,一个线性地址可能没有相对映的物理地址,因为它所对应的内存可能被交换到硬盘中。
32位线性地址可用于定位4GB存储单元。
所谓物理地址,就是指系统内存的真正地址。
对于32 位的操作系统,它的范围为0x00000000~0xFFFFFFFF,共有4GB。
只有当CPU工作于分页模式时,此种类型的地址才会变得非常“有趣”。
本质上,一个物理地址是CPU插脚上可测量的电压。
操作系统通过设立页表将线性地址映射为物理地址。
Windows 2K/XP所用页表布局的某些属性对于调试软件开发人员非常有用。
分页机制把线性地址空间和物理地址空间分别划分为大小相同的块。
这样的块称为页。
通过在线性地址空间的页与物理地址空间的页之间建立映射,分页机制可以实现线性地址到物理地址的转换。
线性地址空间的页与物理地址空间的页之间的映射可根据需要来确定。
线性地址空间的任何一页,可以映射为物理地址空间中的任何一页。
逻辑地址(Logical Address)是指由程式产生的和段相关的偏移地址部分。
例如,你在进行C语言指针编程中,能读取指针变量本身值(&操作),实际上这个值就是逻辑地址,他是相对于你当前进程数据段的地址,不和绝对物理地址相干。
只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程式执行代码段限长内的偏移地址(假定代码段、数据段如果完全相同)。
应用程式员仅需和逻辑地址打交道,而分段和分页机制对你来说是完全透明的,仅由系统编程人员涉及。
逻辑地址、线性地址、物理地址和虚拟地址理解
逻辑地址(Logical Address)是指由程式产生的和段相关的偏移地址部分。
例如,你在进行C语言指针编程中,能读取指针变量本身值(&操作),实际上这个值就是逻辑地址,他是相对于你当前进程数据段的地址,不和绝对物理地址相干。
只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程式执行代码段限长内的偏移地址(假定代码段、数据段如果完全相同)。
应用程式员仅需和逻辑地址打交道,而分段和分页机制对你来说是完全透明的,仅由系统编程人员涉及。
应用程式员虽然自己能直接操作内存,那也只能在操作系统给你分配的内存段操作。
线性地址(Linear Address)是逻辑地址到物理地址变换之间的中间层。
程式代码会产生逻辑地址,或说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。
如果启用了分页机制,那么线性地址能再经变换以产生一个物理地址。
若没有启用分页机制,那么线性地址直接就是物理地址。
Intel 80386的线性地址空间容量为4G(2的32次方即32根地址总线寻址)。
物理地址(Physical Address)是指出目前CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。
如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。
如果没有启用分页机制,那么线性地址就直接成为物理地址了。
虚拟内存(Virtual Memory)是指计算机呈现出要比实际拥有的内存大得多的内存量。
因此他允许程式员编制并运行比实际系统拥有的内存大得多的程式。
这使得许多大型项目也能够在具有有限内存资源的系统上实现。
一个非常恰当的比喻是:你不必非常长的轨道就能让一列火车从上海开到北京。
你只需要足够长的铁轨(比如说3公里)就能完成这个任务。
采取的方法是把后面的铁轨即时铺到火车的前面,只要你的操作足够快并能满足需求,列车就能象在一条完整的轨道上运行。
2.1什么是微处理器它包含哪几部分【精品推荐-doc】
习题22.1 什么是微处理器?它包含哪几部分?【解】:微处理器(CPU)的任务是执行存放在存储器里的指令序列。
为此,除要完成算术逻辑操作外,还需要担负CPU和存储器以及I/O之间的数据传送任务。
早期的CPU芯片只包括运算器和控制器两大部分。
从80386开始,为使存储器速度能更好地与运算器的速度相匹配,已在芯片中引入高速缓冲存储器。
它们主要由以下三部分组成。
(1)算术逻辑部件算术逻辑部件(Arithmetic Logic Unit,ALU)用来进行算术和逻辑运算及其相应操作。
(2)控制逻辑部件控制逻辑部件负责对全机的控制工作,包括从存储器取出指令,对指令进行译码分析,从存储器取得操作数,发出执行指令的所有命令,把结果存入存储器以及对总线及I/O的传送控制等。
(3)工作寄存器工作寄存器在计算机中起着重要的作用,每一个寄存器相当于运算器中的一个存储单元,但它的存取速度比存储器要快得多。
它用来存放计算过程中所需要的或所得到的各种信息,包括操作数地址、操作数及运算的中间结果等。
2.2 8086微处理器由哪几部分组成?各部分的功能是什么?【解】:按功能可分为两部分:总线接口单元BIU(Bus Interface Unit)和执行单元EU(Execution Unit)。
总线接口单元BIU是8086 CPU在存储器和I/O设备之间的接口部件,负责对全部引脚的操作,即8086对存储器和I/O设备的所有操作都是由BIU完成的。
所有对外部总线的操作都必须有正确的地址和适当的控制信号,BIU中的各部件主要是围绕这个目标设计的。
它提供了16位双向数据总线、20位地址总线和若干条控制总线。
其具体任务是:负责从内存单元中预取指令,并将它们送到指令队列缓冲器暂存。
CPU 执行指令时,总线接口单元要配合执行单元,从指定的内存单元或I/O端口中取出数据传送给执行单元,或者把执行单元的处理结果传送到指定的内存单元或I/O端口中。
执行单元EU中包含1个16位的运算器ALU、8个16位的寄存器、1个16位标志寄存器FR、1个运算暂存器和执行单元的控制电路。
微型计算机原理(第三章课后答案)
微型计算机原理(第三章课后答案).第三章80X86微处理器1.简述8086/8088CPU中BIU和EU的作用,并说明其并行工作过程。
答:(1)BIU的作用:计算20位的物理地址,并负责完成CPU与存储器或I/O端口之间的数据传送。
(2)EU的作用:执行指令,并为BIU提供所需的有效地址。
(3)并行工作过程:当EU从指令队列中取出指令执行时,BIU将从内存中取出指令补充到指令队列中。
这样就实现了取指和执行指令的并行工作。
2.8086/8088CPU内部有哪些寄存器?其主要作用是什么?答:8086/8088CPU内部共有14个寄存器,可分为4类:数据寄存器4个,地址寄存器4个,段寄存器4个和控制寄存器2个。
其主要作用是: (1) 数据寄存器:一般用来存放数据,但它们各自都有自己的特定用途。
AX(Accumulator)称为累加器。
用该寄存器存放运算结果可使指令简化,提高指令的执行速度。
此外,所有的I/O指令都使用该寄存器与外设端口交换信息。
BX(Base)称为基址寄存器。
用来存放操作数在内存中数据段内的偏移地址CX(Counter)称为计数器。
在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化有利于提高程序的运行速度。
DX(Data)称为数据寄存器。
在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。
(2)地址寄存器:一般用来存放段内的偏移地址。
SP(Stack Pointer)称为堆栈指针寄存器。
在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。
BP(Base Pointer)称为基址寄存器。
作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。
SI(Source Inde某)称为源变址寄存器。
逻辑地址与物理地址的区别
逻辑地址与物理地址的区别?逻辑地址(Logical Address)是指由程序产生的与段相关的偏移地址部分。
例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。
只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。
应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。
应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。
线性地址(Linear Address)是逻辑地址到物理地址变换之间的中间层。
程序代码会产生逻辑地址,或者说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。
如果启用了分页机制,那么线性地址可以再经变换以产生一个物理地址。
若没有启用分页机制,那么线性地址直接就是物理地址。
Intel 80386的线性地址空间容量为4G(2的32次方即32根地址总线寻址)。
物理地址(Physical Address)是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。
如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。
如果没有启用分页机制,那么线性地址就直接成为物理地址了。
虚拟内存(Virtual Memory)是指计算机呈现出要比实际拥有的内存大得多的内存量。
因此它允许程序员编制并运行比实际系统拥有的内存大得多的程序。
这使得许多大型项目也能够在具有有限内存资源的系统上实现。
一个很恰当的比喻是:你不需要很长的轨道就可以让一列火车从上海开到北京。
你只需要足够长的铁轨(比如说3公里)就可以完成这个任务。
采取的方法是把后面的铁轨立刻铺到火车的前面,只要你的操作足够快并能满足要求,列车就能象在一条完整的轨道上运行。
第4章_内存管理
(3)最坏适应分配算法(WF)
它每次分配主存时总是挑选一个最大的空闲区, 分割一部分给作业使用,使剩下的部分不至于太小 而成为主存碎片。为实现这种算法,把空闲区按长 度递减的次序登记在空闲分区表中,分配时,顺序 查找。 它的优点是不会产生过多的碎片。不影响大作 业的分配。另外收回主存时,要按长度递减的顺序 插入到空闲分区表中,增加了系统开销。
(2)最优适应分配算法(BF)
它是从所有的空闲分区中挑选一个能满足作业 要求的最小空闲区进行分配。这样可以保证不去分 割一个更大的空闲区,使装入大作业时比较容易得 到满足。为实现这种算法,把空闲区按长度递增次 序登记在空闲分区表中,分配时,顺序查找。 它的优点是解决了大作业的分配问题,不足是 容易产生主存碎片,降低了主存空间的利用率。另 外收回主存时,要按长度递增顺序插入到空闲分区 表中,增加了系统开销。
相应地,将内存空间划分成与页相同大小的 若干个物理块,称为块或页帧。 在为进程分配内存时,将进程中若干页分别 装入多个不相邻接的块中。
4.3.1 页式管理概述
2.地址结构: 分页系统的地址结构由两部分组成:前一部分 为页号P;后一部分为位移量W,即页内位移。 在下图中地址为32位,其中0~11位为页内位 移(每页的大小为4K),12~31位为页号,所以允 许地址空间的大小最多为1M个页。
地址重定位的原因是什么?
因为程序在装入内存后,其逻辑地 址和物理地址不一致。
源程序 (名空间)
0
逻辑地址空间
物理地址空间
BA=1000
Load A data1
100
Load A 200
Load A 200
编译 连接
data1 3456 200 3456
地址映射
modbus地址设置方案
Modbus地址设置方案1. 简介Modbus是一种通信协议,广泛应用于工业自动化领域。
在使用Modbus协议进行通信时,需要为每个设备设置一个唯一的Modbus地址,以便通信双方能够准确地进行数据交换。
本文将介绍一种常用的Modbus地址设置方案,以帮助用户正确配置Modbus设备。
2. 地址类型Modbus协议定义了两种地址类型,分别是物理地址和逻辑地址。
2.1 物理地址物理地址是设备在物理网络中的唯一标识,通常由设备的硬件属性决定。
物理地址是一个16位的整数,在Modbus协议中表示为一个字节。
2.2 逻辑地址逻辑地址是为了方便用户进行管理和配置而引入的,与物理地址一一对应。
逻辑地址可以是一种用户定义的、易于识别的标识符,例如设备的名称或序号。
逻辑地址也是一个16位的整数,在Modbus协议中表示为一个字节。
3. 地址范围根据Modbus协议的规定,物理地址和逻辑地址的范围分别为1-247和1-247。
地址0和地址255被保留,用户不应该使用这两个地址。
4. 地址分配方式Modbus地址可以手动分配或自动分配。
4.1 手动分配手动分配地址是指用户根据实际情况手动设置设备的物理地址和逻辑地址。
用户需要根据设备的硬件属性,选择一个未被使用的物理地址,并为该地址分配一个逻辑地址。
手动分配地址需要用户具备一定的Modbus协议知识和经验。
4.2 自动分配自动分配地址是一种更为简便的方式,适用于大规模部署设备的场景。
在自动分配地址方案中,用户只需设置一个起始地址,设备会自动分配一个未被占用的地址作为其物理地址和逻辑地址。
自动分配地址可以减少用户的工作量,提高部署效率。
5. 地址冲突处理由于Modbus地址的范围有限,可能会出现地址冲突的情况。
当两个设备使用相同的地址时,将无法进行正常通信。
为了避免地址冲突,可以采取以下方法:•手动分配地址时,用户需要注意检查已被占用的地址,避免重复使用。
•自动分配地址时,设备应该具备地址冲突检测和处理的功能,能够自动检测到地址冲突,并采取相应的措施解决冲突。
物理地址逻辑地址虚拟地址的概念
一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。
所以,说它是“与地址总线相对应”,是更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。
也许错误的理解更利于形而上的抽像。
虚拟内存(virtual memory)这是对整个内存(不要与机器上插那条对上号)的抽像描述。
它是相对于物理内存来讲的,可以直接理解成“不直实的”,“假的”内存,例如,一个0x08000000内存地址,它并不对就物理地址上那个大数组中0x08000000 - 1那个地址元素;之所以是这样,是因为现代操作系统都提供了一种内存管理的抽像,即虚拟内存(virtual memory)。
进程使用虚拟内存中的地址,由操作系统协助相关硬件,把它“转换”成真正的物理地址。
这个“转换”,是所有问题讨论的关键。
有了这样的抽像,一个程序,就可以使用比真实物理地址大得多的地址空间。
(拆东墙,补西墙,银行也是这样子做的),甚至多个进程可以使用相同的地址。
不奇怪,因为转换后的物理地址并非相同的。
——可以把连接后的程序反编译看一下,发现连接器已经为程序分配了一个地址,例如,要调用某个函数A,代码不是call A,而是call 0x0811111111 ,也就是说,函数A的地址已经被定下来了。
没有这样的“转换”,没有虚拟地址的概念,这样做是根本行不通的。
打住了,这个问题再说下去,就收不住了。
逻辑地址(logical address)Intel为了兼容,将远古时代的段式内存管理方式保留了下来。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是物理地址逻辑地址
网络中的地址分为物理地址和逻辑地址两类,与网络层的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比特的不同组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将唯一地址赋予以太网卡。
形象的说,MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。
如何获取本机的MAC?
对于数量不多的几台机器,我们可以这样获取MAC地址:在Windows 98/Me中,依次单击“开始”→“运行” →输入“winipcfg”→回车。
即可看到MAC地址。
在Windows 2000/XP中,依次单击“开始”→“运行”→输入“CMD”→回车→输入“ipconfig
/all”→回车。
即可看到MAC地址。
---------------------
逻辑地址是由:
16位段选择符
32位偏移量组成。
对逻辑地址的访问权和访问范围都要给以检查。
若通过检查,则
32位偏移量+基地址→线性地址。
段描述符内包括的信息有:段在存储器中的位置、这个段的基地址、段的大小、段描述符控制信息等。
段描述符保存在段描述符表中。
首先先回答什么是网络地址:
“地址”无非是让别人能找到你具体位置的一段资料信息,比如你的家庭地址就是你住家具体位置的一段资料,而“网络地址”无非就是让别人能在网络上找到你的一端网络信息,网络上定义位置不像家庭地址那样叫XX街XX号,网络上定义位置一般用IP地址和MAC地址来区别,
IP地址类似“和平街32号”,但是很有可能北京市有“和平街32号”上海也有“和平街32号”,并且就算指明了是北京和平街32号,也有可能32号是个社区,具体你要找32号里的几栋几单元几号就不清楚了,而IP地址目前只能记录下类似“和平街32”的比较模糊的网络地址。
MAC地址是每台计算机网卡内的一串12位并且数字兼字母的串号,这组串号理论上来说全世界是唯一不可重复的,他就类似你的身份证号码,理论上来说全世界是唯一的,只要我知道了你的身份证号码就能找到你的具体地址,并且这个地址是非常详细的。
什么又是逻辑地址呢:
什么叫“逻辑”?,简单的说逻辑就是人们为了方便记忆,把一些本来没规律的东西人为的划分成有规律的组合,比如:“香蕉、32、菠萝、跳高、跑步、boy”能满足“是汉字”这个条件的,按逻辑来分就有“香蕉、菠萝、跳高、跑步”;能满足“能吃的”这个条件,逻辑来分就有“香蕉、菠萝”,而逻辑地址说的简单点就是为了建立某种连接或运算来,以满足某种条件为前提,来区分一些数据的类型,比如你的计算机内存地址里有很多数据,所有能满足“大于2561并且小于3651并且是奇数”的数据被命名为“XSD”,这个被命名为“XSD”的地址就是逻辑地址。
逻辑地址不仅仅在计算机单机里运动的到,在网络一样运用的到。
物理地址和逻辑地址有什么区别?
了解更多的有关物理地址和逻辑地址区别可以从OSI模型入手。
考虑一下,所谓物理地址就是厂商在网络接口卡上编码的48位MAC地址。
这类地址是独特的,指的是以太网或者硬件的地址。
这类地址不能够改变,只能够欺骗。
MAC或者以太网地址是与OSI模型第二层(数据链路层)相关的。
逻辑地址是一种32位IP地址。
逻辑地址不嵌入在网卡中,而是分配给网卡以便用于网络之间的路由。
这类地址在OSI模型的第三层(网络)工作。
IP协议与TCP协议组合为TCP/IP协议,成为连接网络与网络(也就是互联网)的事实上的协议(也就是通用计算机语言。
OSI模型是国际标准组织(OSI)开发的一个标准,为软件开发和网络通信的一致性提供了一个蓝图。