① 虚拟地址与物理地址怎么映射
每个进程都是独立的虚拟地址空间,两个独立进程的相同地址互不干扰,但是在物理上对每早坦个进程可能也就分了一部分空间给了某个进梁睁派程,所橡贺以中间就要用到映射,调度某个进程执行时,就要把它的地址空间映射到一个物理空间上
② 什么叫物理地址什么叫逻辑地址什么叫地址映射地址映射分哪几类
什么叫物理地址?什么叫逻辑地址?什么叫地址映射?地址映射分哪几类?
1、物理地址就是由硬件地址编码电路产生的内存地址。
2、逻辑地址是软件程序中使用的地址,是为了编程的简易性、安全性等目的由物理地址按一些规则由物理地址转化而来的地址。比如将物理地址空间分为若干段,从而一个物理地址就可以由一个段地址和一个段内地址构成的逻辑地址来表示了----这种物理地址和逻辑地址的对用关系就叫地址映射:
3、映射本是个数学概念,描述两个集合元素之间的对应关系:如有两个集合A和B,如果对于A中的每一个元素,B中都有唯一的一个元素与之对应,A和B的这种对应关系就称为映射。
4、映射的种类很多,PC微机中有内存和外存之间映射、分页等,有文件映射,端口映射:即让内部网络中很多机器都能对外部网络提供WWW服务,只用一个网关IP地址,这当然需要把这些内部机器都映射到这同一个网关IP地址去了,这有很多好处,安全,省钱:就一个IP,当然省钱喽。
③ 如何将物理地址映射到基于页面的内存管理系统中的虚拟地址
如何将物理地址映射到基于页面的内存管理系统中的虚拟地址
Win32通过一个两层的表握凯派结构来实现地址映射,因为每个进程都拥有私有的4G的虚拟内存空间,相应的,每个进程都有自己的层次表结构来实现其地址映射。
第一孙迹层称为页目录,实际就是一个内存页,Win32的内存页有4KB大小,这个内存段贺页以4个字节分为1024项,每一项称为“页目录项”(PDE);
第二层称为页表,这一层共有1024个页表,页表结构与页目录相似,每个页表也都是一个内存页,这个内存页以4KB的大小被分为1024项,页表的每一项被称为页表项(PTE),易知共有1024×1024个页表项。每一个页表项对应一个物理内存中的某一个“内存页”,即共有1024×1024个物理内存页,每个物理内存页为4KB,这样就可以索引到4G大小的虚拟物理内存。
④ 基本分段存储管理方式的分段系统的基本原理
在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。例如,有主程序段MAIN、子程序段X、数据段D及栈段S等,如图4-17所示。每个段都有自己的名字。为了实现简单起见,通常可用一个段号来代替段名,每个段都从0开始编址,并采用一段连续的地址空间。段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。整个作业的地址空间由于是分成多个段,因而是二维的,亦即,其逻辑地址由段号(段名)和段内地址所组成。
分段地址中的地址具有如下结构:
在该地址结构中,允许一个作业最长有 64 K个段,每个段的最大长度为64 KB。分段方式已得到许多编译程序的支持,编译程序能自动地根据源程序的情况而产生若干个段。例如,Pascal编译程序可以为全局变量、用于存储相应参数及返回地址的过程调用栈、每个过程或函数的代码部分、每个过程或函数的局部变量等等,分别建立各自的段。类似地,Fortran编译程序可以为公共块(Common block)建立单独的段,也可以为数组分配一个单独的段。装入程序将装入所有这些段,并为每个段赋予一个段号。 为了实现从进程的逻辑颤明地址到物理地址的变换功能,在系统中设置了段表寄存器,用于存放段表始址和段表长度TL。在进行地址变换时,系统将逻辑地址中的段号与段表长度TL进行比较。若S>TL,表示段号太大,是访问越界,于是产生越界中断信号;若未越界,则根据段表的始址和该段的段号,计算出该段对应段表项的位置,从中读出该段在内存的起始地址,然后,再检查段内地址d是否超过该段的段长SL。若超过,即d>SL,同样发出越界中断信号;若未越界,则将该段茄弊告的基址d与段内地址相加,即可得到要访问的内存物理地址。
下图示出了分段系统的地址变换过程。
像分页系统一样,当段表放在内存中时,每要访问一个数据,都须访问两次内存,从而极大地降低了计算机的速率。解决的方法也和分页系统类似,再增设卜衫一个联想存储器,用于保存最近常用的段表项。由于一般情况是段比页大,因而段表项的数目比页表项的数目少,其所需的联想存储器也相对较小,便可以显着地减少存取数据的时间,比起没有地址变换的常规存储器的存取速度来仅慢约10%~15%。
⑤ 内存地址映射是什么
内存物理地址为橡清差A,即地址A而物理地址A得地址代码又需要内存来存放,我们设地址A存的地址为地址B所谓映射就是把存地址梁皮A代码的地址B由地址C来来指向地址B,也就是说通过C来间接正升的指向实际地址A 这就好比一个储藏库为A,地址代码为1111,我把这个地址代码放到B处(B里面放上A的地址代码1111),而B的地址为10000,我在把B的地址10000放到C中(01010),这样C就是对B的映射!
⑥ 什么是地址映射地址映射由计算机系统中的哪一个部分实现
为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运手物行时由机器直毕雀液接寻址的物理地址,这一过程称为地址映射。
地址映射最小单位为1页,4K大小,所以len值最小为:0x00001000。
地址映射分类:
地址映射也可以成为地址重定位或地址变换,可以分为以下两类:
静态重定位
当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在装入内存时由软件完成)。
动态重定位
在程序运行过程中要访问数据时再进岁没行地址变换(即在逐条指令执行时完成地址映射。一般为了提高效率,此工作由硬件地址映射机制来完成。由硬件支持,软件硬件结合完成。硬件上一般需要一对寄存器的支持)。
⑦ 分段存储管理需提供二维地址
一. 分页存储管理
1.基本思想
用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配。
2. 分页存储管理的地址机构
15 12 11 0
页号P 页内位移量W
页号4位,每个作业最多2的4次方=16页,表示页号从0000~1111(24-1),页内位移量的位数表示页的大小,若页内位移量12位,则2的12次方=4k,页的大小为4k,页内地址从000000000000~111111111111
若给定一个逻辑地址为A,页面大小为L,则
页号P=INT[A/L],页内地址W=A MOD L
3. 页表
分页系统中,允许将进程的每一页离散地存储在内存的任一物理块中,为了能在内存中找到每个页面对应的物理块,系统为每个进程建立一张页面映射表,简称页表。页表的作用是实现从页号到物理块号的地址映射。
页表:
页号 物理块号 存取控制
0 2
1 15(F)
2 14(E)
3 1
4. 地址变换
(1) 程序执行时,从PCB中取出页表始址和页表长度(4),装入页表寄存器PTR。
(2) 由分页地址变换机构将逻辑地址自动分成页号和页内地址。
例:11406D=0010|110010001110B=2C8EH
页号为2,位移量为C8EH=3214D
或11406 DIV 4096=2
11406 MOD 4096=3214
(3) 将页号与页表长度进行比较(2<4),若页号大于或等于页表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。
(4) 将页表始址与页号和页散者表项长度的乘积相加,便得到该页表项在页表中的位置。
(5) 取出页描述子得到该页的物理块号。 2 14(E)
(6) 对该页的存取控制进行检查。
(7) 将物理块号送入物理地址寄存器中,再将有效地址寄存器中的页内地址直接送入物理地址寄存器的块内地址字段中,拼接得到实际的物理地址。
例:0010|110010001101B
1110|110010001101B=EC8EH=60558D
或 14*4096+3214=60558D
5. 具有快表的地址变换机构
分页系统中,CPU每次要存取一个数据,都要两次访问内存(访问页表、访问实际物理地址)。为提高地址变换碧历速度,增设一个具有并行查询能力的特殊高速缓冲存储器,称冲慧薯为“联想存储器”或“快表”,存放当前访问的页表项。
二.分段存储管理
1.基本思想
将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配。
2. 分段存储方式的引入
方便编程
分段共享
分段保护
动态链接
动态增长
3. 分段地址结构
作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。例程序段、数据段等。每个段都从0开始编址,并采用一段连续的地址空间。
段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。整个作业的地址空间是二维的。
15 12 11 0
段号 段内位移量
段号4位,每个作业最多24=16段,表示段号从0000~1111(24-1);段内位移量12位,212=4k,表示每段的段内地址最大为4K(各段长度不同),从000000000000~111111111111
4. 段表
段号 段长 起始地址 存取控制
0 1K 4096
1 4K 17500
2 2K 8192
5. 地址变换
(1). 程序执行时,从PCB中取出段表始址和段表长度(3),装入段表寄存器。
(2). 由分段地址变换机构将逻辑地址自动分成段号和段内地址。
例:7310D=0001|110010001110B=1C8EH
段号为1,位移量为C8EH=3214D
(3). 将段号与段表长度进行比较(1<3),若段号大于或等于段表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。
(4). 将段表始址与段号和段表项长度的乘积相加,便得到该段表项在段表中的位置。
(5). 取出段描述子得到该段的起始物理地址。1 4K 17500
(6). 检查段内位移量是否超出该段的段长(3214<4K),若超过,产生越界中断。
(7). 对该段的存取控制进行检查。
(8). 将该段基址和段内地址相加,得到实际的物理地址。
例:0001|110010001101B
起始地址17500D+段内地址3214D=20714D
三.分页与分段的主要区别
分页和分段有许多相似之处,比如两者都不要求作业连续存放.但在概念上两者完全不同,主要表现在以下几个方面:
(1)页是信息的物理单位,分页是为了实现非连续分配,以便解决内存碎片问题,或者说分页是由于系统管理的需要.段是信息的逻辑单位,它含有一组意义相对完整的信息,分段的目的是为了更好地实现共享,满足用户的需要.
(2)页的大小固定,由系统确定,将逻辑地址划分为页号和页内地址是由机器硬件实现的.而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分.
(3)分页的作业地址空间是一维的.分段的地址空间是二维的.
四.段页式存储管理
1.基本思想:
分页系统能有效地提高内存的利用率,而分段系统能反映程序的逻辑结构,便于段的共享与保护,将分页与分段两种存储方式结合起来,就形成了段页式存储管理方式。
在段页式存储管理系统中,作业的地址空间首先被分成若干个逻辑分段,每段都有自己的段号,然后再将每段分成若干个大小相等的页。对于主存空间也分成大小相等的页,主存的分配以页为单位。
段页式系统中,作业的地址结构包含三部分的内容:段号 页号 页内位移量
程序员按照分段系统的地址结构将地址分为段号与段内位移量,地址变换机构将段内位移量分解为页号和页内位移量。
为实现段页式存储管理,系统应为每个进程设置一个段表,包括每段的段号,该段的页表始址和页表长度。每个段有自己的页表,记录段中的每一页的页号和存放在主存中的物理块号。
2.地址变换的过程:
(1)程序执行时,从PCB中取出段表始址和段表长度,装入段表寄存器。
(2)由地址变换机构将逻辑地址自动分成段号、页号和页内地址。
(3)将段号与段表长度进行比较,若段号大于或等于段表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。
(4)将段表始址与段号和段表项长度的乘积相加,便得到该段表项在段表中的位置。
(5)取出段描述子得到该段的页表始址和页表长度。
(6)将页号与页表长度进行比较,若页号大于或等于页表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。
(7)将页表始址与页号和页表项长度的乘积相加,便得到该页表项在页表中的位置。
(8)取出页描述子得到该页的物理块号。
(9)对该页的存取控制进行检查。
(10)将物理块号送入物理地址寄存器中,再将有效地址寄存器中的页内地址直接送入物理地址寄存器的块内地址字段中,拼接得到实际的物理地址。
⑧ 是如何实现逻辑地址到物理地址的映射
逻辑地址=基地址地址*10H+物理地址
详细可查阅 单片机或者微机原理 相关书籍!
⑨ 求教段页式地址映射过程
假设段页式系统有关数据结构如下,
(1)求虚地址69732的物段亩理地址(用十进制表示)
(2)该逻辑地址空间多大?
(3)每段的最大尺寸为多少?
数据结构(由于画出图形不方便,故用文字表示):
逻辑地址结构(s,p,w) 其中s为8位,没燃枝p为4位,w为12位
段表:枯敏0——页表0
1——页表1
2——页表2
页表0:0——0
1——2
2——3
页表1:0——5
1——8
2——9
页表2:0——7
1——4
2——A
⑩ 操作系统如何做到把逻辑地址映射为对应的物理地址
通过tcp/ip协议.和内存地址端口.如果没有这个协议销皮也可悔模以通过别的协议强加进去.但前提碧斗缓是硬件支持.