操作系统原理-课件.ppt

  1. 1、本文档共170页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统原理-课件

内存储器是由一个个存储单元组成,一个存储单元可存放若干个二进制的位(bit),8个二进制位被称为一个字节(Byte)。 内存中的存储单元按一定顺序进行编号,每个单元所对应的编号,称为该单元的单元地址。 物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。 逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。 其首地址为0,其余指令中的地址都相对于首地址来编址。 不能用逻辑地址在内存中读取信息。 地址重定位 地址重定位(地址映射):将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。 当程序装入内存时, 操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致, 而CPU执行指令时,是按物理地址进行的,所以要进行地址转换。 静态重定位的特点 (1)静态重定位是在程序运行之前完成地址重定位工作的; (2)静态重定位由软件实现,无须硬件提供支持; (3)实行静态重定位时,地址重定位工作是在程序装入时被一次集中完成的; (4)绝对地址空间里的目标程序与原相对地址空间里的目标程序面目已不相同,因为前者进行了地址调整; (5)实施静态重定位后,若用户程序在内存中做了移动,那么程序指令中的地址就不再反映所在的存储位置了,除非重新进行地址重定位。 特点 (1)系统总是把整个用户区分配给一个用户使用。 (2)实际上,内存用户区又被分为“使用区”和“空闲区”两部分。 在操作系统中,把分配给用户、但又未使用的区域称为“内部碎片”。 (3)由于任何时刻内存的用户区中只有一个作业运行,因此这种系统只使用于单用户的情况。 (4)进入内存的作业,独享系统中的所有资源,包括内存中的整个用户区。 特点 (5)由于整个用户区都分配给了一个用户使用,因此作业进入用户区后,没有移动的必要。采用这种存储分配策略时,将对用户程序实行静态重定位。 (6)实行静态重定位,并不能阻止用户有意无意地通过不恰当地指令闯入操作系统所占用的存储区域,如何阻止对操作系统的侵扰,就是所谓的“存储保护”问题。 用于存储保护的专用寄存器-“界限寄存器” 存储保护过程:在用户态下,对内存的每一次访问,都要在硬件的控制下,与界限寄存器中的内容进行比较。一旦发现该访问的地址小于界限寄存器中的地址,就会产生“地址越界”中断,阻止这次访问的进行。 优点:易于管理,便于用户的了解和使用。 缺点: 由于每次只能有一个作业进入内存,故它不适用于多道程序设计,整个系统的工作效率不高,资源利用率底下。 只要作业比用户区小,那么在用户区里就会形成碎片,造成内存储器资源的浪费。 若用户作业的相对地址空间比用户区大,那么该作业就无法运行。 地址重定位与存储保护 固定分区存储管理中,每个分区只允许装入一个作业,作业在运行期间没有必要移动自己的位置,因此,应该对程序实行静态重定位。 在固定分区存储管理中,不仅要防止用户程序对操作系统形成的侵扰,也要防止用户程序与用户程序之间形成侵扰。因此必须在CPU中设置一对专用的寄存器,用于存储保护。将两个专用寄存器分别起名为“下界寄存器”和“上界寄存器” 存储保护过程 当进程调度程序调度某个作业进程运行时,就把该作业所在分区的低边界地址装入到低界限寄存器,高边界地址装入到高界限寄存器。作业运行时,对内存的每一次访问,都要在硬件的控制下,与两个界限寄存器中的内容进行比较。一旦发现该访问的地址小于界限寄存器中的地址,就会产生“地址越界”中断,阻止这次访问的进行。 固定分区存储管理的特点 (1)它是最简单的、具有“多道”色彩的存储管理方案。 (2)当把一个分区分配给某个作业时,该作业的程序将一次性的全部被装入到分配给它的连续分区里。 固定分区方式的评价 优点:易于实现,开销小。 缺点: 内碎片造成浪费(小作业不能有效地利用分区空间。 分区总数在系统生成时确定(固定),限制了并发执行的程序数目。 如果到达作业的尺寸比任何一个分区的长度都大,那么它就无法得到运行。 外部碎片问题 ① 仅与前空闲区相连:合并前空闲区和释放区构成一块大的新空闲区,并修改空闲区表项。该空闲区的m_addr不变,仍为原前空闲区的首地址,修改表项的长度域m_size为原m_size 与释放区长度之和。 ② 与前空闲区和后空闲区都相连:将三块空闲区合并成一块空闲区。修改空闲区表中前空闲区表项,其起始地址m_addr仍为原前空闲区起始地址,其大小m_size等于三个空闲区长度之和,这块大的空闲区由前空闲区表项登记。接下来还要在空闲区表中删除后项,方法是将后项以下的非空白表项顺次上移一个位置。 ③ 仅与后空闲区相连:与后空闲区合并,使后空闲区表项的m_addr为释放区的起始地址,m_size为释放区与后空闲区的长度之和

您可能关注的文档

文档评论(0)

明若晓溪 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档