首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT
新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平
驾驶员 | 网络编辑
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
您现在的位置: 考试吧(Exam8.com) > 计算机等级考试 > 计算机四级 > 复习资料 > 正文

全国计算机等级考试四级复习纲要七

来源:考试吧Exam8.com) 2007-9-18 22:22:37 考试吧:中国教育培训第一门户 模拟考场

  三、存储体系

  (一) 存储层次的形成及评价

  1.存储层次的形成

   由于速度快的存储器价格贵,容量就不能做得太大;而价格低的存储器容量可能做得很大,但它的存取速度却比较慢。因此,在综合考虑容量、速度、价格的基础上,人们建立了能满足系统对存储器在性能与价格两方面要求的存储组合,称为存储层次(memory hierarchy)。存储层次由若干层组成,高层存储器更小、更快、每字节价格也更贵,低层存储器则更大、更慢、价格也更便宜,任何相邻两层之间的关系都是如此。此外,高层的数据都是低层数据的子集,也就是说所有的数据都能在最底层中找到。

  2.存储体系的依据

   实现存储体系的依据是局部性原理。我们已经知道有两种类型的局部性:时间局部性是指当前访问的项目在最近的将来还会访问;空间局部性是指某地址附近的内容可能会被一起访问。这就是说,在主存储器内,顺序执行的程序和数据往往在一段时间内集中分布在某个局部或者在同一时刻内出现在邻近的区域内。这是计算机程序所共有的特性,它也称为程序或数据的局部性,或称访问的局部性。这种局部性乃是存储器逻辑地址可预测性的基础,也是多级存储体系能成功运行的依据。尤其是为实现Cache提供了理论根据,即在某一段时间内,可以集中访问小容量的Cache,而且,当Cache需要从主存读取信息时,不是只读一条指令或一个数据,而是把该单元所在的主存的某一局部区域的内容都读入Cache。

  (二) 虚拟存储的原理

  1.虚拟存储的管理方式

  虚拟存储(virtual memory)技术的概念是:把很大的程序分成许多较小的块,全部存储在辅存中。运行时,把要用到的程序块先调入主存,并且把马上就要用到的程序块从主存再调入高速缓存。这样,一边运行程序,一边进行所需程序块的调进调出。只要及时供应上所需处理的程序与数据,程序就能顺利而高速地运行下去。因此,对于应用程序员来说就好像有一个比实际主存大得多的,可以放得下整个程序的虚拟主存空间。当辅存中的程序块调入主存时,必须使程序在主存中定位。为了使应用程序员对其程序不同修改就可以在虚拟存储器上运行,即应用程序员不用考虑如何把程序地址映象和变换成实际主存的物理地址,这种程序的定位应由系统自动完成,从而使虚存技术对于应用程序员来说是透明的。这种定位技术是把程序分成若干较小的段或页,用相应的映象表来指明该程序的某段或某页是否已经装入主存。若已装入主存,则应同时指明它在主存的起始位置;若尚未装入主存,则去辅存中调用相应的段或页,并建立起程序空间和实存空间的地址映象关系。由于采用的存储映象算法不同,就形成不同的存储管理方式,常用的有段式管理、页式管理以及段页式管理。

  段式管理(segmentation)把一个程序分成若干个段(segment)进行存储,每个段都是一个逻辑实体(logical entity),程序员需要知道并使用它。它的产生是与程序的模块化直接有关的。段式管理是通过段表进行的,它包括段号或段名、段起点、装入位、段的长度等。此外还需要主存占用区域表、主存可用区域表。为了进行段式管理,每道程序在系统中都有一个段(映象)表来存放该道程序各段装入主存的状况信息。段表中的每一项(对应表中的每一行)描述该道程序一个段的基本状况,由若干个字段提供。段名字段用于存放段的名称,段名一般是有其逻辑意义的,也可以转换成用段号指明。由于段号从0开始顺序编号,正好与段表中的行号对应,如2段必是段表中的第3行,这样,段表中就可不设段号(名)字段。装入位字段用来指示该段是否已经调入主存,“1”表示已装入,“0”表示未装入。在程序的执行过程中,各段的装入位随该段是否活跃而动态变化。当装入位为“1”时,地址字段用于表示该段装入主存中起始(绝对)地址,当装入位为“0”时,则无效(有时机器用它表示该段在辅存中的起始地址)。段长字段指明该段的大小,一般以字数或字节数为单位,取决于所用的编址方式。段长字段是用来判断所访问的地址是否越出段界的界限保护检查用的。访问方式字段用来标记该段允许的访问方式,如只读、可写、只能执行等,以提供段的访问方式保护。除此之外,段表中还可以根据需要设置其它的字段。段表本身也是一个段,一般常驻在主存中,也可以存在辅存中,需要时再调入主存。假设系统在主存中最多可同时有N道程序,可设N个段表基址寄存器。对应于每道程序,由基号(程序号)指明使用哪个段表基址寄存器。段表基址寄存器中的段表基址字段指向该道程序的段表在主存中的起始地址。段表长度字段指明该道程序所用段表的行数,即程序的段数。由系统赋给某道程序(用户、进程)一个基号,并在调入调出过程中对有关段表基址寄存器和段表的内容进行记录和修改,所以这些都不用用户程序员来管。某道活跃的程序在执行过程中产生的指令或操作数地址只要与基号组合成系统的程序地址,即可通过查表自动转换成主存的物理地址。下图示意性地表示了这一地址变换的过程。分段方法能使大程序分模块编制,从而可以多个程序员并行编程,缩短编程时间,在执行或编译过程中对不断变化的可变长段也便于处理。各个段的修改、增添并不影响其它各段的编制,各用户以段的连接形成的程序空间可以与主存的实际容量无关。分段还便于几道程序共用已在主存内的程序和数据,如编译程序、各种子程序、各种数据和装入程序等。不必在主存中重复存储,只需把它们按段存储,并在几道程序的段表中有公用段的名称及同样的基址值即可。由于各段是按其逻辑特点组合的,容易以段为单位实现存储保护。例如,可以安排成常数段只能读不能写;操作数段只能读或写,不能作为指令执行;子程序段只能执行,不能修改;有的过程段只能执行,不能读也不能写,如此等等。一旦违反规定就中断,这对发现程序设计错误和非法使用是很有用的。段式管理的虚拟存储器由于各个段的长度完全取决于段自身,当然不会恰好如下图那样是1K的整数倍,段在主存中的起点也会是随意的,这就给高效地调入段分配主存区域带来困难。为了进行段式管理,除了系统需要为每道程序分别设置段映象表外,还得由操作系统为整个主存系统建立一个实主存管理表,它包括占用区域表和可用区域表两部分。占用区域表的每一项(行)用来指明主存中哪些区域已被占用,被哪道程序的哪个段占用以及该段在主存的起点和长度。此外,还可以设置诸如该段是否进入主存后被改写过的字段,以便该段由主存中释放时,决定是否还要将其写回到辅存中原先的位置来减少辅助操作。可用区域表的每一项(行)则指明每一个未被占用的基地址和区域大小。当一个段从辅存装入主存时,操作系统就在占用区域表中增加一项,并修改可用区域表。而当一个段从主存中退出时,就将其在占用区域表的项(行)移入可用区域表中,并进行有关它是否可与其它可用区归并的处理,修改可用区域表。当某道程序全部执行结束或者是被优先级更高的程序所取代时,也应将该道程序的全部段的项从占用区域表移入可用区域表并作相应的处理。

希望与更多计算机等级考试的网友交流,请进入计算机等级考试论坛

更多信息请访问:考试吧计算机等级考试栏目

 

 

 

 

上一页  1 2 3 4 5  下一页
文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。