分页存储--逻辑地址转物理地址
第三章习题
• 4. 静态重定位是在作业的 B 中进行的,动态重定位是在 作业的 D 中进行的。 • A:编译过程;B:装入过程;C:修改过程;D:执行过程。 • 5. 请求分页存储管理中,若把页面尺寸增加一倍,在程序 顺序执行时,则一般缺页中断次数会( )。 • A.增加 B.减少 C.不变 D.可能增加也可能减少 • 6.( )存储管理支持多道程序设计,算法简单,但存 储碎片多。 • A.段式 B.页式 C.固定分区 D.段页式
19、 ( )是指将作业不需要或暂时不需要的部分移到外 存,让出内存空间以调入其他所需数据。 A.覆盖技术 B.交换技术 C.虚拟技术 D.物理扩充 20、 外存(如磁盘)上存放的程序和数据( )。 A.可由CPU直接访问 B.必须在CPU访问之前移入内存 C.是必须由文件系统管理的 D.必须由进程调度程序管理 21、分区管理要求对每一个作业都分配( )的内存单元。 A.地址连续 B.若干地址不连续 C.若干连续的帧 D.若干不连续的帧
• 22.把逻辑地址转变为内存的物理地址的过程称作 ( ) • A.编译 B.连接 C.运行 D.重定位 • 23.分页存储管理的目的为( ) • A.解决碎片问题 B.便于多个进程共享内存 • C.回收空白区方便 D.摆脱用户干预 • 24.在页式存储管理方案中,采用______实现地址转换。 ( ) • A.页表 B.段表 C.段表和页表 D.空闲区表
• C.请求分页技术 D.对换技术 • 9、下列( )存储管理方式能使存储碎片尽可能少,而且 有利于实现作业的共享。 • A.固定分区 B.可变分区 • C.分页管理 D.段页式管理
• 10、操作系统中采用缓冲技术的目的是为了增强系统( ) 的能力。 • A.串行操作 B. 控制操作 C.重执操作 D.并行操作
分页存储管理
非连续分配方式1.基本内容:页式存储管理基本思想、数据结构、地址转换过程。
段式存储管理以及段页式存储管理。
2.学习要求:;掌握页式存储管理、段式存储管理以及段页式存储管理的实现原理、数据结构、地址转换机构等内容。
3.教学要求:本单元共安排4学时。
采用教员课堂讲授方法实施教学。
该部分内容抽象,是本章学习重点与难点。
课后可通过课程设计使学员加深对于抽象理论的理解和掌握。
4.重点:各种管理实现原理、数据结构、地址转换机构。
5.难点:段式存储管理。
分页存储管理可重定位分区分配虽然可以解决碎片和共享问题,但由于信息的大量移动而损失了许多宝贵的CPU时间,且存储用户的作业受到实际存储容量的限制。
多重分区分配虽在一定程度上解决了这些问题,但由于要求各分区设置分段的重定位寄存器,存储分配策略较复杂,且需较多的硬件支持。
分页式管理技术通过地址转换机制,能明显消除内、外存之间的差别,将外存看作内存的扩充和延伸。
并能很好解决“外零头”的问题。
一、分页在储管理实现的基本思想:在分页存储管理中,将每个作业的逻辑地址空间分为大小相同的块,称为虚页面或页(page),通常页面大小为2的整数次幂(512K~4K)。
同样地,将物理空间也划分为与页面大小相等的块,称之为存储块或页框(page frame),为作业分配存储空间时,总是以页框为单位。
例如:一个作业的地址空间有M页,那么只要分配给它M个页框,每一页分别装入一个页框即可。
纯分页系统的定义:指在调度一个作业时,必须把它的所有页一次装入到主存的矾框。
若当时页框数不足,则该作业必须等待,系统再调度其他作业。
这里,并不要求这些页框是相邻的。
即连续逻辑地址空间的页面,通过页面地址转换机构可以映射到不连续的内存块中。
对地址空间的分页是由系统自动进行的,其逻辑地址由相对页号和页内位移量(页内地址)两部分组成(下面a)。
图中设逻辑地址长度为16位,可表示64K的逻辑地址空间。
物理地址也由块号及块内移量(块内地址)两部分组成(下图b)。
操作系统习题答案
例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位。
操作系统计算题
计算题:一、 生产消费者问题为解决生产者消费者问题,应该设两个同步信号量,一个说明空缓冲区的数目,用S1 表示,初值为有界缓冲区的大小N ,另一个说明已用缓冲区的数目,用S2表示,初值 为0。
由于在此问题中有M 个生产者和N 个消费者,它们在执行生产活动和消费活动中要对有界缓冲区进行操作。
由于有界缓冲区是一个临界资源,必须互斥使用,所以,另外还需要设置一个互斥信号量mutex ,其初值为1。
二、 地址转换例1:若在一分页存储管理系统中,某作业的页表如下所示。
已知页面大小为1024字节,试将逻辑地址1011,2148,3000,4000,5012转化为相应的物理地址。
页号 块号0 21 32 13 6解:本题中,为了描述方便,设页号为P ,页内位移为W ,逻辑地址为A ,页面大小为L ,则:p=int(A/L)w=A mod L对于逻辑地址1011p=int(1011/1024)=0w=1011 mod 1024=1011查页表第0页在第二块,所以物理地址为3059。
对于逻辑地址2148p=int(2148/1024)=2w=2148 mod 1024=100查页表第2页在第1块,所以物理地址为1124。
对于逻辑地址3000p=int(3000/1024)=2w=3000 mod 1024=928查页表第2页在第1块, 所以物理地址为1796。
对于逻辑地址4000p=int(4000/1024)=3w=4000mod 1024=928查页表第3页在第6块, 所以物理地址为7072。
对于逻辑地址5012p=int(5012/1024)=4w=5012mod1024=916因页号超过页表长度,该逻辑地址非法。
例2:在一分页存储管理系统中,逻辑地址长度为16位,页面大小为4096字节,现有一逻辑地址为2F6AH,且第0, 1, 2页依次存放在物理块5, 10 ,11中,问相应的物理地址为多少?解:由题目所给给条件可知,本页式系统的逻辑地址结构为:逻辑地址2F6AH的二进制表示如下:由此可知逻辑地址2F6AH的页号为2,该页存放在第11号物理块中,用十六进制表示志号为B,所以物理地址为BF6AH.三、求文件最大长度例:设文件索引节点中有7个地址项,其中4个地址项为直接地址索引,2个地址项是一级间接地址索引,1个地址项是二级间接地址索引,每个地址项大小为4字节,若磁盘索引块和盘块大小均为256字节,则可表示的单个文件的最大长度是多少?解答:本题的文件结构属混合索引分配方式。
实验四 操作系统存储管理实验报告
实验四操作系统存储管理实验报告一、实验目的本次操作系统存储管理实验的主要目的是深入理解操作系统中存储管理的基本原理和方法,通过实际操作和观察,掌握内存分配、回收、地址转换等关键技术,提高对操作系统存储管理机制的认识和应用能力。
二、实验环境操作系统:Windows 10开发工具:Visual Studio 2019三、实验原理1、内存分配方式连续分配:分为单一连续分配和分区式分配(固定分区和动态分区)。
离散分配:分页存储管理、分段存储管理、段页式存储管理。
2、内存回收算法首次适应算法:从内存低地址开始查找,找到第一个满足要求的空闲分区进行分配。
最佳适应算法:选择大小最接近作业需求的空闲分区进行分配。
最坏适应算法:选择最大的空闲分区进行分配。
3、地址转换逻辑地址到物理地址的转换:在分页存储管理中,通过页表实现;在分段存储管理中,通过段表实现。
四、实验内容及步骤1、连续内存分配实验设计一个简单的内存分配程序,模拟固定分区和动态分区两种分配方式。
输入作业的大小和请求分配的分区类型,程序输出分配的结果(成功或失败)以及分配后的内存状态。
2、内存回收实验在上述连续内存分配实验的基础上,添加内存回收功能。
输入要回收的作业号,程序执行回收操作,并输出回收后的内存状态。
3、离散内存分配实验实现分页存储管理的地址转换功能。
输入逻辑地址,程序计算并输出对应的物理地址。
4、存储管理算法比较实验分别使用首次适应算法、最佳适应算法和最坏适应算法进行内存分配和回收操作。
记录不同算法在不同作业序列下的内存利用率和分配时间,比较它们的性能。
五、实验结果与分析1、连续内存分配实验结果固定分区分配方式:在固定分区大小的情况下,对于作业大小小于或等于分区大小的请求能够成功分配,否则分配失败。
内存状态显示清晰,分区的使用和空闲情况一目了然。
动态分区分配方式:能够根据作业的大小动态地分配内存,但容易产生内存碎片。
2、内存回收实验结果成功回收指定作业占用的内存空间,内存状态得到及时更新,空闲分区得到合并,提高了内存的利用率。
分页存储管理系统中逻辑地址到物理地址的转换
解: (O是啥意思呢?H是十六进制) 法一,拼凑
1. A6F === 1010 0110 1111 2. 页面大小为1KB,所以,页面长度为10比特,所以,10 为页号,等于十进制2 3. 以题中条件,2对应物理块11,11转化为二进制为 1011, 加上页内地址 4. 1011 10 0110 1111 === 10 1110 0110 1111 === 2E6F
法二 ,10进制
1. A6F === 2671, 2671/1024 == 2 … 623 2. 11 * 1024 + 623 === 11887 === 2E6F
法三,16进制 1. 1024 === 400 2. A6F/400 === 2 … 26F 3. 11 === B 4. B*400+26F === 2E6F
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名ቤተ መጻሕፍቲ ባይዱ忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
分页存储管理系统中逻辑地址到物理地址的转换
题目: 一分页存储管理系统中逻辑地址长度为16位,页面大小为1KB。现有一逻辑地址为OA6FH,且第0、1、2、3页依次存放在物理块3、7、 11、10中。逻辑地址OA6FH对应的物理地址为( )。
14存储管理3分段段页式管理
段号 状态 页表大小 页表始址 0 1 1 1 2 1 3 0 4 1 段表
页表 主存
图4-22 利用段表和页表实现地址映射
2.地址变换过程
在段页式系统中,为了便于实现地址变换,须配 置一个段表寄存器,其中存放段表始址和段表长TL。 进行地址变换时,首先利用段号S,将它与段表长TL进 行比较。若S<TL,表示未越界,于是利用段表始址和 段号来求出该段所对应的段表项在段表中的位置,从 中得到该段的页表始址,并利用逻辑地址中的段内页 号P来获得对应页的页表项位置,从中读出该页所在的 物理块号b,再利用块号b和页内地址来构成物理地址。 图4-23示出了段页式系统中的地址变换机构。
2.页表
列出了作业的逻辑地址与其在主存中的 物理地址间的对应关系。 一个页表中包含若干个表目,表目的自 然序号对应于用户程序中的页号,表目 中的块号是该页对应的物理块号。 页表的每一个表目除了包含指向页框的 指针外,还包括一个存取控制字段。 表目也称为页描述子。
分页管理中页与页框的对应 关系示意图
段表寄存器 段表始址 + 段表 0 1 2 3 页表长度 + 0 1 2 3 b 块号 b 块内地址 页表 段表长度 > 段超长 段号S 页号P 页内地址
页表始址
图4-23
段页式系统中的地址变换机构
在段页式系统中,为了获得一条指令或数据,须 三次访问内存。第一次访问是访问内存中的段表,从 中取得页表始址;第二次访问是访问内存中的页表, 从中取出该页所在的物理块号,并将该块号与页内地 址一起形成指令或数据的物理地址;第三次访问才是 真正从第二次访问所得的地址中,取出指令或数据。 显然,这使访问内存的次数增加了近两倍。为了 提高执行速度,在地址变换机构中增设一个高速缓冲 寄存器。每次访问它时,都须同时利用段号和页号去 检索高速缓存,若找到匹配的表项,便可从中得到相 应页的物理块号,用来与页内地址一起形成物理地址; 若未找到匹配表项,则仍须再三次访问内存。
逻辑地址线性地址物理地址三个地址有什么联系
逻辑地址线性地址物理地址三个地址有什么联系逻辑地址线性地址物理地址一、逻辑地址转线性地址我们写个最简单的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. 页(Page):是内存的最小分配单位,通常大小为固定的2的幂次方大小(如4KB)。
2. 页表(Page Table):是一个数据结构,用于存储虚拟页和物理页之间的映射关系。
3. 页偏移(Page Offset):是逻辑地址在页内的偏移量,用于定位页内的具体地址。
地址转换过程如下:
1. 将逻辑地址拆分为两部分:页面号(Page Number)和页偏移。
2. 使用页面号作为索引,在页表中查找对应的页表条目。
3. 如果找到了对应的页表条目,检查该条目的有效位(Valid Bit)是否为1。
如果为0,则表示页面未分配或未加载到内存,此时可能触发缺页异常(Page Fault)。
如果为1,则表示该页已经加载到内存中。
4. 如果有效位为1,使用页表条目中的物理页号(Page Frame Number)替换逻辑页面号,并将页偏移添加到物理页号上,得到物理地址。
需要注意的是,页表条目中的物理页号不是直接使用的物理地址,而是用于计算
物理地址的一部分。
物理地址通常是物理页号和页偏移的组合。
分页系统的地址转换原理的目的是实现虚拟内存的机制,将程序的逻辑地址空间映射到实际的物理内存空间中,提供更大的地址空间和更灵活的内存管理机制。
(完整版)操作系统复习题附答案
3、进程高级通信的3种机制?主从式,会话式,消息队列或邮箱方式,共享存储区方式
五、应用题
1、信号量操作解决问题:互斥、前趋关系图、经典同步问题。
第3章处理机调度与死锁
一、填空题
1、产生死锁的原因,一是竞争资源,二是进程的(运行推进的顺序)不当。
2、死锁是系统中两个或两个以上的进程由于竞争系统资源而出现的一种(处于无限期等待,系统处于停滞状态)现象。
2、像打印机这类一次只允许一个进程使用的资源称为临界资源。T
3、进程是静态的,程序是动态的。F
4、进程互斥关系是一种特殊的进程同步关系。T
四、简答题
1、简述进程的5个特征。动态性,并发性,独立性,制约性,异步性,结构性。
2、什么叫进程同步机制?请叙述进程同步机制的4条准则。
进程同步时指系统中多个进程发生的事件存在某种时序关系,需要相互合作,共同完成一项任务
A.寻道时间B.旋转延迟时间C.传输时间D.周转时间
6.磁盘访问中把数据从磁盘读出,或向磁盘写入数据所花费的时间叫做(D)。
A.寻找指定柱面的时间B.旋转延迟时间C.周转时间D.传输时间
三、判断题
1、在DMA控制方式下,外部设备与CPU之间直接进行成批的数据交换。(错,与存储器)
2、通道执行CPU指令构成的程序,与设备控制器一起共同实现对I/O设备的控制。(错,通道执行通道指令构成的程序,通道本身是一个处理机,指令非常单一,通道没有独立的内存)
11
第5章设备管理
一、填空题
1、磁盘的访问时间包括三部分时间,寻道时间、(旋转延迟时间)和传输时间。(其中寻道时间)
2、在联机情况下实现的同时与外围设备联机操作的技术,称为(联机输入输出或假脱机)。
操作系统原理第五章存储管理习题
操作系统原理第五章存储管理习题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.能够装⼊内存任何位置的代码程序必须是( )。
逻辑地址转物理地址
逻辑地址: 机器语言指令,用于指定一个操作数或一条指令的地址表示为[段标识符:段内偏移量]偏移量:段开始的地方到实际地址之间的距离线性地址:也称虚拟地址,32位,0x00000000—0xffffffff物理地址:用于内存芯片级的单元寻址,与处理器和cpu连接的地址总线相对应(与实物内存相联系)逻辑地址转换物理地址:内存控制单元(MMU)通过分段单元把逻辑地址转换成线性地址;接着分页单元把线性地址转换成物理地址。
段寄存器:为了快速找到段选择符(段标识符16位)处理器提供段寄存器(cs代码段寄存器、ss栈段寄存器、ds数据段寄存器)存放段选择符段描述符:每个段由一个8字节的段描述符表示,放在(GDT:全局描述符表,存于gdtr;LDT局部描述符表,存于ldtr寄存器)快速访问段描述符:为了加速逻辑地址到线性地址的转换,8086处理器提供附加的非编程的寄存器(含8个字节的段描述符),供段寄存器使用。
每当一个段选择符被装入段寄存器时,相应的段描述符就由内存装入到对应的非编程CPU寄存器。
使得逻辑地址转换时无需访问主存中的GDT或LDT的。
处理器可直接引用存放段描述符的CPU即可。
分段单元:1、TI字段指明段描述符保存在哪一个描述符表中,若在GDT中,则从gdtr寄存器中取得GDT的线性基地址。
2、从段选择符的index字段计算段描述符的地址,index字段的值乘以8(一个段描述符的大小),将这个结果与gdtr或ldtr寄存器中的内容相加。
3、把逻辑地址的偏移量与段描述符Base字段的值相加就得到了线性地址linux中的分段:相应的段选择符由宏_KERNEL_CS,_KERNEL_DS,_USER_CS,_USER_DS分别定义。
例如:对内核代码段进行寻址,只需将_KERNEL_CS宏产生的值装进cs寄存器即可。
所有的段都是从0x00000000开始,所以在linux下逻辑地址与线性地址是一致的,即逻辑地址的偏移量字段的值与相应的线性地址的值总是一致的。
操作系统第四-十章自测题及解答
页号
物理块号
0
5
1
10
2
4
3
7
计算逻辑地址 0A5C(H)所对应的物理地址。 12、设正在处理器上执行的一个进程的页表如下面所示,表中的虚页号和物理块号是十进制 数,起始页号(块号)均为 0,所有的地址均是存储器字节地址,页的大小为 1024 字节。 (注释:访问位——当某页被访问时,其访问位被置 1。)
24、为了使多个进程能有效地同时处理输入和输出,最好使用( )结构的缓冲技术 A.缓冲池 B.闭缓冲区环 C.单缓冲区 D.双缓冲区
25、通过硬件和软件的功能扩充,把原来独立的设备改造成能为若干用户共享的设备,这种
设备称为() A.存储设备 B.系统设备 C.用户设备 D.虚拟设备
26、()是操作系统中采用的以空间换取时间的技术。 A.SPOOLING 技术 B.虚拟存储技术 C.覆盖与,()和()
26、使用位示图[20行,30列]表示空闲盘块状态。当分配一个盘块号为132号时,其
在位示图中的行,列数为(),当释放一个盘块号为318时,其所在位示图中的行,列数
位()。(注:行为0-19,列为0-29,首盘块号为1)。
27、按信息交换单位分类可将设备分为()和()。
27、中断发生后,应保留() A.缓冲区指针 B.关键寄存器内容 C.被中断的程序 D.页表
28、在中断处理中,输入/输出中断是指()
I.设备出错 II。数据传输结束 A.I B.II C.I 和 II D.都不是
29、设备管理程序对设备的管理是借助一些数据结构来进行的,下面的()不属于设备管理 数据结构。
理方案
8、首次适应算法的空闲区是( ) A.按地址递增顺序连在一起 B.始端指针表指向最大空闲区 一起 D.寻找从最从空闲区开始
操作系统原理第五章 存储管理习题
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.在一分页存储管理系统中,逻辑地址长度为16位,页面大小为2048字节,对应的页表如下表所示。
现有逻辑地址为0A5CH 和2F6AH ,经过地址变换后所对应的物理地址各是多少?答:由题设条件可知,分页存储管理系统的逻辑地址结构为: 4 (2)本题的页面大小为1024字节,可知页内位移为10位,即逻辑地址2100的页号为2,页内位移为2100-2048=52;逻辑地址3100的页号为3,页内位移为3100-3072=28。
逻辑地址2100的地址变换过程如下图所示。
式地址变换示意图 根据上图所示可得出逻辑地址2100辑地址3100所对应的物理地址为8220。
31024字节,试将逻辑地址1011,2148,3000,4000,5012转化为相应的物理地址。
页答:逻辑地址与物理地址的转换如下表。
)5、10KB 、4KB 、 20KB 、 18KB 、 7KB 、 9KB 、 12KB 、 15KB 。
对于下列顺序的段请求: 12KB 、 10KB 、 15KB 、 18KB 分别使用首次适应算法、最佳适应算法、最坏适应算法和下次适应算法,试说明空间的使用情况。
为描述方便起见,对空闲分区进行编号,其编号如表所示。
分区编号(1)首次适应算法要求空闲分区按地址递增的次序排列,在进行内存分配时,总是从空闲分区表首开始顺序查找,直至找到第一个能满足大小要求的空闲分区为止。
对于段请求12KB,选中的是3号分区,进行分配后3号分区还剩下8KB;对于段请求10KB,选中的是1号分区,因1号分区与申请的长度相等,应从空闲分区表中删除1号分区;对于段请求15KB,选中的是4号分区,进行分配后4号分区还剩下3KB;对于段请求18KB,系统已123。
作业1申请80KB,作业2申请56KB,作业3申请120KB,作业1完成并释放80KB,作业3完成并释放120KB,作业4申请156KB,作业5申请80KB。
试用首次适应算法处理上述作业序列,并回答下列问题:(1)画出作业1、2、3进入主存后,主存的分配情况。
分页式存储管理代码c语言
分页式存储管理代码c语言分页式存储管理是一种将逻辑地址空间划分为固定大小的页,并将物理内存划分为同样大小的物理页,通过页表将逻辑地址映射到物理地址的存储管理方式。
以下是一个简单的分页式存储管理代码的C语言实现:```cinclude <>include <>define PAGE_SIZE 1024 // 页大小为1024字节define LOGICAL_SPACE 1000 // 逻辑地址空间大小为1000页define PHY_MEM_SIZE 2000 // 物理内存大小为2000页int page_frame_num = PHY_MEM_SIZE; // 物理内存中的空闲页帧数int page_table[LOGICAL_SPACE]; // 页表,记录逻辑页对应的物理页帧号// 初始化页表void init_page_table() {for (int i = 0; i < LOGICAL_SPACE; i++) {page_table[i] = -1; // 逻辑页未映射到物理内存时,页表项值为-1 }}// 将逻辑地址映射到物理地址int map_page(int logical_address) {int page_frame = -1; // 初始化物理页帧号为-1,表示未找到空闲的物理页帧for (int i = 0; i < PHY_MEM_SIZE; i++) {if (page_frame_num > 0) { // 物理内存中还有空闲的页帧page_frame = i; // 将物理页帧号赋给page_frame变量page_frame_num--; // 物理内存中的空闲页帧数减1break; // 找到空闲的物理页帧后,跳出循环}}if (page_frame != -1) { // 如果找到了空闲的物理页帧page_table[logical_address / PAGE_SIZE] = page_frame; // 将逻辑地址对应的页表项赋值为空闲的物理页帧号} else { // 如果找不到空闲的物理页帧,则发生页面置换,此处省略页面置换算法的实现代码printf("Page fault occurred!\n");}return page_frame; // 返回逻辑地址对应的物理页帧号,如果找不到空闲的物理页帧,则返回-1}```。
什么是逻辑地址和物理地址
什么是逻辑地址和物理地址有网友问到小编:什么是逻辑地址和物理地址?怎么转换?针对此问题,店铺为大家分享了具体的操作方法,希望对你有帮助!什么是逻辑地址是指由程式产生的和段相关的偏移地址部分。
例如,你在进行C 语言指针编程中,能读取指针变量本身值(&操作),实际上这个值就是逻辑地址,他是相对于你当前进程数据段的地址,不和绝对物理地址相干。
只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程式执行代码段限长内的偏移地址(假定代码段、数据段如果完全相同)。
应用程式员仅需和逻辑地址打交道,而分段和分页机制对你来说是完全透明的,仅由系统编程人员涉及。
应用程式员虽然自己能直接操作内存,那也只能在操作系统给你分配的内存段操作。
什么是物理地址用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。
所以,说它是“与地址总线相对应”,是更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。
也许错误的理解更利于形而上的抽像。
虚拟内存(virtual memory) 这是对整个内存(不要与机器上插那条对上号)的抽像描述。
它是相对于物理内存来讲的,可以直接理解成“不直实的”,“假的”内存,例如,一个0x08000000内存地址,它并不对就物理地址上那个大数组中0x08000000 - 1那个地址元素;之所以是这样,是因为现代操作系统都提供了一种内存管理的抽像,即虚拟内存(virtual memory)。
进程使用虚拟内存中的地址,由操作系统协助相关硬件,把它“转换”成真正的物理地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
十六进制逻辑地址转物理地址
则相应的物理地址是多少?
解:
第一步:逻辑地址2F6AH 转为二进制变成:0010111101101010。
(“H ”不用不用转二进制)
第二步:由于页面大小为4KB 字节,
(4KB=4*1KB ,4=2的2次方,1KB=1024=2的10次方,所以4KB=2的(“页内地址”,又叫“页内偏移量”,或“页内位移”)
第三步:由于逻辑地址的后12位为页内地址,所以剩下的前4位为页号:
所以页号为2(页号的二进制0010化为十进制,等于2)
16位
2
6
F
A
第五步:由于页号为2,所以从页表中可以查出对应的帧号为11,而“11”的十六进制为B
第六步:所以逻辑地址对应的物理地址为: 页号 页内地址 1011 111101101010 化成十六进制为:BF6AH 。
(实际把原来逻辑地址2F6AH 的2换成B 就可以了,因为页内地址没变)
答案:物理地址为BF6AH。
逻辑地址2F6AH 的2
十进制逻辑地址转物理地址
已知某个分页系统,页面大小为1K(即1024字节),某一个作业有4个页面,分别装入到主存的第3、4、6、8块中,求逻辑地址2100对应的物理地址。
解:
第一步:求逻辑地址的页号 = 2100 / 1024 = 2 (整除)
第二步:求页内偏移量 = 2100 % 1024 = 52 (取余)
第三步:产生页表
第四步:根据逻辑地址的页号查出物理地址的帧号:
逻辑地址的第2页对应物理地址第6页。
第五步:求出物理地址 = 6 * 1024 + 52 = 6196
页面大小
6 * 1024 + 52 = 6196
物理地址
页面大小
“虚地址”、“逻辑地址”、“相对地址”这三个概念是等价的。
“实地址”、“物理地址”、“绝对地址”这三个概念是等价的。
地址转换步骤
当逻辑地址为16进制、八进制、二进制时,
第一步:把逻辑地址转为二进制;
第二步:按页的大小分离出页号和页内偏移量(高位部分为页号,低位部分为页内偏移量)
第三步:根据题意产生页表;
第四步:将逻辑地址的页内偏移量直接复制到物理地址的页内偏移量上(即:逻辑地址的页内偏移量= 物理地址的页内偏移量)
第五步:以逻辑地址的页号查页表,查出物理地址的帧号,再把帧号转为二进制,复制到物理地址的的帧号上,从而得出物理地址。
当逻辑地址为十进制时,
第一步:求出逻辑地址的页号= 逻辑地址/ 页面大小
(“/”表示整除,只取商,不取余数)
第二步:求出页内偏移量= 逻辑地址% 页面大小
(“%”表示取余,只取余数,不取商)
第三步:根据题意产生页表;
第四步:以逻辑地址的页号查页表,查出物理地址的帧号
第五步:求出物理地址= 帧号* 页面大小+ 页内偏移。