逻辑地址转物理地址
操作系统习题答案
例1:某分页系统,主存容量为64K,页面大小为1K,对一个4页大的作业,其0、1、2、3页分别被分配到主存的2、4、6、7块中。
将十进制的逻辑地址1023、2500、4500转换为物理地址。
1)逻辑地址1023:1023/1K得页号为0,页内地址为1023,查页表找到对应得物理块为2,故物理地址为2*1K+1023=3071。
2)逻辑地址2500:2500/1K得页号为2,页内地址为452,查页表找到对应得物理块为6,故物理地址为6*1K+452=6596。
3)逻辑地址4500:4500/1K得页号为4,页内地址为404,页号大于页表长度,产生越界中断例2:某系统有224字节的内存,固定分区的大小为216字节,1)进程表中的每个表项至少要用多少位来记录分配给进程的分区?2)界限寄存器必须要有多少位?1)224字节/ 216字节= 28字节,因此需要8位来存储28个分区中的一个。
2)固定分区的大小为216字节,故最大合法地址就是216-1,二进制中216-1就是16位,所以界限寄存器有16位。
例3:在某简单分页系统中,有224字节的物理内存,256页的逻辑地址空间,且页的大小为210字节,问逻辑地址有多少位?答:逻辑地址空间包括了256=28个大小为210字节的页,总的逻辑地址空间就是210×28=218字节,因此需要18位的地址来表示218字节地址空间。
例4:某系统的用户空间共有32个页面,每页1KB,主存16KB。
试问:1)逻辑地址的有效位就是多少?2)物理地址需要多少位?3)假定某时刻系统为用户的第0,1,2,3页分别分配的物理块号为5,10,4,7,试将虚地址0A5CH与093CH变换为物理地址。
答:1)逻辑地址空间包括了32=25个大小为210字节的页,总的逻辑地址空间就是25×210=215字节,因此需要15位的地址来表示215字节地址空间。
2)物理地址=主存16KB=214,因此物理地址需要14位。
微机原理练习题..
例1:8088属于多少位微处理器?数据线和地址线根数分别是多少?寻址空间多大?答:1.8088属于准16位微处理器;有8根数据线,20根地址线;寻址空间为220B,即1MB)。
例2:在8086/8088 CPU中,物理地址和逻辑地址是指什么?已知逻辑地址为1F86:38A5H,如何计算出其对应的物理地址?答:物理地址是 CPU访问存储器所用的地址。
逻辑地址是段地址和偏移地址形式的地址,即汇编语言程序中使用的存储器地址。
若已知逻辑地址为1F00:38A0H,则对应的物理地址=1F00H x 16+38A0H=228A0H。
例3:设(BL)=1100 1011B,变量V AR的内容为0011 0010B,求下列指令单独执行后BL的内容:(1)XOR BX,VAR;(2)AND BX,V AR;(3)OR BX,V AR;(4)XOR BX,11110000B;(5)AND BX,00001111B;解:(1)F9H (2)2H(3)0FBH(4)3BH(5)0BH例4:分析下列指令,对正确指令写出源操作数的寻址方式,对错误指令写出原因(设V AR为字变量)。
(1)MOV BX,V AR[SI](2)MOV BP,AL(3)MOV CS,AX(4)MOV DS,0100H (5)MOV AX,BX解:(1) ,寄存器相对寻址(2) ,类型不一致(3) ,CS不能作为目的操作数(4) ,当DS、ES、SS作为目的操作数时,源操作数不能是立即数(5) ,寄存器寻址例5.已知中断向量表中,001C4H中存放着2200H,001C6H中存放着3040H,则其中断类型码是____H,中断服务程序的入口地址的物理地址和逻辑地址分别是_____H和______H:_________.答:71H,32600H和3040H:2200H例6.8086CPU响应外部中断请求是在_ __A.一条指令执行结束B.一个机器周期结束C.立即响应D.根据中断类型决定例7.硬件中断可分为_ __和_____(答案:非屏蔽中断和可屏蔽中断)例8.下面是某8086微机内存中的部分数据,则中断类型号为11H的中断服务程序的入口地址存放在___A.0000H:0011HB. 0000H:0022HC. 0000H:0033HD. 0000H:0044H例9.当有如下中断请求时,微处理器执行完当前指令后,优先级别最底的响应是_ __A.INT0B.NMIC.INTRD.单步中断例10.在计算机系统中,微处理器对存储器单元和I/O端口的编址方法有统一编址和独立编址两种方法,8086/8088 CPU对I/O端口编址采用的是方法,当8088 CPU工作在最小方式时,用于区分访问存储器或I/O端口的控制信号(即引脚)为。
逻辑地址与物理地址
逻辑地址与物理地址物理地址是外部连接使用的、唯一的,它是“与地址总线相对应”;而逻辑地址是内部和编程使用的、并不唯一。
在内存中的实际地址就是所谓的“物理地址”,而逻辑地址就是逻辑段管理内存而形成的。
例如,你在进行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、完成下列数制之间的转换。
01011100B=92D135D=10000111B 10110010B=262Q=B2H 3、组合型BCD码和非组合型BCD码有什么区别?写出十进制数254的组合型BCD数和非组合型数。
答:组合型BCD码用高四位和低四位分别对应十进制数的个位和十位,其表示范围是0~99;非组合型BCD码用一个字节的低四位表示十进制数,高四位则任意取值,表示范围为0~9。
组合型:254=BCD 非组合型:254=BCD 7、计算机为什么采用补码形式存储数据?当计算机的字长n=16,补码的数据表示范围是多少?答:在补码运算过程中,符号位参加运算,简化了加减法规则,且能使减法运算转化为加法运算,可以简化机器的运算器电路。
+32767~ -32768。
9、设计算机字长n=8,求下列各式的[X+Y]补和[X-Y]补,并验证计算结果是否正确。
X=18,Y=89 [X+Y]补=00010010+01011001=01101011B=107D 正确[X-Y]补=10111001B=00010010+10100111=补正确X=-23,Y=-11 [X+Y]补=11101001+11110101=11011110B=补正确[X-Y]补=11101001+00001011=11110100B=补正确X=18,Y=-15 [X+Y]补=00010010+11110001=00000011B=补正确[X-Y]补=00010010+00001111=00100001B=补正确X=-18,Y=120 [X+Y]补=11101110+01111000=01100110B=补正确[X-Y]补=11101110+10001000=01110110B=补于X-Y=-138 超出了机器数范围,因此出错了。
13、微型计算机的主要性能指标有哪些?答:CPU字长、存储器容量、运算速度、CPU内核和IO工作电压、制造工艺、扩展能力、软件配置。
操作系统课件习题答案
例1:某分页系统,主存容量为64K,页面大小为1K,对一个4页大的作业,其0、1、2、3页分别被分配到主存的2、4、6、7块中。
将十进制的逻辑地址1023、2500、4500转换为物理地址。
1)逻辑地址1023:1023/1K得页号为0,页内地址为1023,查页表找到对应得物理块为2,故物理地址为2*1K+1023=3071。
2)逻辑地址2500:2500/1K得页号为2,页内地址为452,查页表找到对应得物理块为6,故物理地址为6*1K+452=6596。
3)逻辑地址4500:4500/1K得页号为4,页内地址为404,页号大于页表长度,产生越界中断例2:某系统有224字节的内存,固定分区的大小为216字节,1)进程表中的每个表项至少要用多少位来记录分配给进程的分区?2)界限寄存器必须要有多少位?1)224字节/ 216字节= 28字节,因此需要8位来存储28个分区中的一个。
2)固定分区的大小为216字节,故最大合法地址是216-1,二进制中216-1是16位,所以界限寄存器有16位。
例3:在某简单分页系统中,有224字节的物理内存,256页的逻辑地址空间,且页的大小为210字节,问逻辑地址有多少位?答:逻辑地址空间包括了256=28个大小为210字节的页,总的逻辑地址空间是210×28=218字节,因此需要18位的地址来表示218字节地址空间。
例4:某系统的用户空间共有32个页面,每页1KB,主存16KB。
试问:1)逻辑地址的有效位是多少?2)物理地址需要多少位?3)假定某时刻系统为用户的第0,1,2,3页分别分配的物理块号为5,10,4,7,试将虚地址0A5CH和093CH变换为物理地址。
答:1)逻辑地址空间包括了32=25个大小为210字节的页,总的逻辑地址空间是25×210=215字节,因此需要15位的地址来表示215字节地址空间。
2)物理地址=主存16KB=214,因此物理地址需要14位。
逻辑地址线性地址物理地址三个地址有什么联系
逻辑地址线性地址物理地址三个地址有什么联系逻辑地址线性地址物理地址一、逻辑地址转线性地址我们写个最简单的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.分页存储管理的存储保护是通过( )完成的.A.页表(页表寄存器)B.快表C.存储键D.索引动态重定2.把作业地址空间中使用的逻辑地址变成内存中物理地址称为()。
A、加载B、重定位C、物理化D、逻辑化3.在可变分区存储管理中的紧凑技术可以()。
A.集中空闲区B.增加主存容量C.缩短访问时间D.加速地址转换4.在存储管理中,采用覆盖与交换技术的目的是( )。
A.减少程序占用的主存空间B.物理上扩充主存容量C.提高CPU效率D.代码在主存中共享5.存储管理方法中,( )中用户可采用覆盖技术。
A.单一连续区 B. 可变分区存储管理C.段式存储管理 D. 段页式存储管理6.把逻辑地址转换成物理地址称为()。
A.地址分配B.地址映射C.地址保护D.地址越界7.在内存分配的“最佳适应法”中,空闲块是按()。
A.始地址从小到大排序B.始地址从大到小排序C.块的大小从小到大排序D.块的大小从大到小排序8.下面最有可能使得高地址空间成为大的空闲区的分配算法是()。
A.首次适应法B.最佳适应法C.最坏适应法D.循环首次适应法9.硬盘容量1G,内存容量为1024k,那么虚拟存储器最大实际容量可能是( ) 。
A.1024KB.1024MC.10GD.10G+1M10.用空白链记录内存空白块的主要缺点是()。
A.链指针占用了大量的空间B.分配空间时可能需要一定的拉链时间C.不好实现“首次适应法”D.不好实现“最佳适应法”11.一般而言计算机中()容量(个数)最多.A.ROMB.RAMC.CPUD.虚拟存储器12.分区管理和分页管理的主要区别是()。
A.分区管理中的块比分页管理中的页要小B.分页管理有地址映射而分区管理没有C.分页管理有存储保护而分区管理没有D.分区管理要求一道程序存放在连续的空间内而分页管理没有这种要求。
13.静态重定位的时机是()。
A.程序编译时B.程序链接时C.程序装入时D.程序运行时14.通常所说的“存储保护”的基本含义是()A.防止存储器硬件受损B.防止程序在内存丢失C.防止程序间相互越界访问D.防止程序被人偷看15.能够装入内存任何位置的代码程序必须是( )。
微机原理与接口技术(第四版)课后习题答案(1)
第1章微型计算机系统〔习题1.1〕简答题(2)总线信号分成哪三组信号?(3)PC机主存采用DRAM组成还是SRAM组成?(5)ROM-BIOS是什么?(6)中断是什么?(9)处理器的“取指-译码-执行周期”是指什么?〔解答〕②总线信号分成三组,分别是数据总线、地址总线和控制总线。
③ PC机主存采用DRAM组成。
⑤ ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。
⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。
⑨指令的处理过程。
处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
〔习题1.3〕填空题(2)Intel 8086支持___________容量主存空间,80486支持___________容量主存空间。
(3)二进制16位共有___________个编码组合,如果一位对应处理器一个地址信号,16位地址信号共能寻址___________容量主存空间。
(9)最初由公司采用Intel 8088处理器和()操作系统推出PC 机。
② 1MB,4GB③ 216,64KB(9)IBM,DOS〔习题1.4〕说明微型计算机系统的硬件组成及各部分作用。
〔解答〕CPU:CPU也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。
处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:存储器是存放程序和数据的部件。
外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。
I/O设备通过I/O接口与主机连接。
逻辑地址转物理地址
逻辑地址转物理地址物理地址是明确的、最终用在总线上的编号。
那么逻辑地址转物理地址怎么转? 小编为大家介绍逻辑地址转物理地址的解决方法。
希望大家喜欢。
逻辑地址转物理地址参考如下1. 物理地址和逻辑地址物理地址:加载到内存地址寄存器中的地址,内存单元的真正地址。
在前端总线上传输的内存地址都是物理内存地址,编号从0开始一直到可用物理内存的最高端。
这些数字被北桥(Nortbridge chip)映射到实际的内存条上。
物理地址是明确的、最终用在总线上的编号,不必转换,不必分页,也没有特权级检查(no translation, no paging, no privilege checks)。
逻辑地址:CPU所生成的地址。
逻辑地址是内部和编程使用的、并不唯一。
例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址(偏移地址),不和绝对物理地址相干。
为什么会有这两种地址?个人觉的原因在于逻辑地址分配更加灵活,可以允许不唯一,看起来也较为直观,例如,一段代码中分配数组,逻辑地址上是连续的,然而在物理地址上,这个数组所占用的页可能分散开来,物理地址上就是不连续的,这样对程序的可理解性上有影响。
另外,有了逻辑地址这个概念,才能使用虚拟内存技术。
CPU将一个虚拟内存空间中的地址转换为物理地址,需要进行两步:首先将给定一个逻辑地址(其实是段内偏移量,这个一定要理解!!!),CPU要利用其段式内存管理单元,先将为个逻辑地址转换成一个线程地址,再利用其页式内存管理单元,转换为最终物理地址。
物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。
逻辑地址转化物理地址
ቤተ መጻሕፍቲ ባይዱ
当逻辑地址为十进制时页号等于逻辑地址页面大小商为页号通过对应关系得出块号余数为偏移量
逻辑地址转化物理地址
1.页内地址=块内地址。 2.逻辑地址=页号+页内地址(块内地址)。 3.当逻辑地址为十六进制时,先将地址化为二进制,取前六位为页号。通过对应关系得出块号。真实的物理地址为“块号 块内 地址”。 4.当逻辑地址为十进制时,页号等于逻辑地址/页面大小,商为页号,通过对应关系得出块号,余数为偏移量。物理地址为“块 号*页面大小+偏移量”。
线性地址逻辑地址和物理地址的区别
线性地址逻辑地址和物理地址的区别:线性地址是逻辑地址到物理地址变换之间的中间层,是处理器可寻址的内存空间(称为线性地址空间)中的地址。
程序代码会产生逻辑地址,或者说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。
如果启用了分页机制,那么线性地址可以再经变换以产生一个物理地址。
若没有启用分页机制,那么线性地址直接就是物理地址。
不过,在开启分页功能之后,一个线性地址可能没有相对映的物理地址,因为它所对应的内存可能被交换到硬盘中。
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公里)就可以完成这个任务。
采取的方法是把后面的铁轨立刻铺到火车的前面,只要你的操作足够快并能满足要求,列车就能象在一条完整的轨道上运行。
操作系统原理第五章 存储管理习题
5.3 习题5.3.1选择最合适的答案1.分页存储管理的存储保护是通过( )完成的.A.页表(页表寄存器)B.快表C.存储键D.索引动态重定2.把作业地址空间中使用的逻辑地址变成内存中物理地址称为()。
A、加载B、重定位C、物理化D、逻辑化3.在可变分区存储管理中的紧凑技术可以()。
A.集中空闲区B.增加主存容量C.缩短访问时间D.加速地址转换4.在存储管理中,采用覆盖与交换技术的目的是( )。
A.减少程序占用的主存空间B.物理上扩充主存容量C.提高CPU效率D.代码在主存中共享5.存储管理方法中,( )中用户可采用覆盖技术。
A.单一连续区 B. 可变分区存储管理C.段式存储管理 D. 段页式存储管理6.把逻辑地址转换成物理地址称为()。
A.地址分配B.地址映射C.地址保护D.地址越界7.在内存分配的“最佳适应法”中,空闲块是按()。
A.始地址从小到大排序B.始地址从大到小排序C.块的大小从小到大排序D.块的大小从大到小排序8.下面最有可能使得高地址空间成为大的空闲区的分配算法是()。
A.首次适应法B.最佳适应法C.最坏适应法D.循环首次适应法9.硬盘容量1G,内存容量为1024k,那么虚拟存储器最大实际容量可能是( ) 。
A.1024KB.1024MC.10GD.10G+1M10.用空白链记录内存空白块的主要缺点是()。
A.链指针占用了大量的空间B.分配空间时可能需要一定的拉链时间C.不好实现“首次适应法”D.不好实现“最佳适应法”11.一般而言计算机中()容量(个数)最多.A.ROMB.RAMC.CPUD.虚拟存储器12.分区管理和分页管理的主要区别是()。
A.分区管理中的块比分页管理中的页要小B.分页管理有地址映射而分区管理没有C.分页管理有存储保护而分区管理没有D.分区管理要求一道程序存放在连续的空间内而分页管理没有这种要求。
13.静态重定位的时机是()。
A.程序编译时B.程序链接时C.程序装入时D.程序运行时14.通常所说的“存储保护”的基本含义是()A.防止存储器硬件受损B.防止程序在内存丢失C.防止程序间相互越界访问D.防止程序被人偷看15.能够装入内存任何位置的代码程序必须是( )。
微机原理题库
微机原理题库第1章微型计算机基础知识⼀.填空题1.将10110.10111B的⼗六进制数是_______________,34.97H的⼗进制数是_______________,将114.35转换为⼆进制为______________。
解答:10110.10111B的⼗六进制数是16.B8H ,34.97H的⼗进制数是52.6055 ,将114.35转换⼆进制为1110010.01011B 。
2.100101.11B+(110101.1)BCD+5A.18H=___________D解答:100101.11B+(110101.1) BCD+5A.18H=163.6438D3.每个汉字的编码有字节组成,ASCII的最⾼位B7=,⽽汉字的内码的最⾼位B7=。
计算机根据字节的最⾼位来区分ASCII码和汉字内码。
解答:每个汉字的编码有2个字节组成,ASCII的最⾼位B7= 0 ,⽽汉字的内码的最⾼位B7= 1 。
计算机根据字节的最⾼位来区分ASCII码和汉字内码。
4.[X]补=0A8H,则X=_______D.解答:X=_-88_D5. 已知[X]补=00010111B,则[-4X]补= B解答:[-4X]补=10100100 B6.若[X]原=[Y]反=[Z]补=90H,试⽤⼗进制数分别写出其⼤⼩,X=;Y=;Z=。
解答:X=-16 ;Y=-111 ;Z=-1127.计算机的主机由、控制器、主存储器组成。
解答:计算机的主机由运算器、控制器、主存储器组成。
8.__________确定了计算机的5个基本部件:输⼊器、_________、运算器和__________和控制器,程序和数据存放在__________中,并采⽤了⼆进制。
解答:冯·诺依曼结构计算机确定了计算机的5个基本部件:输⼊器、输出器、运算器和存储器和控制器。
数据和程序都是存放在存储器中,并采⽤了⼆进制。
9.将下列⼗六进制数的ASCII码转换为⼗进制数。
操作系统课件习题答案
例1:某分页系统,主存容量为64K,页面大小为1K,对一个4页大的作业,其0、1、2、3页分别被分配到主存的2、4、6、7块中。
将十进制的逻辑地址1023、2500、4500转换为物理地址。
1)逻辑地址1023:1023/1K得页号为0,页内地址为1023,查页表找到对应得物理块为2,故物理地址为2*1K+1023=3071。
2)逻辑地址2500:2500/1K得页号为2,页内地址为452,查页表找到对应得物理块为6,故物理地址为6*1K+452=6596。
3)逻辑地址4500:4500/1K得页号为4,页内地址为404,页号大于页表长度,产生越界中断例2:某系统有224字节的内存,固定分区的大小为216字节,1)进程表中的每个表项至少要用多少位来记录分配给进程的分区2)界限寄存器必须要有多少位1)224字节/ 216字节= 28字节,因此需要8位来存储28个分区中的一个。
2)固定分区的大小为216字节,故最大合法地址是216-1,二进制中216-1是16位,所以界限寄存器有16位。
例3:在某简单分页系统中,有224字节的物理内存,256页的逻辑地址空间,且页的大小为210字节,问逻辑地址有多少位答:逻辑地址空间包括了256=28个大小为210字节的页,总的逻辑地址空间是210×28=218字节,因此需要18位的地址来表示218字节地址空间。
例4:某系统的用户空间共有32个页面,每页1KB,主存16KB。
试问:1)逻辑地址的有效位是多少2)物理地址需要多少位3)假定某时刻系统为用户的第0,1,2,3页分别分配的物理块号为5,10,4,7,试将虚地址0A5CH和093CH变换为物理地址。
答:1)逻辑地址空间包括了32=25个大小为210字节的页,总的逻辑地址空间是25×210=215字节,因此需要15位的地址来表示215字节地址空间。
2)物理地址=主存16KB=214,因此物理地址需要14位。
重定位的方法(一)
重定位的方法(一)深入了解重定位什么是重定位重定位(relocation)是指将一个事物从一个位置移动到另一个位置的过程。
在计算机领域,重定位指的是将程序或者数据从一个内存地址移动到另一个内存地址的过程。
重定位常用于操作系统中,实现动态链接、内存管理等功能。
操作系统层面的重定位操作系统负责管理计算机的各种资源,包括内存。
在操作系统中,重定位是一个重要的概念。
操作系统通过重定位机制,可以将程序加载到不同的内存地址空间中,从而实现程序的正常运行。
常见的操作系统层面的重定位方法有:1.绝对重定位(Absolute Relocation):在绝对重定位中,程序和数据被加载到一个指定的内存地址,程序中的所有地址引用都是相对于该基地址的偏移量。
这种方法简单直接,但存在局限性,程序只能加载到事先指定的内存地址。
2.逻辑地址重定位(Logical Address Relocation):逻辑地址重定位是一种相对于基地址的偏移量,而不是直接的物理地址。
在程序执行前,逻辑地址将被转换为真实的物理地址。
3.页表重定位(Page Table Relocation):页表是一种数据结构,用于将程序的逻辑地址映射到物理地址。
通过页表重定位,操作系统可以将程序加载到任意的物理内存地址中。
编程层面的重定位在编程中,重定位主要指的是调整程序中的地址引用,以适应不同的运行环境。
编程层面的重定位可以分为静态重定位和动态重定位。
常见的编程层面的重定位方法有:1.静态重定位(Static Relocation):在静态重定位中,程序在编译时被转换为可以在特定地址上运行的机器码。
静态重定位可以通过调整偏移量来实现,使得程序可以加载到不同的内存地址空间中。
2.动态重定位(Dynamic Relocation):在动态重定位中,程序在运行时根据需要进行地址调整。
动态重定位可以通过程序运行时解析符号并调整地址引用来实现,使得程序可以适应不同的运行环境。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
逻辑地址转物理地址
逻辑地址转物理地址参考如下
1.物理地址和逻辑地址
为什么会有这两种地址?
个人觉的原因在于逻辑地址分配更加灵活,可以允许不唯一,看起来也较为直观,例如,一段代码中分配数组,逻辑地址上是连续的,然而在物理地址上,这个数组所占用的页可能分散开来,物理
地址上就是不连续的,这样对程序的可理解性上有影响。
另外,有
了逻辑地址这个概念,才能使用虚拟内存技术。
CPU将一个虚拟内存空间中的地址转换为物理地址,需要进行两步:首先将给定一个逻辑地址(其实是段内偏移量,这个一定要理
解!!!),CPU要利用其段式内存管理单元,先将为个逻辑地址转换
成一个线程地址,再利用其页式内存管理单元,转换为最终物理地址。
物理地址(physicaladdress)
用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,
然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供
给软件的抽像,内存的寻址方式并不是这样。
所以,说它是“与地
址总线相对应”,是更贴切一些,不过抛开对物理内存寻址方式的
考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。
也许错误的理解更利于形而上的抽像。
虚拟内存(virtualmemory)
这是对整个内存(不要与机器上插那条对上号)的抽像描述。
它是相对于物理内存来讲的,可以直接理解成“不直实的”,“假的”
内存,例如,一个0x08000000内存地址,它并不对就物理地址上那
个大数组中0x08000000-1那个地址元素;
有了这样的抽像,一个程序,就可以使用比真实物理地址大得多的地址空间。
(拆东墙,补西墙,银行也是这样子做的),甚至多个
进程可以使用相同的地址。
不奇怪,因为转换后的物理地址并非相
同的。
逻辑地址(logicaladdress)
Intel为了兼容,将远古时代的段式内存管理方式保留了下来。
逻辑地址指的是机器语言指令中,用来指定一个操作数或者是一条
指令的地址。
以上例,我们说的连接器为A分配的0x08111111这个
地址就是逻辑地址。
——不过不好意思,这样说,好像又违背了Intel中段式管理中,对逻辑地址要求,“一个逻辑地址,是由一个段标识符加上一个指
定段内相对地址的偏移量,表示为[段标识符:段内偏移量],也就
是说,上例中那个0x08111111,应该表示为[A的代码段标识
符:0x08111111],这样,才完整一些”
线性地址(linearaddress)或也叫虚拟地址(virtualaddress)
跟逻辑地址类似,它也是一个不真实的地址,如果逻辑地址是对应的硬件平台段式管理转换前地址的话,那么线性地址则对应了硬
件页式内存的转换前地址。