操作系统课件CCH08-memory.ppt

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

* * * * * 为了存储保护的目的,每个存储块都有一个与其相关的由二进位组成的存储保护键,附加在每个存储块上。当操作系统挑选该作业上CPU运行时,操作系统同时将该作业的存储键号存放到程序状态字PSW的存储键(“钥匙”)域中。这样每当CPU访问主存时,都将对主存块的存储键与PSW中的“钥匙”进行比较。如果相匹配,则允许访问,否则,拒绝并报警。 * * * * * * * * * * 虽然每个进程可用的地址空间可以很大,但实际上大多数进程只用很小一部分,所以如果依据最大的地址空间来给每个进程创建一个页表,就会造成极大的浪费.所以一些系统提供了页表长度寄存器,用以指明进程的页表长度.这样,就可以依据页表长度寄存器的值来检查地址引用是否越界. * * * * * * * * * * * * * * * * * * * * * * * 代码段常常包含对自身的引用.例如,对于共享的代码段,如果在段中有条件跳转语句,在这种语句中,通常会用段号,偏移来指明位置,这个段号就是该代码段自身的段号.如果共享该段的多个进程对该段指定了不同的段号,则无法实现共享.所以,通常要求各个进程对共享的代码段采用相同的段号.而对于共享的数据段,则无需指定相同的段号. * * * * * * * * * * User’s View of a Program Logical View of Segmentation 1 3 2 4 1 4 2 3 user space physical memory space Segmentation data stack code code data stack Physical memory Virtual memory segment 1 Virtual memory segment 3 Virtual memory segment 0 6ff 0 4ff 0 fff 0 46ff 4000 2fff 2000 4ff 0 Segmentation Architecture Logical address consists of a two tuple: segment-number, offset, Segment table – maps two-dimensional physical addresses; each table entry has: base – contains the starting physical address where the segments reside in memory limit – specifies the length of the segment Segment-table base register (STBR) points to the segment table’s location in memory Segment-table length register (STLR) indicates number of segments used by a program; segment number s is legal if s STLR Segmentation Hardware Example of Segmentation 地址变换过程 系统将逻辑地址中的段号S与段表长度TL进行比较。若 S≥TL,访问越界; 若未越界,则根据段表的始址和该段的段号,计算出该段对应段表项的位置,从中读出该段在内存中的起始地址; 然后再检查段内地址d是否超过该段的段长SL。若超过,即 d≥SL,同样发出越界中断信号; 若未越界,则将该段的基址与段内地址d相加,得到要访问的内存物理地址。 地址变换 Segmentation Architecture (Cont.) Protection. With each entry in segment table associate(保护,每个段表的表项有): validation bit(有效位) = 0 ? illegal segment read/write/execute privileges(读/写/执行权利) Since segments vary in length, memory allocation is a dynamic storage-allocation problem.(由于段的各个长度不同,内存分配是一个动态存储分配问题。) Segmentation Architecture (Cont.) Relocation.(重定位) dynamic(动态) by segment table (通过段表来执行) Sharing.(共享) shared s

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档