《大学计算机基础》由会员分享,可在线阅读,更多相关《大学计算机基础(223页珍藏版)》请在金锄头文库上搜索。
1、教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系片头动画教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系第一章第一章 计算机及信息技术概述计算机及信息技术概述 本本章章主主要要介介绍绍计计算算机机的的发发展展史史和和特特点点、类类型型及及应应用用,以以及及计计算算机机的的未未来来发发展展趋趋势势;计计算算机机系系统统的的硬硬件件和和软软件件系系统统构构成成;最最后后介介绍信息技术的基本概念。绍信息技术的基本概念。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系1.1 计算机基础知识计算机基础知识1.1.11.1.1 计算机发展历史上的
2、重要人物和思想计算机发展历史上的重要人物和思想 人人类类从从远远古古时时代代就就产产生生了了计计算算的的需需要要。钟钟表表业业,特特别别是是齿齿轮轮传传动动装装置置技技术术的的发发展展,诞诞生生了了最最早早的的机机械式计算机。械式计算机。 下下面面介介绍绍几几位位在在电电子子计计算算机机诞诞生生之之前前对对计计算算机机发展有过突出贡献的几位早期历史人物。发展有过突出贡献的几位早期历史人物。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 法法国国物物理理学学家家帕帕斯斯卡卡(1623-1662):在在 1642年年发发明明了了第第一一台台机机械械式式加加法法机机。该该机机
3、由由齿齿轮轮组组成成,靠靠发发条条驱驱动动,用用专专用用的的铁铁笔笔来拨动转轮以输入数字。来拨动转轮以输入数字。 当时,当时,19岁的帕斯卡为了帮岁的帕斯卡为了帮助父亲计算税款,开始研究机械助父亲计算税款,开始研究机械计算装置,最后制成了手摇驱动计算装置,最后制成了手摇驱动的齿轮进位式计算器,可完成六的齿轮进位式计算器,可完成六位数字的加减法。位数字的加减法。 1.1 计算机基础知识计算机基础知识教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 德德国国数数学学家家莱莱布布尼尼茨茨:在在1673年年发发明明了了机机械械式式乘乘除除法法器器。基基本本原原理理继继承承于于帕帕斯
4、斯卡卡的的加加法法机机,也也是是由由一一系系列列齿齿轮轮组组成成,但但它它能能够够连连续续重重复复地地做做加加减减法法,从从而而实现了乘除运算。实现了乘除运算。 1.1 计算机基础知识计算机基础知识教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系1.1 计算机基础知识计算机基础知识 英英国国数数学学家家巴巴贝贝奇奇:1822年年,在在历历经经10年年努努力力终终于于发发明明了了“差差分分机机”。它它有有3个个齿齿轮轮式式寄寄存存器器,可可以以保保存存3个个5位位数数字字,计计算算精精度可以达到度可以达到6位小数。位小数。 巴贝奇试图发明功能更好的通用计算机巴贝奇试图发明功能
5、更好的通用计算机分析机,但最终失败。分析机,但最终失败。 英英国国女女数数学学家家爱爱达达 (1815-1852):巴巴贝贝奇奇的的合合作作伙伙伴伴。她她用用穿穿孔孔卡卡片片设设计计了了世世界界上上“第第一一件件计计算算机机程程序序”。她她还还建建议议分分析析机机用用二二进制存储。预言分析机能唱歌、绘画。进制存储。预言分析机能唱歌、绘画。英国诗人拜伦的女儿英国诗人拜伦的女儿教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系图灵机:这个在当时看来是纸上谈兵的简单图灵机:这个在当时看来是纸上谈兵的简单机器,隐含了现代计算机中机器,隐含了现代计算机中“存储程序存储程序”的的基本思想
6、。半个世纪以来,数学家们提出的基本思想。半个世纪以来,数学家们提出的各种各样的计算模型都被证明是和图灵机等各种各样的计算模型都被证明是和图灵机等价的。价的。 英国科学家阿兰英国科学家阿兰 图灵图灵(理论计算机的奠基人理论计算机的奠基人1912-1954) 控制器(含运算功能)控制器(含运算功能)这种可在纸带上左右移动的读写这种可在纸带上左右移动的读写头,用于读写数据头,用于读写数据(输入输出设输入输出设备备),斜线方格代表,斜线方格代表1,否则代表,否则代表0。任何可计算问题都认为是与。任何可计算问题都认为是与图灵机等价的图灵机等价的可无限延伸的纸带。用于可无限延伸的纸带。用于存储程序和数据(
7、存储器)存储程序和数据(存储器)1.1 计算机基础知识计算机基础知识姚姚期期智智:20002000年年首首位位获获奖奖图图灵灵奖奖的华裔学者的华裔学者 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系七十多年来,现代计算机基本结构仍然是七十多年来,现代计算机基本结构仍然是“冯冯诺依曼计算机诺依曼计算机”。美籍匈牙利数学家美籍匈牙利数学家冯冯 诺依曼诺依曼( (计算机鼻祖计算机鼻祖) ) 计计算算机机应应由由运运算算器器、控控制制器器、存存储储器器、输入设备和输出设备五大部件组成;输入设备和输出设备五大部件组成; 应采用二进制简化机器的电路设计;应采用二进制简化机器的电路设计
8、; 采采用用“存存储储程程序序”技技术术, ,以以便便计计算算机机能能保保存和自动依次执行指令。存和自动依次执行指令。 冯冯诺依曼:诺依曼: “如果不考虑巴贝奇、爱达和其他人早先提出的如果不考虑巴贝奇、爱达和其他人早先提出的有关思想,计算机基本概念只能属于阿兰有关思想,计算机基本概念只能属于阿兰图灵图灵”1.1 计算机基础知识计算机基础知识教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系1.1 计算机基础知识计算机基础知识1946年年2月由宾夕法尼亚大学月由宾夕法尼亚大学研制成功的研制成功的ENIAC是世界上是世界上第一台电子数字计算机。第一台电子数字计算机。Electro
9、nic Numerical Integrator And Calculator电子数字积分计算机电子数字积分计算机重重30吨,占地吨,占地167m2,耗电,耗电150千瓦千瓦18800个电子管,个电子管,1500个继电器,保个继电器,保存存80个字节,每秒钟可做个字节,每秒钟可做5000次加减次加减法或法或400次乘法运算。次乘法运算。“诞生了一个电子的大脑诞生了一个电子的大脑”致命缺陷:没有存储程序。致命缺陷:没有存储程序。1.1.2 1.1.2 电子计算机时代电子计算机时代教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系q 第一代计算机第一代计算机 19461958年年
10、 以电子管为主要元件以电子管为主要元件 代表机型:代表机型:ENIAC1.1 计算机基础知识计算机基础知识q 第二代计算机第二代计算机 19581964年年 以晶体管为主要元件以晶体管为主要元件采采用用晶晶体体管管的的第第二二代代电子计算机电子计算机IBM7090IBM7090型型即:电子数字积分计算机即:电子数字积分计算机教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系q 第四代计算机第四代计算机 1971年至今年至今 以大规模以大规模/超大集成电路为主要元件超大集成电路为主要元件 巨型机、大型机、小型机、微型机以及便携机巨型机、大型机、小型机、微型机以及便携机 q 未来
11、的第五代计算机是智能计算机未来的第五代计算机是智能计算机1.1 计算机基础知识计算机基础知识q 第三代计算机第三代计算机 19641971年年 以集成电路为主要元件以集成电路为主要元件采用集成采用集成电路的第电路的第一台电子一台电子计算机计算机IBM360IBM360型型电子技术的发展促进了电子计算机的更新换代。电子技术的发展促进了电子计算机的更新换代。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系巨型机P7P7大型机小型机微型机工作站服务器嵌入式计算机按计算机规模分类按计算机规模分类1.1 计算机基础知识计算机基础知识1.1.3 1.1.3 计算机类型计算机类型按计算机
12、用途分类按计算机用途分类通用计算机专用计算机按计算机处理的数据分类按计算机处理的数据分类数字计算机模拟计算机数字模拟混数字模拟混合计算机合计算机教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系1.1 计算机基础知识计算机基础知识 计计算算机机是是一一种种能能按按照照事事先先存存储储的的程程序序,自自动动、高高速速地地进进行行大大量量数数值值计计算算和和各各种种信信息息处处理理的的现现代代化化智能电子设备。智能电子设备。运算速度快运算速度快计算精度高计算精度高存储容量大存储容量大具有逻辑判断能力具有逻辑判断能力按照程序自动运行按照程序自动运行计计算算机机特特点点1.1.4 1
13、.1.4 计算机的特点及应用领域计算机的特点及应用领域教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系1.1 计算机基础知识计算机基础知识科学计算科学计算数据处理数据处理过程与实时控制过程与实时控制人工智能人工智能计算机辅助设计与制造计算机辅助设计与制造计计算算机机应应用用领领域域远程通信与网络应用远程通信与网络应用多媒体与虚拟现实多媒体与虚拟现实教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 计算机发展趋势计算机发展趋势巨型化巨型化 超超超超级级级级计计计计算算算算机机机机:存存储储容容量量更更大大、运运算算速速度度更更快快。运运算算速速度度达达每每
14、秒秒千千亿亿、万万亿亿次次运运算算。主主要要应应用用:天天气气预预报报、地地震震机机理理研研究究、石石油油和和地地质质勘勘探探,卫卫星星图图像处理等的高科技领域。像处理等的高科技领域。CRAY-银河银河1.1.5 未来的计算机未来的计算机1.1 计算机基础知识计算机基础知识 计算机发展趋势计算机发展趋势微型化微型化 计算机不再是单一的计算机器,而是一种个人的信息计算机不再是单一的计算机器,而是一种个人的信息机器。机器。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 计算机发展趋势计算机发展趋势网络化网络化 通过计算机网络可共享远程资源,实现通信和合作。通过计算机网络可共享
15、远程资源,实现通信和合作。1.1 计算机基础知识计算机基础知识 计算机发展趋势计算机发展趋势智能化智能化 智能计算机将是一种具有类似于人的思维能力,能听会智能计算机将是一种具有类似于人的思维能力,能听会说,能想会做,能代替人的体力劳动以及脑力劳动的智能机说,能想会做,能代替人的体力劳动以及脑力劳动的智能机器人。器人。 DeepblueGarry Kasparov 1996年年2月月10日,卡斯帕罗夫战胜日,卡斯帕罗夫战胜“深深蓝蓝”(国际象棋)(国际象棋)1997年年5月月12日,卡斯帕罗夫负于日,卡斯帕罗夫负于“更更深的蓝深的蓝”(改进的国际象棋)(改进的国际象棋)教学进度教学进度教学进度教
16、学进度计算机科学与工程系计算机科学与工程系 光计算机光计算机1.1.5 未来三种新型计算机未来三种新型计算机1.1 计算机基础知识计算机基础知识 生物计算机生物计算机 量子计算机量子计算机教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系1.2.1 1.2.1 计算机硬件系统计算机硬件系统1.2 计算机系统构成计算机系统构成冯诺依曼计算机结构 计计算算机机由由运运算算器器、控控制制器器、存存储储器器、输输入入设设备备、输出设备五大部分组成。输出设备五大部分组成。控制信号流数据流教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系计算机系统计算机系统硬件硬件软件
17、软件中央处理器中央处理器运算器运算器控制器控制器存储器存储器内存内存外存外存ROMRAM输出设备输出设备系统软件系统软件应用软件应用软件磁盘磁盘光盘光盘 U盘盘软盘软盘硬盘硬盘键盘、鼠标、扫描仪等键盘、鼠标、扫描仪等显示器、打印机等显示器、打印机等1.2 计算机系统构成计算机系统构成输入设备输入设备教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系用户程序或文档用户程序或文档其它系统软件其它系统软件操作系统操作系统硬硬 件件 应应用用软软件件是是指指用用户户利利用用计计算算机机及及其其提提供供的的系系统统软软件件为为解解决决各各种种实实际际问问题题而而编编写写的的程程序序。应
18、应用用软软件件可可分分为为2类类:一一类类是是针针对对某某个个应应用用领领域域的的具具体体问问题题开开发发的的程程序序,第第二二类类是是一一些些大大型型专专业软件公司开发的通用型应用软件。业软件公司开发的通用型应用软件。 系系统统软软件件位位于于计计算算机机系系统统最最靠靠近近硬硬件件的的一一层层,其其他他软软件件一一般般都都通通过过系系统统软软件件发发挥挥作作用用,系系统统软件主要包括:软件主要包括: (1) 操作系统。操作系统。 (2) 语言处理程序。语言处理程序。 (3) 监监控控管管理理程程序序、调调试试程程序、故障检查和诊断程序等。序、故障检查和诊断程序等。 1.2.2 1.2.2
19、计算机软件系统计算机软件系统1.2 计算机系统构成计算机系统构成教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系1.3.1 1.3.1 信息技术概念信息技术概念1.3 信息技术基础知识信息技术基础知识信息是一种知识,是接受者事先不知道不了解的知识。信息是一种知识,是接受者事先不知道不了解的知识。 数据是信息的载体。数值、文字、语言、图形、图像数据是信息的载体。数值、文字、语言、图形、图像等都是不同形式的数据。等都是不同形式的数据。 4次信息革命:文字、造纸和印刷术、次信息革命:文字、造纸和印刷术、电报电话广播电视、计算机与网络电报电话广播电视、计算机与网络信息信息数据数据现
20、代信息技术:计算机技术微电子技术通信技术现代信息技术:计算机技术微电子技术通信技术 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.1 计算机系统的构成计算机系统的构成 一一个个完完整整的的计计算算机机系系统统是是由由硬硬件件系系统统和和软软件件系系统统组成。组成。 硬硬件件系系统统是是由由运运算算器器、控控制制器器、存存储储器器、输输入入设设备、输出设备五部分组成。其中:备、输出设备五部分组成。其中: 中中央央处处理理器器(简简称称CPU)=运运算算器器(包包括括与与之之相相连连的寄存器)的寄存器)+控制器控制器 主机主机=中央处理器中央处理器+主存储器主存储器 软软
21、件件系系统统是是指指各各类类程程序序和和数数据据,计计算算机机软软件件包包括括计计算算机机本本身身运运行行所所需需要要的的系系统统软软件件和和用用户户完完成成任任务务所所需要的需要的应用软件应用软件。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.1计算机系统的构成计算机系统的构成3.1.1 计算机的硬件系统计算机的硬件系统U盘盘教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.1计算机系统的构成计算机系统的构成 冯冯诺诺依依曼曼型型计计算算机机是是将将程程序序和和数数据据事事先先存存放放在在外外存存储储器器中中,在在执执行行时时将将程程序序和和数
22、数据据先先从从外外存存装装入入内内存存中中,然然后后使使计计算算机机在在工工作作时时自自动动地地从从内内存存中中取取出出指指令令并并加加以以执执行行,这这就就是是存储程序概念的基本原理。存储程序概念的基本原理。 3.1.2 冯冯诺依曼型计算机的结构诺依曼型计算机的结构 冯冯诺依曼计算机体系结构的主要特点是:诺依曼计算机体系结构的主要特点是: (1) 采用二进制形式表示程序和数据。采用二进制形式表示程序和数据。 (2) 计算机硬件是由运算器、控制器、存储器、输入设备计算机硬件是由运算器、控制器、存储器、输入设备和输出设备五大部分组成和输出设备五大部分组成 。 (3) 程序和数据以二进制形式存放在
23、存储器中。程序和数据以二进制形式存放在存储器中。 (4) 控制器根据存放在存储器中的指令控制器根据存放在存储器中的指令 (程序程序) 工作。工作。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.1计算机系统的构成计算机系统的构成3.1.3 微型计算机的诞生与发展微型计算机的诞生与发展 微微型型机机属属于于第第四四代代电电子子计计算算机机产产品品,即即大大规规模模及及超超大大规规模模集集成成电电路路计计算算机机。微微机机的的核核心心部部件件是是CPU,因因此此我我们们主主要要以以CPU的的发发展展、演演变变过过程程为为线线索索,来来介介绍绍微微机机系系统统的的发发展展过
24、过程程,以以Intel公公司司的的CPU为为主主线。线。 开始时间开始时间CPU芯片芯片集成度集成度主频主频字长字长(b)最大内存最大内存197140042300108KHz4640B19788086/80882.9万万4.77-10MHz161MB19828028614.3万万6-20MHz1616MB19858038627.5万万12.5-33MHz324GB198980486125万万33-133MHz324GB1993Pentium310万万60-233MHz324GB1997Pentium 750万万233-450MHz324GB1999Pentium III2800万万450-80
25、0MHz3264GB2000Pentium 44200万万400M-3.2GHz32/6464GB教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构 微微型型机机基基本本是是由由显显示示器器、键键盘盘和和主主机机构构成成。在在主主机箱内有机箱内有CPU、主板、内存、硬盘、光驱、电源等。、主板、内存、硬盘、光驱、电源等。主主主主 机机机机外部设备外部设备外部设备外部设备运算器运算器控制器控制器内存储器内存储器外存储器外存储器存储器存储器输出设备输出设备硬硬 件件输入设备输入设备教学进度教学进度教学进度教学进度计算机科学与工程系计算机科
26、学与工程系3.2 微型计算机主机结构微型计算机主机结构3.2.1中央处理器中央处理器 CPU CPU:运算器部件、寄存器部件和控制器部件。:运算器部件、寄存器部件和控制器部件。 CPU从从存存储储器器取取出出指指令令,放放入入CPU内内部部的的指指令令寄寄存存器器,并并对对指指令令译译码码。它它把把指指令令分分解解成成一一系系列列的的微微操操作作,然然后后发发出出各各种种控控制制命令,执行微操作系列,从而完成一条指令的执行。命令,执行微操作系列,从而完成一条指令的执行。 CPU的主要性能指标的主要性能指标 : (1) 主频主频/外频(主频外频(主频=外频外频倍频,即倍频,即CPU工作频率)工作
27、频率) (2) 数据总线宽度(即字长,指数据总线宽度(即字长,指CPU传输数据的位数传输数据的位数),如如32位位 (3) 地地址址总总线线宽宽度度(决决定定了了CPU可可访访问问的的地地址址空空间间),如如32位位地地址总线可以直接寻址址总线可以直接寻址232=4GB。 (4) 工作电压(低电压可减少工作电压(低电压可减少CPU过热,降低功耗)过热,降低功耗) (5) 高速缓存高速缓存Cache(加速(加速CPU与其它设备间数据交换)与其它设备间数据交换) (6) 运算速度(运算速度(CPU每秒能处理的指令数)每秒能处理的指令数)教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与
28、工程系3.2 微型计算机主机结构微型计算机主机结构 1. 运算器运算器 ALU 运运算算器器是是完完成成算算术术和和逻逻辑辑运运算算的的部部件件,又又称称算算术术和和逻逻辑辑运运算算单单元元。计计算算机机所所完完成成的的全全部部运运算算都都是是在运算器中进行的。运算器的核心部件是在运算器中进行的。运算器的核心部件是: (1) 运算逻辑部件运算逻辑部件 (2) 寄存器部件寄存器部件 2. 控制器控制器 控控制制器器负负责责从从存存储储器器中中取取出出指指令令,并并对对指指令令进进行行译译码码,并并根根据据指指令令译译码码的的结结果果,按按指指令令先先后后顺顺序序,负负责责向向其其它它各各部部件件
29、发发出出控控制制信信号号,保保证证各各部部件件协协调调一致地完成各种操作。一致地完成各种操作。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构 控制器主要由以下部件组成:控制器主要由以下部件组成: 程程序序计计数数器器。存存放放下下一一条条将将要要执执行行的的指指令令在在内内存存中中的的地址;地址; 指令寄存器。保存现在正在执行的指令;指令寄存器。保存现在正在执行的指令; 指指令令译译码码器器。用用来来识识别别指指令令的的功功能能,分分析析指指令令的的操操作作要求;要求; 时时序序部部件件。产产生生计计算算机机工工作作中中所所需需
30、的的各各种种定定时时控控制制信信号号,对对各各种种微微操操作作控控制制信信号号进进行行定定时时控控制制。以以协协调调各各部部件件的的工作顺序;工作顺序; 微微操操作作控控制制电电路路。一一条条指指令令的的执执行行可可以以分分解解为为一一系系列列不不可可再再分分的的微微操操作作命命令令信信号号,即即微微命命令令,以以指指挥挥整整个个计计算算机机有条不紊地工作。有条不紊地工作。这是控制器的主要部分。这是控制器的主要部分。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构3.2.2 多核多核CPU技术技术P45 CPU管管线线的的级级:每
31、每一一个个指指令令执执行行时时所所经经过过的的步步骤骤。最最基基础础的的CPU管管线线可可以以被被分分为为5级级: 1、取取指指令令,2、译译解解指指令令,3、演演算算出出操操作作数数,4、执执行行指指令令,5、存存储储到到高高速速缓缓存存。同同时时如如果果增增加加一一些些特特殊殊的的级级的的话话,管管线线将将会会延延长长为为10级级:1、取取指指令令1,2、取取指指令令2,3、译译解解指指令令1,4、译译解解指指令令2,5、演演算算出出操操作作数数,6、分分派派操操作作,7、确确定定时时,8、执执行行指指令令,9、存存储储到到高高速速缓缓存存1,10、存存储储到到高高速速缓缓存存2。 无无论
32、论是是最最基基本本的的管管线线还还是是延延长长后后的的管管线线都都是是必必须须完完成成同同样样的的任任务:接受指令,输出运算结果。务:接受指令,输出运算结果。 CPU管管线线越越长长,CPU的的工工作作速速度度就就越越快快(这这是是从从理理论论上推导的结论)上推导的结论)教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构3.2.2 多核多核CPU技术技术P45从从P4开始就采用增加管线长度来提升工作频率,但当开始就采用增加管线长度来提升工作频率,但当CPU主主频达到频达到3GHz以上后,通过增加管线长度来提升工作频率的技术以上后,通
33、过增加管线长度来提升工作频率的技术已走到尽头。由于已走到尽头。由于CPU频率越高,所需要的电能就越多,所产频率越高,所需要的电能就越多,所产生的热量也就越多,这会导致计算机出现各种问题。此外,单生的热量也就越多,这会导致计算机出现各种问题。此外,单纯主频的提升也已经无法为系统整体性能提升带来好处。纯主频的提升也已经无法为系统整体性能提升带来好处。为了追求更高的处理器性能,就出现了多核处理器。为了追求更高的处理器性能,就出现了多核处理器。双核处理器:将两个物理处理器核心整合到一个内核中,即在双核处理器:将两个物理处理器核心整合到一个内核中,即在双核处理器:将两个物理处理器核心整合到一个内核中,即
34、在双核处理器:将两个物理处理器核心整合到一个内核中,即在单个单个单个单个CPUCPU中真正集成两个物理运行核心,并且每个核心都使用中真正集成两个物理运行核心,并且每个核心都使用中真正集成两个物理运行核心,并且每个核心都使用中真正集成两个物理运行核心,并且每个核心都使用自己独立的高速缓存。自己独立的高速缓存。自己独立的高速缓存。自己独立的高速缓存。因此在实际使用中,这种因此在实际使用中,这种“双核心处理双核心处理器器”和使用两个独立和使用两个独立CPU组建的系统在工作原理和性能上基本组建的系统在工作原理和性能上基本没有区别。没有区别。没有区别。没有区别。CPUCPU已从双核向已从双核向已从双核向
35、已从双核向4 4核、核、核、核、8 8核和多核方向发展。核和多核方向发展。核和多核方向发展。核和多核方向发展。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构3.2.3 主板主板 主主板板是是电电脑脑中中各各种种设设备备的的连连接接载载体体。它它提提供供了了CPU、各各种种接接口口卡卡、内内存存条条和和硬硬盘盘、软软驱驱、光光驱驱的的插插槽槽,其其它它的的外外部部设设备备也会通过主板上的也会通过主板上的I/O接口连接到计算机上。接口连接到计算机上。BIOSBIOS作用作用作用作用和计算机和计算机和计算机和计算机启动过程启动过程启动
36、过程启动过程见见见见P46P46CMOSCMOS见见见见P47P47教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构 早早期期的的PC机机主主板板是是将将快快速速的的CPU、中中速速的的内内存存、慢慢速速的的外设都外设都连接在一条总线上连接在一条总线上连接在一条总线上连接在一条总线上,使系统的总体性能得不到优化。,使系统的总体性能得不到优化。图图图图3.11 3.11 单总线结构图单总线结构图单总线结构图单总线结构图教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构48
37、6到到Pentium II期间,主板一般采用南北桥芯片结构主板。期间,主板一般采用南北桥芯片结构主板。Pentium II处理器处理器Pentium II 处理器处理器CPU总线总线82443BX(北桥)(北桥)主存主存支持支持SDRAM 66/100MHz2AGP总线总线图形设备图形设备82371EB(PIIX4E)(南桥)(南桥)ISA插槽插槽 2个个IDE接口接口2个个USB接口接口I/OAPICPCI总线总线PCI插槽插槽 系统系统BIOSISA总线总线 传传统统的的南南北北桥芯片组:桥芯片组: 北北桥桥:主主板板上上离离CPU最最近近的的一一块块芯芯片片,负负责责与与CPU的的联联系
38、系并并控控制制内内存存、AGP、PCI数数据据在在北北桥桥内部传输。内部传输。 南南桥桥:主主板板上上另另一一块块芯芯片片,主主要要负负责责I/O接接口口以以及及IDE设设备备的的 控控 制制 等等 。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构Pentium II采用的南北桥芯片结构主板。采用的南北桥芯片结构主板。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构采用中心结构的主板结构采用中心结构的主板结构 图图键盘键盘鼠标鼠标串串行行口口并并行行口口CPU多核多
39、核/单核单核存储控制中心存储控制中心(北桥北桥)中心高速接口中心高速接口I/O控制中心控制中心(南桥南桥)固件中心固件中心BIOS ROMPCI扩展插槽扩展插槽PCI总线总线硬盘和光驱接口硬盘和光驱接口USB端口端口音频接口音频接口I/O芯片芯片PCIe显示接口显示接口主存储器主存储器网络接口网络接口 采用中心结构采用中心结构采用中心结构采用中心结构的芯片组:共的芯片组:共的芯片组:共的芯片组:共3 3块块块块芯片构成。芯片构成。芯片构成。芯片构成。 存储控制中心存储控制中心存储控制中心存储控制中心 (北桥芯片)北桥芯片)北桥芯片)北桥芯片) I/OI/O控制中心控制中心控制中心控制中心 (南
40、桥芯片)南桥芯片)南桥芯片)南桥芯片) 固件中心:相固件中心:相固件中心:相固件中心:相当于传统体系结当于传统体系结当于传统体系结当于传统体系结构中的构中的构中的构中的BIOS BIOS ROMROM。这种体系其实和这种体系其实和这种体系其实和这种体系其实和南北桥架构相差南北桥架构相差南北桥架构相差南北桥架构相差不大。它主要是不大。它主要是不大。它主要是不大。它主要是把把把把PCIPCI系统总线控系统总线控系统总线控系统总线控制部分从北桥转制部分从北桥转制部分从北桥转制部分从北桥转到南桥。到南桥。到南桥。到南桥。前端总线前端总线PCIe总线总线教学进度教学进度教学进度教学进度计算机科学与工程系
41、计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构采用中心结构的主板结构采用中心结构的主板结构 PCI-E :PCI Express的简称,的简称,是用来代替是用来代替PCI、AGP接口的一种接口的一种新的总线和接口新的总线和接口标准,其传输速标准,其传输速度远远高于单独度远远高于单独的的PCI和和AGP总总线线 。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构 内内存存储储器器 (简简称称内内存存):是是计计算算机机记记忆忆或或暂暂存存数数据据的的部部件件。由由半半导导体体材材料料构构成成。内内存存分分为为只只读读
42、存存储储器器和和随随机机读读写写存储器。存储器。P48内存储器分类内存储器分类3.2.4 内存储器内存储器 P48存储器定义存储器定义教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系存储单元地址存储单元地址存储体结构图示意存储体结构图示意存储位存储位存储单元存储单元(字节)(字节)存储体存储体 512 MB 2 GB存储单元特点:存储单元特点: 地址与存储单元是一一对应的地址与存储单元是一一对应的 一个数据存放在一个或多个字节中一个数据存放在一个或多个字节中 CPU通过单元地址访问存储单元中的数据通过单元地址访问存储单元中的数据 往存储单元放新数据时原数据将被覆盖往存储单元
43、放新数据时原数据将被覆盖教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构1. 只读存储器只读存储器ROM P49特点:存储的信息只能读出,不能随机改写特点:存储的信息只能读出,不能随机改写或存入,断电后信息不会丢失,可靠性高。或存入,断电后信息不会丢失,可靠性高。ROM分类分类 (1) 掩膜式掩膜式 ROM(Mask ROM) (2) 可编程可编程 PROM(Programmable ROM) (3) 可擦除可擦除 EPROM (Erasable PROM) (4) 电可擦电可擦 EEPROM(Electrically EPROM
44、) (5) 快擦写快擦写 ROM(Flash ROM)一般用紫一般用紫一般用紫一般用紫外线照射外线照射外线照射外线照射来擦除来擦除来擦除来擦除 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构 2. 随机可读写存储器随机可读写存储器RAM (P49-50P49-50) 特特点点:用用于于存存放放原原始始数数据据、中中间间结结果果、最最终终结结果果。开机前是空的,断电后数据消失。开机前是空的,断电后数据消失。 RAM 分类分类: (1) SRAM:静静态态RAM。不不需需要要充充电电来来保保持持数数据据完整性,成本高且集成低,一般做
45、高速缓冲存储器。完整性,成本高且集成低,一般做高速缓冲存储器。 (2) DRAM:动动态态RAM。需需要要定定时时充充电电来来保保持持数数据据的的完完整整性性,通通常常所所说说的的“内内存存”主主要要由由它它构构成成。一一般指以下两种类型:般指以下两种类型: SDRAM-同步动态存储器同步动态存储器 DDR-双倍速率内存双倍速率内存 (DDR2-四倍速率内存四倍速率内存DDR3)教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主
46、机结构 3. Cache(高速缓存高速缓存 )P56 Cache是是一一种种高高速速缓缓冲冲存存储储器器,是是为为了了解解决决CPU与与主主存存之之间间速速度度不不匹匹配配而而采采用用的的一一种种重重要要技技术术。其其中中片片内内Cache是是集集成成在在CPU芯芯片片中中,片片外外Cache是是安安插插在在主主板板上上。高高速速缓缓冲冲存存储储器器的的存存取取速速度度比比主主存存要要快一个数量级,大体与快一个数量级,大体与CPU的处理速度相当。的处理速度相当。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构缓存的工作原理是:缓
47、存的工作原理是:缓存的工作原理是:缓存的工作原理是:当当CPU要读取一个数据时,首要读取一个数据时,首先从缓存中查找,先从缓存中查找,如果找到了,如果找到了,如果找到了,如果找到了,就立即读取并送给就立即读取并送给CPU;如果没找到,如果没找到,如果没找到,如果没找到,就用相对慢的速度从内存中读就用相对慢的速度从内存中读取并送给取并送给CPU,同时把这个数据所在的数据块调入,同时把这个数据所在的数据块调入缓存中,缓存中,可以使得以后对整块数据的读取都从缓存可以使得以后对整块数据的读取都从缓存中进行,不必再读取内存。中进行,不必再读取内存。正是这样的读取机制使正是这样的读取机制使CPU读取缓存的
48、命中率非常高。一般说来,读取缓存的命中率非常高。一般说来,CPU对对高速缓存器命中率可在高速缓存器命中率可在90以上,甚至高达以上,甚至高达99。有了有了高速缓存,大大节省了高速缓存,大大节省了CPU直接读取内存的时直接读取内存的时间,也就缩短了间,也就缩短了CPU的等待时间。的等待时间。一般说来,一般说来,256K的高速缓存能使整机速度平均提高的高速缓存能使整机速度平均提高10%左右。左右。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构 4.多级缓存多级缓存 最最早早的的CPU缓缓存存容容量量很很低低。当当集集成成在在CPU内
49、内核核中中的的缓缓存存已已不不能能满满足足CPU的的需需求求,而而制制造造工工艺艺上上的的限限制制又又不不能能大大幅幅度度提提高高缓缓存存的的容容量量时时,出出现现了了集集成成在在与与CPU同同一一块块主主板板上上的的缓缓存存,此此时时把把CPU内内核核集集成的缓存称为成的缓存称为一级缓存一级缓存,而外部,而外部缓存缓存称为称为二级缓存二级缓存。 现现在在多多数数CPU内内部部也也有有二二级级缓缓存存,于于是是二二级级缓缓存存又又可可分分为为内内部部二二级级缓缓存存和和外外部部二二级级缓缓存存。较较高高端端的的CPU中还会带有三级缓存中还会带有三级缓存 。 教学进度教学进度教学进度教学进度计算
50、机科学与工程系计算机科学与工程系 5. 存储器的层次结构存储器的层次结构 既既要要速速度度快快,又又要要求求容容量量大大,同同时时价价格格又又要要求求合合理理,在在目目前前技技术术条条件件下下这这三三项项指指标标很很难难用用单单一一种种类的存储器来实现。折衷的方法是采用层次结构。类的存储器来实现。折衷的方法是采用层次结构。3.2 微型计算机主机结构微型计算机主机结构辅存:辅存:辅存:辅存:教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系内内存存是是程程序序运运行行的的主主要要载载体体。CPU所所要要执执行行的的存存放放在在外外存存上上的的程程序序先先必必须须调调入入到到内内
51、存存中中,才才能被能被CPU执行。执行。 内内存存存存取取速速度度比比外外存存快快,但但相相对对CPU来来说说,是是比比较较慢慢速速的的设设备备,而而且且相相对对外外存存来来说说内内存存的的价价格较贵,所以容量不可能配置的非常大。格较贵,所以容量不可能配置的非常大。 外外存存响响应应速速度度相相对对较较慢慢,但但容容量量可可以以做做得得很很大大,外外存存价价格格比比较较便便宜宜,并并且且可可以以长长期期保保存存大大量量程程序或数据,是序或数据,是计算机中必不可少的重要设备。计算机中必不可少的重要设备。 3.2 微型计算机主机结构微型计算机主机结构教学进度教学进度教学进度教学进度计算机科学与工程
52、系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构3.2.5 总线(总线(BUS)总线:是一组连接各个部件的公共通信线路,是计总线:是一组连接各个部件的公共通信线路,是计算机内部算机内部传输指令、传输数据和传输各种控制信息传输指令、传输数据和传输各种控制信息传输指令、传输数据和传输各种控制信息传输指令、传输数据和传输各种控制信息的高速通道,是计算机硬件的一个重要组成部分。的高速通道,是计算机硬件的一个重要组成部分。总线按所传输信号不同可分为:总线按所传输信号不同可分为:P52 数据总线数据总线DB 地址总线地址总线AB 控制总线控制总线CB。 地地址址总总线线。传传输输的的是是地
53、地址址信信号号,一一般般是是单单向向传传输输。当当CPU需需要要访访问问某某个个外外设设时时,它它向向地地址址总总线线发发出出相相应应外外设设的的地地址址信号,以选择某个外设。信号,以选择某个外设。 数数据据总总线线。传传输输的的是是数数据据,一一般般是是双双向向传传输输。CPU进进行行“读读”时时,数数据据由由外外设设流流向向CPU,当当CPU进进行行“写写”时时,数数据由据由CPU流向外设。流向外设。 控控制制总总线线。有有的的是是CPU向向内内存存或或外外部部设设备备发发出出的的信信号号;有有的的是是内内存存或或外外部部设设备备向向CPU发发出出的的信信号号。对对每每条条控控制制线线而而
54、言言信信号号是是单单向向传送,但作为整体是双向的。传送,但作为整体是双向的。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构图图3.17 3.17 微机各级总线的简易关系微机各级总线的简易关系 总线按处于计算机硬件系统中的位置来分:总线按处于计算机硬件系统中的位置来分:P52 内内部部总总线线(又又称称片片内内总总线线)。是是指指CPU芯芯片片内内部部的的总总线。用于运算器、寄存器和控制器之间和信息传输线。用于运算器、寄存器和控制器之间和信息传输局部总线局部总线(又称片间总线又称片间总线)。是主板上。是主板上各外围芯片与各外围芯片
55、与CPU之间的总线,用于芯之间的总线,用于芯片一级互连。如:片一级互连。如:CPU与内存、芯片组、与内存、芯片组、系统缓存互联的前端总线系统缓存互联的前端总线系统总线系统总线(又称输入又称输入/输出总线输出总线)。是微机中各插件板与。是微机中各插件板与系统主板之间的总线,用于插件板一级的互连。通常系系统主板之间的总线,用于插件板一级的互连。通常系统总线的接口都做成多个插槽的形式连接网卡、声卡等统总线的接口都做成多个插槽的形式连接网卡、声卡等插件板插件板 外部总线外部总线(又称通信总线又称通信总线)。是微机和。是微机和外部中低速外部设备之间或外设与主机外部中低速外部设备之间或外设与主机连接的总线
56、。如:连接的总线。如:USB总线、串行总线、总线、串行总线、并行总线等并行总线等教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构微机系统三层总线示意简图微机系统三层总线示意简图北桥北桥CPU内存内存Cache局部总线(片间)局部总线(片间)局部总线(片间)局部总线(片间)南桥南桥PCI接口(网卡、声卡等)接口(网卡、声卡等)键盘、鼠标、接口键盘、鼠标、接口USB外部(通讯)总线外部(通讯)总线外部(通讯)总线外部(通讯)总线前端总线前端总线AGP总线总线存储器总线存储器总线AGP显卡显卡PCI-E显卡显卡系统总线(系统总线(系统总
57、线(系统总线(I/OI/O)内部总线(片内)内部总线(片内)内部总线(片内)内部总线(片内)教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构 ISA总线。是最早的总线。是最早的8位系统总线。后位系统总线。后来扩展到来扩展到16位。位。ISA是现代个人计算机是现代个人计算机的基础。的基础。系统总线标准系统总线标准 P52P52 系统总线标准大致可分为系统总线标准大致可分为ISA总线、总线、PCI总线、总线、AGP总总线、线、PCI Express四个阶段。四个阶段。 PCI总线。主要特点是传输速度高,总线。主要特点是传输速度高,广泛
58、应用于现代微机中。广泛应用于现代微机中。 AGP总线。专为系统中一块图形显示总线。专为系统中一块图形显示卡设计的总线。卡设计的总线。 PCI Express总线。是新一代的总线接总线。是新一代的总线接口。(简写为口。(简写为PCI-E)教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构 常见的常见的I/O总线:总线: USB总线总线(P55) 属属高高速速串串行行接接口口总总线线。该该总总线线最最多多可可连连接接127个个设设备备,支支持持热热拔拔插插,支支持持即即插插即即用用,所所以以USB接接口口已已经经成成为为许许多多外外设设
59、的的标标准准接接口口。USB有有两两个个规规范范,即即USB1.1、USB2.0和和USB3.0。 IEEE1394总线总线 属属高高速速串串行行接接口口总总线线,主主要要用用于于连连接接DV等等数数码码设设备或打印机、扫描仪等外设。备或打印机、扫描仪等外设。外部总线标准外部总线标准教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构 I/O接口是接口是连接主机和外连接主机和外部设备之间的部设备之间的逻辑部件,由逻辑部件,由I/O接口电路、接口电路、连接器连接器(一般为一般为连接电缆连接电缆)和接和接口软件口软件(即设备即设备驱动程序
60、驱动程序)组成。组成。3.2.6 接口接口教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.2 微型计算机主机结构微型计算机主机结构 根据根据I/O接口是否内嵌在主板中,可将接口是否内嵌在主板中,可将I/O接口分为内置接口分为内置I/O接口和外置接口和外置I/O接口两类。接口两类。 (1) 内置内置I/O接口接口 将将I/O接接口口电电路路内内嵌嵌在在主主板板中中,由由主主板板提提供供外外设设接接口口电电路路插插座座,如如键键盘盘接接口口、鼠鼠标标接接口口、USB接接口口、串串口口、并并口口及软硬盘接口等。及软硬盘接口等。 (2) 外置外置I/O接口接口 将将I/O接口集
61、成到一块独立的电路板接口集成到一块独立的电路板(接口卡接口卡)上,接口卡上,接口卡必须插在总线扩展插槽上必须插在总线扩展插槽上(如如PCI、PCI Express插槽等插槽等) 。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.3 外部存储器外部存储器 外外部部存存储储器器通通常常用用来来存存放放需需要要长长期期保保存存的的各各种种程程序序和和数数据据。当当需需要要执执行行或或处处理理这这些些程程序序和和数数据据时时,必必必必须须须须将将将将其其其其先先先先调调调调入入入入到到到到内内内内存存存存中中中中然然然然后后后后再再再再被被被被CPUCPU处处处处理理理理, 所
62、所所所以以以以外存实际上属于输入输出设备。外存实际上属于输入输出设备。外存实际上属于输入输出设备。外存实际上属于输入输出设备。 目目前前微微机机常常用用的的外外存存储储器器主主要要有有软软盘盘、硬硬盘盘、光盘、光盘、 U盘等。盘等。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.3 外部存储器外部存储器3.3.1 软盘软盘 P58-5979079079磁道,每磁道磁道,每磁道磁道,每磁道磁道,每磁道9 9扇区,每扇区扇区,每扇区扇区,每扇区扇区,每扇区512B512B80 9512B=40 9 1024B=360KB80 9512B=40 9 1024B=360KB所
63、以所以所以所以5.255.25盘的容量为盘的容量为盘的容量为盘的容量为360KB360KB。同理可求得。同理可求得。同理可求得。同理可求得3.253.25盘的容量为盘的容量为盘的容量为盘的容量为2 2面面面面 80 18 512B=1.44MB 80 18 512B=1.44MB教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.3 外部存储器外部存储器3.3.2 硬盘硬盘 硬盘是微机最重要的外部存储器,常用于安装微机运行硬盘是微机最重要的外部存储器,常用于安装微机运行所需的系统软件和应用软件,以及存储大量数据。所需的系统软件和应用软件,以及存储大量数据。柱柱面面磁头磁头臂
64、臂 (1) 硬盘存储格式硬盘存储格式 硬盘是由多个涂有磁性物质的金属圆盘盘片组成,盘片的每一面都硬盘是由多个涂有磁性物质的金属圆盘盘片组成,盘片的每一面都有一个读写磁头,在对硬盘进行格式化时,将对盘片进行划分磁道和扇有一个读写磁头,在对硬盘进行格式化时,将对盘片进行划分磁道和扇区,对于大容量的硬盘还将多个扇区组织起来成为一个块区,对于大容量的硬盘还将多个扇区组织起来成为一个块“簇簇”,簇,簇成为磁盘读写的基本单位。有的簇是一个扇区,有的有好几个扇区,可成为磁盘读写的基本单位。有的簇是一个扇区,有的有好几个扇区,可以在格式化的参数中给定。以在格式化的参数中给定。最外面的为最外面的为0柱面柱面教学
65、进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.3 外部存储器外部存储器 (2) 硬盘性能指标硬盘性能指标 硬盘的容量。现在微机上所配置的硬盘一般在硬盘的容量。现在微机上所配置的硬盘一般在200GB以上。以上。 硬盘的转速。硬盘的转速越快,硬盘寻找文件的速度也就越快。现硬盘的转速。硬盘的转速越快,硬盘寻找文件的速度也就越快。现在的主流硬盘转速一般为在的主流硬盘转速一般为7200rpm以上。以上。 缓存。硬盘自带的缓存,缓存越多,越能提高硬盘的访问速度。缓存。硬盘自带的缓存,缓存越多,越能提高硬盘的访问速度。 (3) 硬盘接口硬盘接口 硬盘接口分为硬盘接口分为IDE、SATA
66、、SCSI和光纤通道四种,和光纤通道四种,IDE接口硬盘多用接口硬盘多用于家用产品中,于家用产品中,SATA是种新生的硬盘接口类型。是种新生的硬盘接口类型。 (4) 硬盘格式化硬盘格式化 硬盘低级格式化。主要是对一个新硬盘划分磁道和扇区。硬盘低级格式化。主要是对一个新硬盘划分磁道和扇区。 硬盘分区。把硬盘划分为成若干个相对独立的逻辑分区(硬盘分区。把硬盘划分为成若干个相对独立的逻辑分区(C、D盘)盘) 。 硬盘高级格式化。高级格式化主要是对指定的硬盘分区进行初始化,硬盘高级格式化。高级格式化主要是对指定的硬盘分区进行初始化,建立文件分配表以便系统按指定格式存储文件。建立文件分配表以便系统按指定
67、格式存储文件。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.3.3 光盘存储器光盘存储器 光盘的分类光盘的分类: 1只读型光盘只读型光盘 只只读读光光盘盘中中的的数数据据是是在在制制作作时时写写入入的的,用用户户只只能能读读数数据据,而而不不能能写写入入或或修修改改光光盘盘中中的的数数据据。音音频频光光盘盘CD-DA、数数据据光盘光盘 CD-ROM、 VCD、DVD等都属于只读光盘。等都属于只读光盘。 2一次写入光盘一次写入光盘 这这种种光光盘盘允允许许一一次次写写入入数数据据,但但不不能能修修改改和和擦擦除除数数据据, 如如 CD-R。 3可擦写光盘可擦写光盘 这种
68、光盘可多次写入或修改数据,如这种光盘可多次写入或修改数据,如CD-RW。3.3 外部存储器外部存储器 光光盘盘简简称称CD(Compact Disc)是是利利用用塑塑料料盘盘片片表表面面凹凹凸凸不不平的特征,通过光的反射来记录和识别二进制的平的特征,通过光的反射来记录和识别二进制的0、1信息。信息。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 从从光光盘盘中中读读取取数数据据的的设设备备我我们们称称之之为为光光驱驱。光光驱驱把把经经过过聚聚焦焦后后的的激激光光投投射射到到光光盘盘上上,利利用用光光盘盘的的凹凹坑坑或或非非凹凹坑坑边边缘缘反反射射的的激激光光强强度度不不同
69、同而而将将其其表表示示为不同的电信号。为不同的电信号。 光光驱驱倍倍数数是是指指光光盘盘的的数数据据传传输输率率(150KB/s为为单单倍倍速速,以以 此此 类类 推推 , 16X的的 是是2400KB/s)。CD-ROM光光盘盘驱驱动动器器能能读读除除DVD以以外外的的所所有有光光盘盘。而而DVD光光盘盘要要用用DVD驱驱动动器器才才能能读读,DVD驱驱动动器器兼兼容容CD-ROM所能读的光盘。所能读的光盘。3.3 外部存储器外部存储器教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 DVD光盘光盘 (P64) DVD盘片的物理规格与盘片的物理规格与CD盘片是一样的,盘片
70、是一样的,CD盘盘只使用一个面记录一层的信息,而只使用一个面记录一层的信息,而DVD盘可分为单面盘可分为单面单层、单面双层、双面单层以及双面双层单层、单面双层、双面单层以及双面双层 4 种结构。种结构。3.3 外部存储器外部存储器 DVD按用途可分为以下几类:按用途可分为以下几类: 应用最广的是应用最广的是DVD-Video 格式,用于存储影音信格式,用于存储影音信息。此外还有息。此外还有DVD-ROM(只读只读DVD)、 DVD-Audio(音音频频DVD)、 DVDR(可写可写DVD,Recordable)、 DVD-RAM或或DVDRW (可擦写可擦写DVD)。P65 另外,还有蓝光高清
71、另外,还有蓝光高清DVD光盘(高容量、高清)。光盘(高容量、高清)。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 光盘刻录机光盘刻录机 是是指指可可读读写写的的光光盘盘驱驱动动器器。包包括括CD和和DVD两两种种刻录机。刻录机。3.3 外部存储器外部存储器 CD刻刻录录机机既既有有CD-ROM光光驱驱的的功功能能,也也能能够够刻刻录录CD光光盘盘。其其传传输输速速率率一一般般标标注注为为 A/B/C 的的形形式式(如如 20/10/40),其其中中A表表示示写写CD-R盘盘的的倍倍速速,B表表示写示写CD-RW盘的倍速,盘的倍速,C表示读盘的倍速。表示读盘的倍速。 D
72、VD刻刻录录机机既既具具有有DVD-ROM光光驱驱的的功功能能,也也能够刻录能够刻录DVD光盘和光盘和CD光盘。光盘。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 3.3.4 U盘盘 通通过过USB接接口口与与电电脑脑连连接接,实实现现即即插插即即用用(称称热热拔拔插插),具具有有小小巧巧、可可靠靠、易易于于操操作作等等特特点点。闪闪存存盘盘中中无无任任何何机机械械式式装装置置,抗抗震震性性能能强强。U盘盘中中的的存存储模块其实就是储模块其实就是Flash-ROM。 移动硬盘一般由笔记本硬盘和硬盘盒组成。移动硬盘一般由笔记本硬盘和硬盘盒组成。 3.3 外部存储器外部存
73、储器教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.常用的外部设备常用的外部设备3.4.1 输入设备输入设备P73-77 (1) 键盘键盘 (2) 鼠标鼠标 (3) 扫描仪扫描仪 3.4.2 输出设备输出设备 (1) 显示器显示器 (2) 打印机打印机 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.常用的外部设备常用的外部设备 (1) 显示器显示器 CRT显显示示器器在在工工作作时时,电电子子枪枪发发出出电电子子束束轰轰击击荧荧光光粉粉层层上上的的某某一一点点,使使该该点点发发光光,每每个个像像素素有有红红、绿绿、蓝蓝三三基基色色组组成成,通通
74、过过对对三三基基色色的的强强度度的的控制就能合成各种不同颜色。控制就能合成各种不同颜色。 液晶显示器液晶显示器LCD的优点在于:的优点在于: 图图像像稳稳定定。由由于于只只有有在在画画面面内内容容发发生生变变化化时时才才需要刷新,因此没有闪烁感;需要刷新,因此没有闪烁感; 液晶底板整体发光,真正的完全平面;液晶底板整体发光,真正的完全平面; LCD显示器基本上没有辐射;显示器基本上没有辐射; 能耗低。约为能耗低。约为CRT显示器的三分之一。显示器的三分之一。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.常用的外部设备常用的外部设备 (2) 打印机打印机 常用的有针式打
75、印机、喷墨打印机和激光打印机等。常用的有针式打印机、喷墨打印机和激光打印机等。 针针式式打打印印机机特特点点。利利用用钢钢针针击击打打色色带带把把色色带带上上的的墨墨打打印印在在纸纸上上形形成成文文本本或或图图形形。缺缺点点是是打打印印质质量量差差、速速度度慢慢、噪噪声大;优点是可以打多联纸,耗材相对较便宜。声大;优点是可以打多联纸,耗材相对较便宜。 喷喷墨墨打打印印机机特特点点。打打印印头头上上有有若若干干个个喷喷头头,打打印印时时,墨墨水水以以每每秒秒近近万万次次的的频频率率喷喷射射到到纸纸上上。与与其其它它两两类类打打印印机机相相比,在打印质量、速度、噪声及成本方面处于中等层次。比,在打
76、印质量、速度、噪声及成本方面处于中等层次。 激激光光打打印印机机特特点点。利利用用激激光光可可以以形形成成很很细细的的光光点点,将将碳碳粉粉固固着着在在纸纸上上,加加热热后后碳碳粉粉固固定定在在纸纸上上,最最后后印印出出文文字字和和图图片片。优优点点是是打打印印速速度度快快、噪噪音音低低、质质量量好好,缺缺点点是是价价格格及及打印成本较高。打印成本较高。 对对三三种种打打印印机机的的打打印印效效果果对对比比来来说说,激激光光最最好好,喷喷墨墨其其次次,而针式相对较差。而针式相对较差。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.常用的外部设备常用的外部设备 打印机性
77、能参数:打印机性能参数:P711、打打印印分分辨辨率率DPI(纵纵横横方方向向每每英英寸寸打打印的点数印的点数2、打印速度(张、打印速度(张/分)分)3、打印缓冲、打印缓冲 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.常用的外部设备常用的外部设备3.4.3 其他外部设备其他外部设备 (1) 多媒体设备(第七章)多媒体设备(第七章)P78 (2) 调制解调器调制解调器教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.5 计算机指令及执行计算机指令及执行3.5.1 计算机指令系统计算机指令系统 指指令令:是是指指计计算算机机执执行行特特定定操操作作
78、的的命命令令。是是程程序设计的最小语言单位。序设计的最小语言单位。 指指令令构构成成:操操作作码码+操操作作数数(通通常常指指操操作作数数的的地地址码),也可写成:址码),也可写成: 操作码操作码+地址码地址码 指指令令系系统统:是是指指一一台台计计算算机机所所能能执执行行的的全全部部指指令令的的集集合合。不不同同型型号号的的计计算算机机有有不不同同的的指指令令系系统统。它反映了计算机的处理能力。它反映了计算机的处理能力。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.5 计算机指令及执行计算机指令及执行操作码操作码 操作数操作数 数据传送指令数据传送指令数据处理指令
79、数据处理指令程序控制指令程序控制指令输入输出指令输入输出指令其它指令其它指令 If Goto And OrCPU内存内存I/O设备设备主机主机对计算机的硬件进行管理等对计算机的硬件进行管理等指令指令 结构结构分分类类操作码操作码 要完成的操作类型或性质要完成的操作类型或性质操作数操作数 操作的内容或所在的地址操作的内容或所在的地址 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.5 计算机指令及执行计算机指令及执行3.5.2 指令的执行过程指令的执行过程 开始开始取一条指令取一条指令执行指令执行指令取数取数分析指令分析指令停止停止停机指令停机指令执行指令执行指令教学进度
80、教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.5 计算机指令及执行计算机指令及执行 可分为以下四个步骤:可分为以下四个步骤:可分为以下四个步骤:可分为以下四个步骤: 开开开开始始始始执执执执行行行行程程程程序序序序时时时时,先先先先给给给给程程程程序序序序计计计计数数数数器器器器 PCPC赋赋赋赋 以以以以 第第第第 一一一一 条条条条 指指指指 令令令令 的的的的 首首首首 地地地地 址址址址0100H0100H。 取取取取指指指指令令令令 按按按按照照照照计计计计数数数数器器器器中中中中的的的的地地地地址址址址从从从从内内内内存存存存中中中中取取取取出出出出指指指指令令令
81、令(070270H)(070270H),并并并并送送送送往往往往指指指指令令令令寄寄寄寄存存存存器器器器。然然然然后后后后计计计计数数数数器器器器PCPC自自自自动动动动加加加加1 1指向下一指令地址。指向下一指令地址。指向下一指令地址。指向下一指令地址。 分分分分析析析析指指指指令令令令 对对对对指指指指令令令令寄寄寄寄存存存存器器器器中中中中存存存存放放放放的的的的指指指指令令令令(070270H)(070270H)进进进进行行行行分分分分析析析析,由由由由译译译译码码码码器器器器对对对对操操操操作作作作码码码码 (07H)(07H)进进进进行行行行译译译译码码码码,由由由由地地地地址址址
82、址码码码码(0270H)(0270H)确定操作数地址。确定操作数地址。确定操作数地址。确定操作数地址。 执执执执行行行行指指指指令令令令 取取取取出出出出操操操操作作作作数数数数,去去去去完完完完成成成成该该该该指指指指令令令令所所所所要要要要求求求求的的的的操操操操作作作作。例例例例如如如如做做做做加加加加法法法法指指指指令令令令,取取取取内内内内存存存存单单单单元元元元(0270H)(0270H)的的的的值值值值和和和和累累累累加加加加器器器器的值相加,结果还是放在累加器。的值相加,结果还是放在累加器。的值相加,结果还是放在累加器。的值相加,结果还是放在累加器。 一一一一条条条条指指指指令
83、令令令执执执执行行行行完完完完成成成成,再再再再回回回回到到到到取指令阶段开始下一指令的执行。取指令阶段开始下一指令的执行。取指令阶段开始下一指令的执行。取指令阶段开始下一指令的执行。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3.5 计算机指令及执行计算机指令及执行3.5.3 计算机硬件系统的性能指标计算机硬件系统的性能指标 (1) CPU的的主主频频。主主频频越越高高,单单位位时时间间内内完完成成的的指指令令数数也也越越多,多,CPU工作的速度也就越快。工作的速度也就越快。 (2) 字字长长。字字长长越越长长,计计算算机机一一次次所所能能处处理理信信息息的的位位数数
84、就就越越多,表现为计算机的运算速度越快。多,表现为计算机的运算速度越快。 (3) 运运算算速速度度。它它是是一一项项综综合合性性的的性性能能指指标标。是是指指计计算算机机每每秒钟执行的指令数,单位是秒钟执行的指令数,单位是MIPS,即每秒百万条指令。,即每秒百万条指令。 (4) 内内存存容容量量。内内存存容容量量越越大大,一一次次读读入入的的程程序序、数数据据就就越越多,计算机的运行速度也就越快。多,计算机的运行速度也就越快。 (5) 内内存存存存取取速速度度。内内存存连连续续启启动动两两次次独独立立的的“读读”或或“写写”操操作作所所需需的的最最短短时时间间,称称为为存存取取周周期期。存存取
85、取周周期期的的单单位位为为纳纳秒秒ns(1ns=10-9s) (6) I/O速速度度。I/O的的速速度度是是指指CPU与与外外部部设设备备进进行行数数据据交交换换的速度。目前系统性能的瓶颈越来越多地体现在的速度。目前系统性能的瓶颈越来越多地体现在I/O速度上。速度上。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 近年来,微电子技术及大规模集成电路取得了长足近年来,微电子技术及大规模集成电路取得了长足的进步,以半导体芯片组成的存储器,其容量由过去的的进步,以半导体芯片组成的存储器,其容量由过去的几百、几千字节扩大到几十兆字节,甚至更大容量的存几百、几千字节扩大到几十兆字
86、节,甚至更大容量的存储器已经问世。储器已经问世。 随着计算机应用领域的拓宽,目前不少企事业部门随着计算机应用领域的拓宽,目前不少企事业部门要求应用计算机来实现管理现代化,建立综合的管理信要求应用计算机来实现管理现代化,建立综合的管理信息系统,其要求存储的数据量愈来愈大;另外软件资源息系统,其要求存储的数据量愈来愈大;另外软件资源也愈来愈丰富,系统软件和应用软件在种类、功能及其也愈来愈丰富,系统软件和应用软件在种类、功能及其所需存储空间等都在急剧增加。所需存储空间等都在急剧增加。 存储器作为计算机系统的重要组成部分,虽然其容存储器作为计算机系统的重要组成部分,虽然其容量一直在不断的扩大,价格已相
87、当便宜,但主存容量仍量一直在不断的扩大,价格已相当便宜,但主存容量仍然是计算机硬件资源中最关键而又最紧张的然是计算机硬件资源中最关键而又最紧张的“瓶颈瓶颈”资资源,仍然满足不了现代化软件发展的需要。源,仍然满足不了现代化软件发展的需要。4.0 准备知识准备知识教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 因此,存储器仍然是计算机系统中宝贵且紧俏的因此,存储器仍然是计算机系统中宝贵且紧俏的资源。它们如何合理而有效地使用它,在很大程度上资源。它们如何合理而有效地使用它,在很大程度上反映了反映了 OS 的性能,并直接影响到整个计算机系统性能的性能,并直接影响到整个计算机系统性
88、能的发挥。所以,存储器管理仍是目前人们研究的发挥。所以,存储器管理仍是目前人们研究 OS 的中的中心问题之一,对主存的管理和有效使用仍然是今天心问题之一,对主存的管理和有效使用仍然是今天OS 十分重要的内容。许多十分重要的内容。许多OS之间最明显的区别特征之一之间最明显的区别特征之一往往是所使用的存储管理方法不同。往往是所使用的存储管理方法不同。如如OS/360-MFT采用固定分区存储管理技术,采用固定分区存储管理技术,OS/360-MTV是采用可变分区存储管理技术,是采用可变分区存储管理技术,OS/2,WindowsNT, 是采用虚拟存储管理技术。是采用虚拟存储管理技术。 由于对外存的管理与
89、对内存的管理有许多相似之由于对外存的管理与对内存的管理有许多相似之处,只是两者用途不同,加之外存主要用来存储文件,处,只是两者用途不同,加之外存主要用来存储文件,故对外存的管理放在文件管理一章中介绍,存储器管故对外存的管理放在文件管理一章中介绍,存储器管理讨论的对象是内存。理讨论的对象是内存。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 本章主要介绍各种实存储分配和管理方案,虚本章主要介绍各种实存储分配和管理方案,虚拟存储器的概念及实现不同虚拟存储器的技术的讨拟存储器的概念及实现不同虚拟存储器的技术的讨论。论。 操作系统之所以有那么多种类,甚至一种型号操作系统之所以有那
90、么多种类,甚至一种型号的计算机配置若干种操作系统,其主要原因之一是的计算机配置若干种操作系统,其主要原因之一是为了适应各种用途而采用了不同的存储器管理策略。为了适应各种用途而采用了不同的存储器管理策略。 在介绍各种存储器管理技术方案之前,首先指在介绍各种存储器管理技术方案之前,首先指出存储器管理的主要目的及其应提供的出存储器管理的主要目的及其应提供的主要功能主要功能,并说明在存储器管理中几个十分重要的概念。例如:并说明在存储器管理中几个十分重要的概念。例如:存储器的层次、存储分配、地址重定位存储器的层次、存储分配、地址重定位等概念。等概念。教学进度教学进度教学进度教学进度计算机科学与工程系计算
91、机科学与工程系高速缓存高速缓存主存主存外存外存cpu可访可访n十十k 几百几百knM 几百几百MnGMn十十G(G=1km)高速缓存高速缓存Cache:K字节、高速、昂贵、易变的字节、高速、昂贵、易变的内存内存RAM: M字节、中速、中等价格、易变的字节、中速、中等价格、易变的 磁盘:磁盘:G或或T字节、低速、价廉、不易变的字节、低速、价廉、不易变的 为能更多的存放并更快地处理用户信息,目为能更多的存放并更快地处理用户信息,目前许多计算机把存储器分为三级。前许多计算机把存储器分为三级。4.0.1 存储器的层次结构存储器的层次结构教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程
92、系 图图中中的的三三级级存存储储器器,从从高高速速缓缓冲冲存存储储器器(简简称称缓缓存存)到到外外部部存存储储器器(以以后后简简称称外外存存),其其容容量量愈愈来来愈愈大大,而而访访问问数数据据的的速速度度则则愈愈来来愈愈慢慢,价价格格也也愈愈来来愈愈便便宜宜。如如现现在在的的缓缓存存的的最最大大传传输输速速度度为为几几十十分分之之一一至至几几百百分分之之一一ns,主主存存的的传传输速度几输速度几ns级级。 用用户户的的程程序序在在运运行行时时应应存存放放在在主主存存中中,以以便便处处理理机机访访问问。其其中中直直接接存存取取要要求求内内存存速速度度尽尽量量快快到到与与CPU取取指指速速度度相
93、相匹匹配配,大大到到能能装装下下当当前前运运行行的的程程序序与与数数据据,否否则则CPU执执行速度就会受到内存速度和容量的影响而得不到充分发挥。行速度就会受到内存速度和容量的影响而得不到充分发挥。 但但是是由由于于主主存存容容量量和和速速度度有有限限。所所以以把把那那些些不不马马上上使使用用的的程程序序、数数据据放放在在外外部部存存储储器器(又又称称辅辅存存)中中。当当用用到到时时再把它们读入主存。再把它们读入主存。 由操作系统协调这些存储器的使用由操作系统协调这些存储器的使用 4.0.1 存储器的层次结构存储器的层次结构教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 为
94、了便于对主存储器进行有效的管理,我们为了便于对主存储器进行有效的管理,我们把存储器分成若干个区域。即使在最简单的单用把存储器分成若干个区域。即使在最简单的单用户系统中,至少也要把它分成两个区域:户系统中,至少也要把它分成两个区域:在一个在一个存储区域内存放系统软件,如操作系统本身;而存储区域内存放系统软件,如操作系统本身;而另一个存储区域则用于安置用户作业另一个存储区域则用于安置用户作业。显然,在。显然,在多用户系统中,为了提高系统的利用率,需要将多用户系统中,为了提高系统的利用率,需要将存储器划分成更多的区域,以便同时存放多个用存储器划分成更多的区域,以便同时存放多个用户作业。这就引起了存储
95、器分配问题及随之产生户作业。这就引起了存储器分配问题及随之产生的其它问题。的其它问题。4.0.2 存储器管理的目的和功能存储器管理的目的和功能教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系存储器管理的主要目的和功能如下:存储器管理的主要目的和功能如下:1.主存储器的分配和管理主存储器的分配和管理:按用户要求把适当的按用户要求把适当的存储空间分配给相应的作业。一个有效的存储分配存储空间分配给相应的作业。一个有效的存储分配机制,应在用户请求时能作出快速的响应,分配相机制,应在用户请求时能作出快速的响应,分配相应的存储空间;在用户不再使用它时,应立即回收,应的存储空间;在用户不
96、再使用它时,应立即回收,以供其他用户使用。为此,这个存储分配机制应具以供其他用户使用。为此,这个存储分配机制应具有如下功能(有如下功能(3个):个):(1)记住每个存储区域的状态:哪些是已分配的,哪些是可以用作分配的。(2)实施分配:在系统程序或用户提出申请时,按所需的量给予分配;修改相应的分配记录表。(3)接受系统或用户释放的存储区域:并相应地修改分配记录表。4.0.2 存储器管理的目的和功能存储器管理的目的和功能教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系2.提高主存储器的利用率:提高主存储器的利用率:使多道程序能动态地使多道程序能动态地共享主存,最好能共享主存中的
97、信息。共享主存,最好能共享主存中的信息。3.“扩充扩充”主存容量:主存容量:这是借助于提供虚拟存储这是借助于提供虚拟存储器或其它自动覆盖技术来达到的。即为用户提供比器或其它自动覆盖技术来达到的。即为用户提供比主存的存储空间还大的地址空间,之后,用户可以主存的存储空间还大的地址空间,之后,用户可以想象把他的程序或数据装入到这样的地址空间内。想象把他的程序或数据装入到这样的地址空间内。4.存储保护存储保护:确保各道用户作业都在所分配的存确保各道用户作业都在所分配的存储区内操作,互不干扰。即要防止一道作业由于发储区内操作,互不干扰。即要防止一道作业由于发生错误而损害其它作业,特别需要防止破坏其中的生
98、错误而损害其它作业,特别需要防止破坏其中的系统程序。这个问题不能用特权指令来加以解决。系统程序。这个问题不能用特权指令来加以解决。而必须由硬件提供保护功能,并由软件配合实现。而必须由硬件提供保护功能,并由软件配合实现。4.0.2 存储器管理的目的和功能存储器管理的目的和功能教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 所谓存储分配,所谓存储分配,主要是讨论和解决多道作业之主要是讨论和解决多道作业之间共享主存的存储空间问题。前面已讲到现代计算间共享主存的存储空间问题。前面已讲到现代计算机系统都采用多级存储体系结构。因此,存储分配机系统都采用多级存储体系结构。因此,存储分配
99、所要解决的问题是:所要解决的问题是:要确定什么时候,以什么方式,要确定什么时候,以什么方式,或是把一个作业的全部信息还是把作业运行时首先或是把一个作业的全部信息还是把作业运行时首先需要的信息分配到主存中,并使这些问题对用户来需要的信息分配到主存中,并使这些问题对用户来说尽可能是说尽可能是“透明透明”的。的。 解决存储分配问题有三种方式:解决存储分配问题有三种方式: 1.1.直接指定方式:直接指定方式:程序员在编程序时,或编译程序员在编程序时,或编译程序程序(汇编程序汇编程序)对源程序进行编译对源程序进行编译(汇编汇编)时,所用的时,所用的是实际存储地址。是实际存储地址。 例如,例如,在多道程序
100、环境下,应保证各作业所用在多道程序环境下,应保证各作业所用的地址互不重叠的地址互不重叠。4.0.3 存储分配的三种方式存储分配的三种方式教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 显然,采用显然,采用直接指定方式直接指定方式分配的前提是:存储器的可分配的前提是:存储器的可用容量用容量(空间空间)已经给定或可以指定,这对单用户计算机系已经给定或可以指定,这对单用户计算机系统是不成问题的。统是不成问题的。 在多道程序发展的初期,通常把存储空间划分成若干在多道程序发展的初期,通常把存储空间划分成若干个固定的不同大小分区,并对不同的作业指定相应的分区。个固定的不同大小分区,并
101、对不同的作业指定相应的分区。因此,对算题人员或对编译程序而言,存储器的可用空间因此,对算题人员或对编译程序而言,存储器的可用空间是可知的。是可知的。 这种分配方式的实质是:这种分配方式的实质是:由算题人员在编程序时,或由算题人员在编程序时,或由编译程序编译源程序时,对一个作业的所有信息确定了由编译程序编译源程序时,对一个作业的所有信息确定了在主存存储空间中的位置。因此,这种直接指定方式的存在主存存储空间中的位置。因此,这种直接指定方式的存储分配方案,不仅用户感到不便,而且存储空间的利用也储分配方案,不仅用户感到不便,而且存储空间的利用也不那么有效不那么有效。(缺点)(缺点)4.0.3 存储分配
102、的三种方式存储分配的三种方式教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 2.静态分配静态分配(Static Allocation) 采用这种静态存储分配方案,采用这种静态存储分配方案,用户在编程时,或由编译程序产生的目的程序,均可从其地用户在编程时,或由编译程序产生的目的程序,均可从其地址空间的零地址开始;它们是当装配程序对其进行连接装入址空间的零地址开始;它们是当装配程序对其进行连接装入时才确定它们在主存中的相应位置,从而生成可执行程序。时才确定它们在主存中的相应位置,从而生成可执行程序。也就是说,也就是说,存储分配是在装入时实现的存储分配是在装入时实现的。 这种静
103、态存储分配方式的这种静态存储分配方式的特点特点是:是: (1)在一个作业装入时必须分配其要求的全部存储量;在一个作业装入时必须分配其要求的全部存储量; (2)如果没有足够的存储空间,就不能装入该作业;如果没有足够的存储空间,就不能装入该作业; (3)一旦一个作业进入内存后,在其退出系统之前,它一直一旦一个作业进入内存后,在其退出系统之前,它一直占用着分配给它的全部存储空间;占用着分配给它的全部存储空间; (4)在作业的整个运行过程中不能在内存中在作业的整个运行过程中不能在内存中“搬家搬家”、也不、也不能再申请存储量。能再申请存储量。 这种静态分配策略的存储管理很简单,但在多道程序系这种静态分配
104、策略的存储管理很简单,但在多道程序系统中不能有效地共享存储器资源。统中不能有效地共享存储器资源。4.0.3 存储分配的三种方式存储分配的三种方式教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 3.动态分配动态分配(Dynamic Allocation):动态分配是一种更加有动态分配是一种更加有效的使用主存储器的方法。效的使用主存储器的方法。 这种动态存储分配方式的特点是:这种动态存储分配方式的特点是: (1)作业在存储空间中的位置,也是在其装入时确定的;作业在存储空间中的位置,也是在其装入时确定的; (2)在其执行过程中可根据需要申请附加的存储空间;在其执行过程中可根据需
105、要申请附加的存储空间; (3)一个作业已占用的部分存储区域不再需要时,可以要求一个作业已占用的部分存储区域不再需要时,可以要求归还给系统归还给系统。即:这种存储分配机制能接受不可预测的分配和即:这种存储分配机制能接受不可预测的分配和释放存储区域的请求,实现个别存储区域的分配和回收;释放存储区域的请求,实现个别存储区域的分配和回收; (4)存储区域的大小是可变的;存储区域的大小是可变的; 要求这个区域必须是单个连续的存储区域,以便和提出存要求这个区域必须是单个连续的存储区域,以便和提出存储请求之作业的虚拟地址空间相对应。储请求之作业的虚拟地址空间相对应。 (5)它允许作业在内存中它允许作业在内存
106、中“搬家搬家”。 目前,绝大多数计算机系统都采用静态或动态存储分配策目前,绝大多数计算机系统都采用静态或动态存储分配策略,所以,在本章只讨论这两种存储分配的实现技术,略,所以,在本章只讨论这两种存储分配的实现技术,重点放重点放在在各种动态存储分配技术的实现上。各种动态存储分配技术的实现上。4.0.3 存储分配的三种方式存储分配的三种方式教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 我们首先要分清几个不同概念:我们首先要分清几个不同概念: 1.地址空间地址空间:是指由目标程序所限定的地址范围是指由目标程序所限定的地址范围。即:。即:地址空间仅仅是指程序用来访问信息所用的一
107、系列地址地址空间仅仅是指程序用来访问信息所用的一系列地址单元的集合。这些单元的编号称为单元的集合。这些单元的编号称为逻辑地址逻辑地址。 一个用高级语言编制的源程序,我们说它存在于由一个用高级语言编制的源程序,我们说它存在于由程序员建立的程序员建立的符号名字空间符号名字空间(简称(简称名空间名空间)。)。 通常,编译程序在对一个源程序编译时,总是从通常,编译程序在对一个源程序编译时,总是从零零号单元号单元开始为其分配地址,其它所有地址都是从这个开开始为其分配地址,其它所有地址都是从这个开始地址顺序排下来的,因此,地址空间中的所有地址都始地址顺序排下来的,因此,地址空间中的所有地址都是相对于起始地
108、址的,因而称它们为是相对于起始地址的,因而称它们为相对地址相对地址,所以,所以,逻辑地址也就是相对地址逻辑地址也就是相对地址。 2.存储空间存储空间:所谓存储空间是指主存中一系列存储所谓存储空间是指主存中一系列存储信息的物理单元的集合。这些单元的编号称信息的物理单元的集合。这些单元的编号称物理地址物理地址或或绝对地址绝对地址。因此,存储空间的大小是由主存的实际容量。因此,存储空间的大小是由主存的实际容量决定的。决定的。4.0.4 几个基本概念几个基本概念教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系符号指令符号指令 数据说明数据说明 I/OI/O说明说明0 目标目标程序程
109、序x 0 A 作业作业J JA+x 512K 名空间名空间地址空间地址空间(作业作业 J 的源程序的源程序)存储空间存储空间装入装入编译编译 简言之,地址空间是逻辑地址的集合;存储空间是简言之,地址空间是逻辑地址的集合;存储空间是物理地址的集合。一个是物理地址的集合。一个是“虚虚”的概念,一个是的概念,一个是“实实”的物体。一个编译好的目标程序存在于它自己的地址空的物体。一个编译好的目标程序存在于它自己的地址空间中,当要它在计算机上运行时,才把它装入存储空间,间中,当要它在计算机上运行时,才把它装入存储空间,上图说明一个作业在编译、装入前后存在于不同空间的上图说明一个作业在编译、装入前后存在于
110、不同空间的情况。情况。 关于三个空间的定义可以通过下面的图示来理解。关于三个空间的定义可以通过下面的图示来理解。4.0.4 几个基本概念几个基本概念教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.1 程序的装入和链接程序的装入和链接 在多道程序环境下,程序要运行必须为之创建在多道程序环境下,程序要运行必须为之创建进程,而创建进程的第一件事情就是要把用户编写进程,而创建进程的第一件事情就是要把用户编写好的源程序和数据装入内存。如何将一个用户源程好的源程序和数据装入内存。如何将一个用户源程序变为一个可在内存中执行的程序,通常要经过下序变为一个可在内存中执行的程序,通常要经过
111、下列几步:列几步: 编译编译(Compiler):一般说来,源程序模块是一般说来,源程序模块是用高级语言用高级语言(如如pascal、fortran、cobol)或汇编语言或汇编语言写的一组程序语句。计算机不能直接执行源语句,写的一组程序语句。计算机不能直接执行源语句,它们要首先被编译程序或解释程序翻译成机器级代它们要首先被编译程序或解释程序翻译成机器级代码。码。编译程序编译程序接受完整的源一级的程序,并以类似接受完整的源一级的程序,并以类似于成批的方式生成完整的于成批的方式生成完整的目标目标一级的一级的模块模块。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 链接链接
112、(Linker):目标模块是纯二进制的机器级目标模块是纯二进制的机器级代码。计算机可以执行目标级代码,但是典型的目标代码。计算机可以执行目标级代码,但是典型的目标模块是不完备的,它包含对其它目标模块(诸如存取模块是不完备的,它包含对其它目标模块(诸如存取方法或子例程)的引用。因此,目标模块通常是不能方法或子例程)的引用。因此,目标模块通常是不能装入计算机并执行的。所以,一些目标模块必须首先装入计算机并执行的。所以,一些目标模块必须首先链接成一个链接成一个装入模块装入模块,它是能被装入并执行的完备的,它是能被装入并执行的完备的机器级程序。这个使机器级程序。这个使目标模块目标模块链接成装入模块的过
113、程,链接成装入模块的过程,在在IBM系统中是由称为链接编辑程序的系统程序实现系统中是由称为链接编辑程序的系统程序实现的。的。 装入装入(Loader):由装入程序将装入模块装入内由装入程序将装入模块装入内存并执行存并执行教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系图 4-1 对用户程序的处理步骤 源程序编译程序目标模块链接程序装入模块应用程序应用程序系统源语句库私有源语句库私有目标库系统目标库装入程序装入内存教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.1.1 程序的装入程序的装入 根据存储空间的分配方式,将一个装入模块装入内存时,根据存储空间
114、的分配方式,将一个装入模块装入内存时,可采用三种方式:可采用三种方式:一、绝对装入方式一、绝对装入方式(Absolute Loading Mode) :程序员在编程程序员在编程序时,或编译程序(汇编程序)对源程序进行编译(汇编)时,序时,或编译程序(汇编程序)对源程序进行编译(汇编)时,如果知道程序将驻留在内存的具体位置,那么将产生的(所用如果知道程序将驻留在内存的具体位置,那么将产生的(所用 符号地址符号地址程程 序序JUMP iLOAD jDATAijab程程 序序JUMP 1424LOAD 2224DATA14242224绝对地址绝对地址1024的)是实际存储地址(绝对地的)是实际存储地
115、址(绝对地址)。址)。但在由程序员直接给出但在由程序员直接给出绝对地址时,不仅要求程序员绝对地址时,不仅要求程序员熟悉内存的使用情况,而且一熟悉内存的使用情况,而且一旦程序或数据被修改后,可能旦程序或数据被修改后,可能要改变程序中的所有地址。因要改变程序中的所有地址。因此,通常是宁可在程序中采用此,通常是宁可在程序中采用符号地址,然后在编译或汇编符号地址,然后在编译或汇编时,再将这些符号地址转换时,再将这些符号地址转换为为绝对地址。如右图所示:绝对地址。如右图所示:教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系二、可重定位装入方式二、可重定位装入方式(Relocation
116、 Loading Mode) :在多在多道程序环境下,由于事先并不知晓目标程序在内存的具体道程序环境下,由于事先并不知晓目标程序在内存的具体位置,为了实现静态或动态存储分配策略,需要采用下述位置,为了实现静态或动态存储分配策略,需要采用下述两个技术手段:两个技术手段: (1)把逻辑地址和物理地址分开;)把逻辑地址和物理地址分开; (2)对逻辑地址实施地址重定位。)对逻辑地址实施地址重定位。 什么叫重定位:什么叫重定位:在一般情况下,一个作业在装入时在一般情况下,一个作业在装入时分配到的存储空间和它的地址空间是不一致的。因此,分配到的存储空间和它的地址空间是不一致的。因此,作业在作业在CPU上运
117、行时,其所要上运行时,其所要访问的指令和数据访问的指令和数据的实际地址与地址的实际地址与地址空间中的相对地址空间中的相对地址是不同的。如右图是不同的。如右图所示:所示: 地址空间 0 100 Load 1,500 500 Y 1K 存储空间 0 1K1124 Load 1,5001524 Y 2K 512K 装入教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 显然,如果在作业装入时或在其执行时,不对显然,如果在作业装入时或在其执行时,不对有关的地址部分加以相应的修改,则将导致错误的有关的地址部分加以相应的修改,则将导致错误的结果。结果。 这种由于把一个作业装入到与其地址空
118、间不一这种由于把一个作业装入到与其地址空间不一致的存储空间所引起的对地址部分调整的过程,称致的存储空间所引起的对地址部分调整的过程,称为为地址重定位地址重定位。 实质上,实质上,地址重定位地址重定位是一个地址变换过程,是是一个地址变换过程,是把作业地址空间中使用的逻辑地址变换成内存空间把作业地址空间中使用的逻辑地址变换成内存空间中的物理地址的过程。这种中的物理地址的过程。这种地址变换地址变换就是前面所说就是前面所说的的地址映射地址映射。 根据对地址变换进行的时间及采用技术手段的根据对地址变换进行的时间及采用技术手段的不同,把重定位分为不同,把重定位分为静态重定位静态重定位和和动态重定位动态重定
119、位两类。两类。可重定位装入方式采用的的是可重定位装入方式采用的的是静态重定位静态重定位技术。技术。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 静态重定位:静态重定位:是指作业在装入过程中由装配程序进行是指作业在装入过程中由装配程序进行的地址变换方式的地址变换方式。它要求程序本身是可重定位的,即要求。它要求程序本身是可重定位的,即要求编译程序对作业的目标程序中那些要修改的地址部分给出编译程序对作业的目标程序中那些要修改的地址部分给出相应的标识。这种重定位之所以称为相应的标识。这种重定位之所以称为静态的静态的,是因为地址,是因为地址变换只在作业执行前集中一次完成的。变换只
120、在作业执行前集中一次完成的。 主要优点:主要优点:无需增加硬件地址变换机构,因而可在一无需增加硬件地址变换机构,因而可在一般计算机上实现。般计算机上实现。 主要缺点主要缺点:要求给每个作业分配一个连续的存储区要求给每个作业分配一个连续的存储区域,且在其整个执行期间必须限定在这个区域内域,且在其整个执行期间必须限定在这个区域内。也就是也就是说,在作业执行期间不能把它移动,因而也就不能实现重说,在作业执行期间不能把它移动,因而也就不能实现重新分配主存。这对提高主存的利用率是不利的。新分配主存。这对提高主存的利用率是不利的。 用户必须事先确定所需的存储量,若所需的存储量用户必须事先确定所需的存储量,
121、若所需的存储量超过可用存储空间时,用户必须考虑覆盖结构超过可用存储空间时,用户必须考虑覆盖结构。 用户之间难以共享主存中的同一程序。若要共享一用户之间难以共享主存中的同一程序。若要共享一程序,则每个用户应各自使用一个分开的副本程序,则每个用户应各自使用一个分开的副本。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系例:例:0LOAD 1, 25003651000 作业地址空间作业地址空间25005000LOAD 1, 2500365 内存空间内存空间011000125001500010000教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系三、动态运行时装
122、入方式三、动态运行时装入方式(Denamle Run-time Loading) : 采用的的是采用的的是动态重定位动态重定位技术。技术。 动态重定位:动态重定位:是指在作业执行过程中,当访问指是指在作业执行过程中,当访问指令或数据时,由附加的地址变换机构进行的地址变换令或数据时,由附加的地址变换机构进行的地址变换方式方式。动态重定位是靠硬件地址变换机构实现的。动态重定位是靠硬件地址变换机构实现的。 最简单的办法是利用一个重定位寄存器最简单的办法是利用一个重定位寄存器(RR)。该该寄存器的值是由寄存器的值是由进程调度程序进程调度程序(或另派程序或另派程序)根据作业根据作业分配到的存储空间起始地
123、址来设定的。分配到的存储空间起始地址来设定的。 在具有这种地址变换机构的计算机系统中,当执在具有这种地址变换机构的计算机系统中,当执行作业时,不是根据行作业时,不是根据CPU给出的有效地址去访问主存,给出的有效地址去访问主存,而是将有效地址与重定位寄存器中的内容相加后得到而是将有效地址与重定位寄存器中的内容相加后得到的地址作为访问主存的地址。下图给出了地址变换过的地址作为访问主存的地址。下图给出了地址变换过程。程。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系03456.LOAD A 200.0100200300.LOAD A 2003456逻辑地址空间逻辑地址空间110
124、012001300物理地址空间物理地址空间VR200+1000BR由于这种地址变换是在作业执行期间随着每条指令的由于这种地址变换是在作业执行期间随着每条指令的数据自动地、连续地进行,所以称之为数据自动地、连续地进行,所以称之为动态重定位动态重定位。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 采用动态重定位技术后,程序中所有指令和数据的实采用动态重定位技术后,程序中所有指令和数据的实际地址是在运行过程中最后访问的时刻确定的。因此,计际地址是在运行过程中最后访问的时刻确定的。因此,计算机系统采用了动态存储分配策略。也就是说,在作业运算机系统采用了动态存储分配策略。也就是说
125、,在作业运行过程中临时申请分配附加的存储区域或释放已占用的部行过程中临时申请分配附加的存储区域或释放已占用的部分存储空间是允许的。分存储空间是允许的。 主要优点主要优点:主存的使用更加灵活有效主存的使用更加灵活有效。这里,一个。这里,一个用户的作业不一定要分配在一个连续的存储区,因而可以用户的作业不一定要分配在一个连续的存储区,因而可以使用较小的分配单位。而且,在作业开始之前也不一定把使用较小的分配单位。而且,在作业开始之前也不一定把它的地址空间全部装入主存,而可以在作业执行期间响应它的地址空间全部装入主存,而可以在作业执行期间响应请求动态地进行分配。请求动态地进行分配。 几个作业共享一程序段
126、的单个副本比较容易几个作业共享一程序段的单个副本比较容易。 有可能向用户提供一个比主存的存储空间大得多的有可能向用户提供一个比主存的存储空间大得多的地址空间地址空间。因而无需用户来考虑覆盖结构,而由系统来负。因而无需用户来考虑覆盖结构,而由系统来负责全部的存储管理。责全部的存储管理。 主要缺点主要缺点:需要附加硬件支持;需要附加硬件支持; 实现存储器管理的软件比较复杂。实现存储器管理的软件比较复杂。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.1.2 程序的链接程序的链接 链接程序的功能,是将经过编译或汇编后所得到的一链接程序的功能,是将经过编译或汇编后所得到的一组目
127、标模块以及它们所需要的库函数,装配成一个完整的组目标模块以及它们所需要的库函数,装配成一个完整的装入模块。实现链接的方法有三种:装入模块。实现链接的方法有三种:一、静态链接:一、静态链接: (Static Linking) 事先将几个目标事先将几个目标链接装配成一个装入链接装配成一个装入模块,以后不再拆开模块,以后不再拆开的链接方式,称为的链接方式,称为静静态链接态链接方式。如右图:方式。如右图: 模块ACALL B;Return;0L-1模块BCALL C;Return;0M-1模块C Return;0N-10L-1模块AJSR “L”Return;LL+M-1模块BJSR “L+M”;Re
128、turn;模块C Return;L+ML+M+N-1教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 说明:说明:将几个目标链接装配成一个装入模块时,将几个目标链接装配成一个装入模块时,需解决以下两个问题:需解决以下两个问题: 1. 将相对地址进行修改。将相对地址进行修改。即将除第一个模块外即将除第一个模块外的相对地址修改成装入模块中的相应的相对地址。的相对地址修改成装入模块中的相应的相对地址。 2. 变换外部调用符号。变换外部调用符号。即将每个模块中所用的即将每个模块中所用的外部调用符号,都变换为相对地址。外部调用符号,都变换为相对地址。 这种先进行链接所形成的一个完整的
129、装入模块,这种先进行链接所形成的一个完整的装入模块,又称为又称为可执行文件可执行文件。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系二、装入时动态链接二、装入时动态链接(Load-Time Dynamic Linking) 用户源程序经编译后所得到的目标模块,是在装用户源程序经编译后所得到的目标模块,是在装入内存时,边装入边链接的。即在装入一个目标模块入内存时,边装入边链接的。即在装入一个目标模块时,若发生一个外部模块调用,将引起装入程序去找时,若发生一个外部模块调用,将引起装入程序去找出相应的外部目标模块,并将之装入内存。出相应的外部目标模块,并将之装入内存。 装入时
130、动态链接装入时动态链接有如下有如下优点优点: 1. 便于软件版本的修改和更新。便于软件版本的修改和更新。只需修改各个目只需修改各个目标模块,不必将装入模块拆开,非常方便。标模块,不必将装入模块拆开,非常方便。 2. 便于实现目标模块共享。便于实现目标模块共享。即可以将一个目标模即可以将一个目标模块链接到几个应用模块中,从而实现多个应用程序对块链接到几个应用模块中,从而实现多个应用程序对该模块的共享。该模块的共享。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系SEQAMSUBR 1MAIN系统目标库当前生成的目 标 库私有目标库MAIN .call SEQAM.call
131、SURB 1. 查找引用读入查找引用装入模块SEQAM RETURNSURB 1 RETURN教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系三、运行时动态链接三、运行时动态链接(Run-Time Dynamic Linking) 采用采用装入时动态链接装入时动态链接方式,虽然可将一个装入模方式,虽然可将一个装入模块装入到内存的任何地方,但装入模块的结构是静态块装入到内存的任何地方,但装入模块的结构是静态的,表现在:的,表现在:1. 进程(程序)在整个执行期间,装入进程(程序)在整个执行期间,装入模块是不改变的;模块是不改变的;2. 每次运行时的装入模块是相同的。每次运行时
132、的装入模块是相同的。并且事先无法知道本次要运行哪些模块,只能将所有并且事先无法知道本次要运行哪些模块,只能将所有可能要运行的模块在装入时全部链接在一起,而实际可能要运行的模块在装入时全部链接在一起,而实际上往往有些目标模块根本不会运行。上往往有些目标模块根本不会运行。 采用采用运行时动态链接运行时动态链接可将某些目标模块的链接推可将某些目标模块的链接推迟到执行时才进行,即在执行过程中,若发现一个被迟到执行时才进行,即在执行过程中,若发现一个被调用模块尚未装入内存时,由调用模块尚未装入内存时,由OS去找到该模块,将去找到该模块,将它装入内存,并链接到调用模块上。它装入内存,并链接到调用模块上。教
133、学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.2 连续分配方式连续分配方式 连续分配是指为连续分配是指为 一个用户程序分配一个连续的内存一个用户程序分配一个连续的内存空间。有两种方式:空间。有两种方式: 1. 单一用户(连续区)存储管理:单一用户(连续区)存储管理: 单单用用户户系系统统在在一一段段时时间间内内,只只有有一一个个进进程程在在内内存存,故故内内存存分分配配管管理理十十分分简简单单,内内存存利利用用率率低低。内内存存分分为为两两个个区区域,一个供操作系统使用,一个供用户使用域,一个供操作系统使用,一个供用户使用. 2. 分区式分配方式:分区式分配方式: 系统
134、把内存用户区划分为若干分区,分区大小可以相系统把内存用户区划分为若干分区,分区大小可以相等,也可以不等。一个进程占据一个分区。这是早期用于等,也可以不等。一个进程占据一个分区。这是早期用于多道程序的一种较简单的存储管理方式。它又可以分为:多道程序的一种较简单的存储管理方式。它又可以分为: 固定分区固定分区 动态(可变)分区动态(可变)分区教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.2.1 单一连续分配单一连续分配 这是最简单的存储器管理,因为操作系统只为一个用户服这是最简单的存储器管理,因为操作系统只为一个用户服务。它将内存分为两个区域,务。它将内存分为两个区域,即
135、即系统区系统区与与用户区用户区。如下图所示:。如下图所示: 驻留的驻留的OS既可放在存储器的低址部分,如图既可放在存储器的低址部分,如图(a);也可放也可放在存储器的高址部分,如图在存储器的高址部分,如图(b);甚至可以放在存储器的两端,甚至可以放在存储器的两端,如图如图(c)。 系统区系统区 驻留驻留OS 用户区用户区 用户程序用户程序(未用部分)(未用部分) 0512K(a)系统区系统区 系统中断向量等系统中断向量等用户区用户区 用户程序用户程序 (未用部分)(未用部分)系统区系统区 驻留驻留OS本身本身 0 512512K(b) 0 15K490K512K系统区系统区 驻留驻留OS(1)
136、用户区用户区 用户程序用户程序 (未用部分)(未用部分)系统区系统区 驻留驻留OS(2)(c)教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 存储分配只有在实施了存储保护后都有意义。存储分配只有在实施了存储保护后都有意义。 单用户系统中,存储保护只要求对操作系统区域单用户系统中,存储保护只要求对操作系统区域加以保护。通常,要实施存储保护必须配置相应的硬加以保护。通常,要实施存储保护必须配置相应的硬件机构才可行。但单用户系统中并不配置这种硬件机件机构才可行。但单用户系统中并不配置这种硬件机构,其原因是这些单用户的存储保护问题并不严重,构,其原因是这些单用户的存储保护问题并不
137、严重,即使操作系统遭到破坏,受影响的只是单个用户所做即使操作系统遭到破坏,受影响的只是单个用户所做的工作,而操作系统可以通过系统再启动重新把操作的工作,而操作系统可以通过系统再启动重新把操作系统装入主存。所以,最多只是用户使用上的不便,系统装入主存。所以,最多只是用户使用上的不便,却使硬件成本得到降低。却使硬件成本得到降低。 在大多数较新的系统结构中,存储保护是作为综在大多数较新的系统结构中,存储保护是作为综合的地址变换机构的一部分而获得的。但在一些较老合的地址变换机构的一部分而获得的。但在一些较老的系统中,一般采用简单的硬件以提供有限的保护。的系统中,一般采用简单的硬件以提供有限的保护。下面
138、介绍其中的三种。下面介绍其中的三种。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系1.自动地址修改:自动地址修改: 例:例:设存储器地址空间为设存储器地址空间为12K,操作系统占操作系统占4K。这这样系统可以提供给用户样系统可以提供给用户8K(213)的地址空间。的地址空间。 b1 b130 用户地址用户地址+01000000000000 (4K)得实际要访问的存储地址 b1 b130 用户地址用户地址 b1 b13 要访问的存储地址整除8K若OS占高址端的4K,则:若OS占低址端的4K,则:从而实现了对OS的保护。教学进度教学进度教学进度教学进度计算机科学与工程系计算
139、机科学与工程系 2. 0页,页,1页寻址页寻址: 是自动地址修改的一种变异。假定操作系统与用是自动地址修改的一种变异。假定操作系统与用户各占存储器的一半,它们的区分可以通过对每个用户各占存储器的一半,它们的区分可以通过对每个用户生成的地址左端拼接上一位户生成的地址左端拼接上一位1来实现。如下图动画来实现。如下图动画所示所示。 用户地址用户地址1教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 3. 界限寄存器: 上述两种技术都要求预先确定用户区与系统区的大小。这个条件可以通过使用一界限寄存器或隔离寄存器来消除。 这两个区域相对大小改变时,只要改变这个界限寄存器的值即可。如下
140、图:系统区域系统区域 用户区域用户区域 界限寄存器 显然,此方法增加了系统开销,因为用户每次存储访问都要作一次比较,而不是象前面那样直接快速的地址修改。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.2.2 固定分区分配固定分区分配 实现多用户系统的存储器管理,一个最早的想法实现多用户系统的存储器管理,一个最早的想法是:当系统初始化时,把存储空间划分成若干个任意是:当系统初始化时,把存储空间划分成若干个任意大小的区域;然后,把这些区域分配给每个用户作业。大小的区域;然后,把这些区域分配给每个用户作业。由于这些存储区域是在系统启动时划定的,在用户作由于这些存储区域是在系统
141、启动时划定的,在用户作业装入及运行过程中,其区域的大小和边界是不能改业装入及运行过程中,其区域的大小和边界是不能改变的。所以,称这种存储器的划分方式为变的。所以,称这种存储器的划分方式为固定式分区固定式分区或或静态存储区域定义静态存储区域定义。 固定式分区的划分方法有两种:固定式分区的划分方法有两种: (1)(1)分区大小相等分区大小相等 (2)(2)分区大小不等分区大小不等教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 为了实现这种固定分区为了实现这种固定分区的分配,系统需要建立一张的分配,系统需要建立一张分区说明表,分区说明表,如右图。这个如右图。这个分区说明表指出可
142、用于分配分区说明表指出可用于分配的分区数以及每个的大小、的分区数以及每个的大小、起始地址及状态。起始地址及状态。 分区号分区号 大小大小 始址始址 状态状态 1 12K 20K 已分配已分配 2 32K 32K 已分配已分配 3 64K 64K 已分配已分配 4 128K 128K 未分配未分配(分区说明表)(分区说明表) 在调度时作业时,由存储管理根据所需量在分区在调度时作业时,由存储管理根据所需量在分区说明表中找出一个足够大的未分配分区分配给它,然说明表中找出一个足够大的未分配分区分配给它,然后用重定位装配程序装入之。如果找不到合适的分区,后用重定位装配程序装入之。如果找不到合适的分区,则
143、通知作业调度模块,从作业后备队中另外选择一个则通知作业调度模块,从作业后备队中另外选择一个作业来装入。作业来装入。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系固固定定分分区区分分配配算算法法流流程程图图要求要求xK大小的分区大小的分区取分区说明表的取分区说明表的第一项第一项该分区空闲吗?该分区空闲吗?分区大小分区大小 xK表结束吗?表结束吗?返回分区号返回分区号状态位置状态位置1无法分配无法分配取下一项取下一项NYYYNN教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系分区号分区号 大小大小 始址始址 状态状态 1 12K 20K 已分配已分配 2
144、32K 32K 已分配已分配 3 64K 64K 已分配已分配 4 128K 128K 未分配未分配(分区说明表)(分区说明表)操作系统操作系统 作业作业A 作业作业B 作业作业C 0 20K 32K 64K128K256K 存储空间分配情况存储空间分配情况教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系分区分区4分区分区3分区分区2分区分区1操作系统操作系统多个等待队列多个等待队列单个等待队列单个等待队列分区分区4分区分区3分区分区2分区分区1操作系统操作系统教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 采用这种技术,虽然可以使多个作业共享主存,采
145、用这种技术,虽然可以使多个作业共享主存,但仍不能充分利用它。因为,一个作业的大小,只有但仍不能充分利用它。因为,一个作业的大小,只有当作业调度程序在分析进程创建请求时才能确定;而当作业调度程序在分析进程创建请求时才能确定;而分区的大小是在系统初启时划定的。由于作业的大小分区的大小是在系统初启时划定的。由于作业的大小不可能刚好等于某个分区的大小,所以,在每个分配不可能刚好等于某个分区的大小,所以,在每个分配的分区中,通常都有一部分未被作业占用而浪费掉。的分区中,通常都有一部分未被作业占用而浪费掉。 这种分配给用户而未被利用的部分,称作存储器这种分配给用户而未被利用的部分,称作存储器的的“内零头内
146、零头”(InternaI Fragmentation)。 实际上,存储区域的实际上,存储区域的内零头主要取决于采用哪一内零头主要取决于采用哪一种分配策略种分配策略,常用的有,常用的有首次适应算法首次适应算法和和最佳适应算法最佳适应算法。这些算法将在下一小节中介绍。这些算法将在下一小节中介绍。 固定分区方式存储管理的固定分区方式存储管理的优点优点是是分区方法特别简分区方法特别简单单,实现起来也很容易实现起来也很容易;缺点缺点是是存储空间的利用率太存储空间的利用率太低低。现在的操作系统几乎不用它了。现在的操作系统几乎不用它了。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4
147、.2.3 动态分区分配动态分区分配 为了减少存储区域的内零头,进一步提高主存为了减少存储区域的内零头,进一步提高主存的利用率,使存储空间的划分更加适应不同的作业的利用率,使存储空间的划分更加适应不同的作业组合,人们设计了组合,人们设计了动态(可变)式分区动态(可变)式分区方案。方案。 所谓所谓动态式分区分配动态式分区分配是指根据进程的实际需要,是指根据进程的实际需要,动态地为之分配连续的内存空间。即分区的边界可动态地为之分配连续的内存空间。即分区的边界可以移动,分区的大小是可变的。动态式分区又有以移动,分区的大小是可变的。动态式分区又有两两种不同选择种不同选择,一种是分区的数目固定大小是可变的
148、一种是分区的数目固定大小是可变的,而另一种则允许分区的数目和大小都是可变的而另一种则允许分区的数目和大小都是可变的。 为了说明它们之间的重要差异,我们考虑一个为了说明它们之间的重要差异,我们考虑一个具有具有256K字节存储器的系统。字节存储器的系统。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 第一种方案第一种方案:假定系统初始化时规定把存储空间划分为:假定系统初始化时规定把存储空间划分为 8个分区。在下图个分区。在下图(a)中中用问号用问号(?)来表示它们。在系统运行一段时来表示它们。在系统运行一段时间后,已有间后,已有192K存储空间分配给存储空间分配给7 个作业
149、,剩下个作业,剩下64K还未分配,还未分配,如下图如下图(b)所示。现在,又有两个作业所示。现在,又有两个作业 P和和Q准备调入,它们每准备调入,它们每个需要个需要32K存储空间。显然,我们有足够的存储空间。却没有存储空间。显然,我们有足够的存储空间。却没有足够数的存储区域足够数的存储区域(目前只有一个可用目前只有一个可用)。因此,只能允许一个。因此,只能允许一个作业作业(如:如:P)被调入,如下图被调入,如下图(c)所示。所示。 ? 0 256K(a)已分配的100K (3个作业占用)未分配的 64K已分配的 92K(4个作业占用) 0 256K (b)已分配的100K (3个作业占用)分配
150、给P: 32K (浪费掉32K)已分配的 92K(4个作业占用) 0 256K (c)教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 第二种方案第二种方案(分区数可变的分配方案分区数可变的分配方案):。为了便于比较,:。为了便于比较,把相应情况的分配示于图把相应情况的分配示于图(a)中。最初,没有建立任何分区,整中。最初,没有建立任何分区,整个可用的存储空间用一个问号来表示;之后,发生上述所说在个可用的存储空间用一个问号来表示;之后,发生上述所说在系统运行一段时间后,已有系统运行一段时间后,已有192K存储空间分配给存储空间分配给7 个作业,剩个作业,剩下下64K还未分配
151、的情况,如图还未分配的情况,如图(b);现在,我们在剩下的现在,我们在剩下的64K存存储空间中,可以创建两个分区,分别装入作业储空间中,可以创建两个分区,分别装入作业P和和Q,如图如图(c)。显然,此方案比第一个方案更灵活,内存利用率更高。显然,此方案比第一个方案更灵活,内存利用率更高。已分配的100K (3个作业占用)未分配的 64K已分配的 92K(4个作业占用) 0 256K (b)已分配的100K (3个作业占用)分配给P: 32K分配给Q: 32K已分配的 92K(4个作业占用) 0 256K (c)? 0 256K(a)教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与
152、工程系 实现可变式分区分配存储管理,必须解决:实现可变式分区分配存储管理,必须解决:一、分区分配中数据结构一、分区分配中数据结构 常用的数据结构有:常用的数据结构有: 1. 空闲分区表:空闲分区表: 始址长度标志15K23K未分配48K20K未分配80K30K未分配空空2. 空闲分区链:空闲分区链:N个字节可用(未分配)状态位 大小 指针 0 N+2 前向指针 0 N+2 后向 指针 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系二、分区分配算法二、分区分配算法 系统运行一段时间后,在整个存储空间内将出现系统运行一段时间后,在整个存储空间内将出现许多大小不等的区域,有的仍
153、被作业进程占用,有的许多大小不等的区域,有的仍被作业进程占用,有的则因作业已退出系统而成为可用于再分配的区域。现则因作业已退出系统而成为可用于再分配的区域。现在假设有一个新的作业需调入主存,如何为其选择一在假设有一个新的作业需调入主存,如何为其选择一个合适的区域?在这种情况。有四种不同的分配算法,个合适的区域?在这种情况。有四种不同的分配算法,它们是:它们是: (1)最佳适应算法最佳适应算法(Best Fit) (2)最坏适应算法最坏适应算法(First Fit) (3)首次适应算法首次适应算法(Worst Fit) (4)循环首次(下次)适应算法循环首次(下次)适应算法(Next Fit)
154、教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 1.最佳适应算法最佳适应算法(Best fit: BF) :就是为一作业选就是为一作业选择分区时总是寻找其大小最接近作业所要求的存储区择分区时总是寻找其大小最接近作业所要求的存储区域。即:把作业放入这样的分区后剩下的零头最小。域。即:把作业放入这样的分区后剩下的零头最小。 优点:优点:如果存储空间中具有正好是所要求大小的如果存储空间中具有正好是所要求大小的存储空白区,则必然被选中;如果不存在这样的空白存储空白区,则必然被选中;如果不存在这样的空白区,也只对比要求稍大的空白区进行划分,而绝不会区,也只对比要求稍大的空白区进行划
155、分,而绝不会去划分一个更大的空白区。因此,其后遇到去划分一个更大的空白区。因此,其后遇到大作业大作业到到来时,作业来时,作业要求的存储区域就比较容易得到满足要求的存储区域就比较容易得到满足。 为了加快查找速度,应将存储空间中所有的空白为了加快查找速度,应将存储空间中所有的空白区按其区按其大小递增大小递增的顺序链接起来,组成一空白区链的顺序链接起来,组成一空白区链(Free List)。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系指针指针10k60k90k20k例:例:有有四四块块空空白白区区(从从低低地地址址高高地地址址),来来了一个作业需分配了一个作业需分配19k内
156、存内存。指针指针10k20k60k90k1k解:解:教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 缺点:缺点:采用最佳适应算法,在每次分配时,总采用最佳适应算法,在每次分配时,总是是产生最小的空白区产生最小的空白区。因此,经过一段时期后,存。因此,经过一段时期后,存储空间中可能留许多这样的空白区,由于其太小而储空间中可能留许多这样的空白区,由于其太小而无法使用。为了改善这种情况,在该算法中设置一无法使用。为了改善这种情况,在该算法中设置一参数参数G,用它来确定最小分区的大小。当选择一个用它来确定最小分区的大小。当选择一个分区时,如果选中的空白区与要求的大小之差小于分区时
157、,如果选中的空白区与要求的大小之差小于G,则不再对它划分,而把整个这个空白区分配给则不再对它划分,而把整个这个空白区分配给申请的作业。申请的作业。 最佳适应算法的最佳适应算法的另一缺点另一缺点是:是:在回收一个分区在回收一个分区时,为了把它插入到空白区链中合适的位置上也颇时,为了把它插入到空白区链中合适的位置上也颇为费时为费时。所以,这种算法乍看起来是最佳的,其实。所以,这种算法乍看起来是最佳的,其实则不然。则不然。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 2.最坏适应算法最坏适应算法(Worst fit: WF):与最佳适应算与最佳适应算法相反,它在为作业选择存储
158、区域时,总是寻找最大法相反,它在为作业选择存储区域时,总是寻找最大的空白区。的空白区。在划分后剩下的空白区也是最大的,因而在划分后剩下的空白区也是最大的,因而对以后的分配很可能仍然是有用的对以后的分配很可能仍然是有用的,这是该算法的一,这是该算法的一个个优点优点。但是,由于最大的空白块总是首先被分配而。但是,由于最大的空白块总是首先被分配而进行划分,进行划分,当有大的作业时,其存储空间的申请往往当有大的作业时,其存储空间的申请往往得不到满足得不到满足,这是该算法的一个,这是该算法的一个缺点缺点。 指针指针90k60k20k10k71k 为了支持这个算法的实现,空白块应为了支持这个算法的实现,空
159、白块应以以大小递减大小递减的顺序链接起来。的顺序链接起来。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 3.首次适应算法首次适应算法(First Fit: FF) :由上面讨论可由上面讨论可见,见,BF和和WF各有其利弊。首次适应算法是对它们进各有其利弊。首次适应算法是对它们进行折衷考虑后设计出来的。这里,每个空白区按其行折衷考虑后设计出来的。这里,每个空白区按其在存储空间中在存储空间中地址递增地址递增的顺序链在一起,即每个后的顺序链在一起,即每个后继空白区的起始地址总是比前者的大。在为作业分继空白区的起始地址总是比前者的大。在为作业分配存储区域时,从这个空白区链的始端
160、开始查找,配存储区域时,从这个空白区链的始端开始查找,选择第一个足以满足请求的空白块,而不管它究竟选择第一个足以满足请求的空白块,而不管它究竟有多大。和上述算法一样,这个选择的空白区被分有多大。和上述算法一样,这个选择的空白区被分成两部分。一部分与请求的大小相等,分配给作业;成两部分。一部分与请求的大小相等,分配给作业;剩下的部分留在空白区链中。显然,这个算法倾向剩下的部分留在空白区链中。显然,这个算法倾向于优先利用存储空间中低址部分的空白区。于优先利用存储空间中低址部分的空白区。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系例:例:指针指针10k60k90k20k有有四
161、四块块空空白白区区(从从低低地地址址高高地地址址),来来了了一一个作业需分配个作业需分配19k内存内存。指针指针10k60k90k20k41k解:解:教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 主要优点:主要优点:算法简单,查找速度快算法简单,查找速度快;留在高址部;留在高址部分的大的空白区被划分的机会较少,因而在分的大的空白区被划分的机会较少,因而在大作业到大作业到来时也比较容易得到满足。来时也比较容易得到满足。 主要缺点:主要缺点:这种算法常常利用一个大的空白区适这种算法常常利用一个大的空白区适应小作业的请求,从而留下一些较小的无法用的空白应小作业的请求,从而留下
162、一些较小的无法用的空白区,区,存储空间利用率不高存储空间利用率不高;而且,由于所有的请求都;而且,由于所有的请求都是从空白区链的始端开始查找,因而这些小而无用的是从空白区链的始端开始查找,因而这些小而无用的空白区集中在这个链的前端,相应地,一些较大空白空白区集中在这个链的前端,相应地,一些较大空白区在链的尾端才能发现,这种情况将使区在链的尾端才能发现,这种情况将使找到合适空白找到合适空白区的速度降低区的速度降低。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 4.下次适应算法下次适应算法(Next fit: NF) :为了克服上述为了克服上述缺点,又设计了一种称为缺点,又
163、设计了一种称为“下次下次”适应的算法,它适应的算法,它实际上是首次适应算法的一种变形,故也被称为带实际上是首次适应算法的一种变形,故也被称为带旋转指针的首次适应算法旋转指针的首次适应算法(Next Fit with Roving Pointer)。 为此,我们把存储空间中空白区构成一个循环为此,我们把存储空间中空白区构成一个循环链。每次为存储请求查找合适的分区时,总是从上链。每次为存储请求查找合适的分区时,总是从上次查找结束的地方开始,只要找到一个足够大的空次查找结束的地方开始,只要找到一个足够大的空白区,就将它划分后分配出去。显然,采用这一策白区,就将它划分后分配出去。显然,采用这一策略后,
164、略后,存储空间的利用更加均衡存储空间的利用更加均衡,而不至于使小的,而不至于使小的空白区集中于存储器的一端。但是,在存储器的另空白区集中于存储器的一端。但是,在存储器的另一端也不可能保留大的空白块,因此,当一端也不可能保留大的空白块,因此,当需要获得需要获得相当大的空白区时相当大的空白区时,能满足的可能性减少了能满足的可能性减少了。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 关于分配策略的选择:关于分配策略的选择:从上面对四种不同分配策从上面对四种不同分配策略的讨论可知,每个算法各有其优缺点。那么,究竟略的讨论可知,每个算法各有其优缺点。那么,究竟如何来评价一个分配算
165、法并作出最好的选择呢?如何来评价一个分配算法并作出最好的选择呢? 对分配策略的一种有用的度量是,对分配策略的一种有用的度量是,系统对选定的系统对选定的一组作业来运行,比较第一次发生不能满足存储请求一组作业来运行,比较第一次发生不能满足存储请求所经历的时间所经历的时间。 然而,遗憾的是,系统开始运行时,对作业请求然而,遗憾的是,系统开始运行时,对作业请求和释放存储区域的顺序是不知道的,而且,总是可以和释放存储区域的顺序是不知道的,而且,总是可以设计出一个序列,对这些策略中任何一个是最好的。设计出一个序列,对这些策略中任何一个是最好的。再则,不管选择哪一种算法,再则,不管选择哪一种算法, 最终将几
166、乎最终将几乎 不可避免不可避免地形成许多小的无用的分区,并导致某个作业因不能地形成许多小的无用的分区,并导致某个作业因不能满足存储要求而被阻塞。满足存储要求而被阻塞。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 这里,我们这里,我们把存储空间中这些小的无用的把存储空间中这些小的无用的分区称为分区称为 “外零头外零头” (Externa1 Fragmentation)。 有人对各种不同的分配策略,广泛地研究有人对各种不同的分配策略,广泛地研究了实际系统的行为。了实际系统的行为。 研究表明研究表明:就常规应用而言,首次适应算:就常规应用而言,首次适应算法及最佳适应算法在延缓
167、阻塞方面有着相同的法及最佳适应算法在延缓阻塞方面有着相同的记录。由于首次适应算法实现起来最简单,因记录。由于首次适应算法实现起来最简单,因而多数系统选用它;但选用下次适应和最佳适而多数系统选用它;但选用下次适应和最佳适应算法的存储管理系统也不少。应算法的存储管理系统也不少。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系三、分区分配操作三、分区分配操作 涉及动态分区的主要操作有涉及动态分区的主要操作有分配内存分配内存和和回收内回收内存存。这些操作是在程序接口中通过系统调用发出的。这些操作是在程序接口中通过系统调用发出的。 1. 分配内存:分配内存:向操作系统提出一特定存储量
168、的向操作系统提出一特定存储量的请求。通常,它并不要求这个分配的存储区域限于请求。通常,它并不要求这个分配的存储区域限于特定的位置,但是,这个区域必须是连续的。也就特定的位置,但是,这个区域必须是连续的。也就是说,操作系统必须确定一个适当的存储区域,使是说,操作系统必须确定一个适当的存储区域,使其在请求进程的地址空间中成为可用的,如果无适其在请求进程的地址空间中成为可用的,如果无适当的区域可用,进程必须等待,直到该请求能满足当的区域可用,进程必须等待,直到该请求能满足为止。为止。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系从头开始查表从头开始查表检索完否?检索完否?m.s
169、izeu.size?m.size-u.sizesize?从该分区中划出从该分区中划出u.size大小的分区大小的分区将该将该分区分配给请求者分区分配给请求者修改有关的数据结构修改有关的数据结构返回返回返回返回继续检索下一个表项继续检索下一个表项将该将该分区从链中移出分区从链中移出YYYNNN教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 2. 回收内存:回收内存:回收内存是进程用于归还一个不再回收内存是进程用于归还一个不再需用的存储区域。通常,一需用的存储区域。通常,一 个已分配的分区必须整个个已分配的分区必须整个地归还。操作系统必须回收进程释放了的存储区域,地归还。操作
170、系统必须回收进程释放了的存储区域,并使它们在以后供有分配请求时使用。当一个作业终并使它们在以后供有分配请求时使用。当一个作业终止时,必须回收其未释放的任何空间。止时,必须回收其未释放的任何空间。 在回收一个分区时,一个回收的分区与空白区邻在回收一个分区时,一个回收的分区与空白区邻接的情况有四种,对这四种情况分别作如下处理:接的情况有四种,对这四种情况分别作如下处理: (1)回收区仅与上面的空白区邻接回收区仅与上面的空白区邻接,合并后仍为合并后仍为空白区空白区F1,其起始地址不变,只需改变其大小,并其起始地址不变,只需改变其大小,并按按F1中末端的后向指针值设置在回收区中末端的后向指针值设置在回
171、收区MCB的后向的后向指针域中,同时,修改它的状态位。如图指针域中,同时,修改它的状态位。如图(a)教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 F1回收区回收区作业作业X(a) 新的新的F1作业作业X回收区回收区 F2(b)新的新的F2 (2)回收区仅与下面的空白区邻接回收区仅与下面的空白区邻接(图图b),合并后仍合并后仍为空白区为空白区F2,但其起始地址和大小均需改变,因而要但其起始地址和大小均需改变,因而要相应地修改相应地修改F2的前、后空白区的前、后空白区MCB的指针值,并按的指针值,并按F2首部首部MCB中的指针值来设置回收区中首部的前向指中的指针值来设置回收
172、区中首部的前向指针。针。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 F1回收区回收区 F2(c) 新的新的F1 (3)回收区与上、下面的空回收区与上、下面的空白区邻接白区邻接(图图c),在这种情况下,在这种情况下,撤消空白区撤消空白区F2,保留空白区保留空白区F1,且其起始地址不变,但需改且其起始地址不变,但需改变大小以及原变大小以及原F1的后向指针,的后向指针,设置为原设置为原F2中的相应值。中的相应值。 (4)回收区与上、下面的空白区均不邻接回收区与上、下面的空白区均不邻接,在这在这种情况下,应为回收区单独建立一新表项,填写回种情况下,应为回收区单独建立一新表项,
173、填写回收区的首址和大小,并根据首地址插入到空闲链中收区的首址和大小,并根据首地址插入到空闲链中的适当位置。的适当位置。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系顺序地检索可用资源表直至找到顺序地检索可用资源表直至找到某表目的某表目的m.addaa或或m.size=0不是第一个表目且不是第一个表目且与前一可用区相邻?与前一可用区相邻?与后一可与后一可用区相邻?用区相邻?返回返回把所把所释放的可用区释放的可用区与前一分区合并与前一分区合并YY与后一可用区相与后一可用区相邻且不为空表目?邻且不为空表目?与后一可用区合并与后一可用区合并将该表目将该表目以上的所以上的所有表目下
174、移一格有表目下移一格所释的可用所释的可用区的区的size=0?将该表目将该表目以上的所有以上的所有表目上移一格并插入表目上移一格并插入新释放的可用区表目新释放的可用区表目把所把所释放的可用区释放的可用区与后一分区合并与后一分区合并YNNNNY教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.2.4 可重定位分区分配可重定位分区分配 一、紧凑一、紧凑 从前面知,可变式分区分配策略是在装入作业时根从前面知,可变式分区分配策略是在装入作业时根据其要求量为其划定相应的区域。这种分配策略,消除据其要求量为其划定相应的区域。这种分配策略,消除了固定式分区分配造成的了固定式分区分配造成
175、的“内零头内零头”,但不可避免地在,但不可避免地在存储空间中造成存储空间中造成“外零头外零头”,为了进一步提高存储器的,为了进一步提高存储器的利用率,必须设法减少由于利用率,必须设法减少由于外零头外零头造成的浪费。造成的浪费。 一个最简单而直观的解决零头问题的办法是,一个最简单而直观的解决零头问题的办法是,定时定时地或者在内存紧张时,把存储空间中的空白区合并为一地或者在内存紧张时,把存储空间中的空白区合并为一个大的连续区个大的连续区。 实现方法实现方法是是移动某些已分配区中的信息,使所有的移动某些已分配区中的信息,使所有的作业位于存储器的一端,而把全部空白区留在另一端作业位于存储器的一端,而把
176、全部空白区留在另一端。这种技术称为存储器的这种技术称为存储器的“紧凑紧凑”。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系操作系统操作系统作业作业1(18K)12K作业作业3(24K)16K作业作业4(46K)10K作业作业2(40K)12K作业作业5(50K)8K 0 20K256K紧凑前紧凑前操作系统操作系统作业作业1(18K)作业作业3(24K)作业作业4(46K)作业作业2(40K)作业作业5(50K)空白区空白区58K 0 20K256K紧凑后紧凑后 把一个作业从一个把一个作业从一个存储区域移动到另一个存储区域移动到另一个存储区域所发生的问题,存储区域所发生的问
177、题,正如把一个作业装入到正如把一个作业装入到与它地址空间不与它地址空间不 一致一致的存储空间所引起的问的存储空间所引起的问题一样,需要对作业中题一样,需要对作业中的某些地址部分和地址的某些地址部分和地址常数等进行调整。常数等进行调整。 一个较实用且可行的办法是采用一个较实用且可行的办法是采用动态重定位技术动态重定位技术。 一个作业在主存中移动后,只要改变重定位寄存一个作业在主存中移动后,只要改变重定位寄存器中的内容即可。器中的内容即可。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系二、动态重定位二、动态重定位 (有关动态重定位知识在前面已作了介绍)(有关动态重定位知识在前
178、面已作了介绍) 动态重定位分区分配策略是实现动态分配及动动态重定位分区分配策略是实现动态分配及动态存储管理的基础。它允许作业在运行过程中申请态存储管理的基础。它允许作业在运行过程中申请附加的存储区域,也可以将不再需要的部分归还给附加的存储区域,也可以将不再需要的部分归还给系统。系统。 地址空间 0 100 Load 1,500 500 Y 1K 存储空间 0 1K1124 Load 1,5001524 Y 2K 512K 有效地址 500重定位寄存器1K处理机一侧存储器一侧教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系三、动态重定位分区分配算法三、动态重定位分区分配算法请
179、求分配一个大小为请求分配一个大小为xk的分区的分区有大于有大于xk的的空闲区吗?空闲区吗?空闲区的总和空闲区的总和 xk吗?吗?紧缩存储并相应地修改诸表紧缩存储并相应地修改诸表(得到一个完整的空闲区得到一个完整的空闲区 xk)分配分区并分配分区并修改诸表修改诸表此刻已经此刻已经无法分配无法分配一个分区一个分区返回一个返回一个分区号数分区号数是是是是否否否否教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系说明:说明:1. 动动态态重重定定位位分分区区分分配配法法是是利利用用分分区区的的“拼拼接接”(对对空空白白区区而而言言)或或“紧紧凑凑”(作作业业程程序序而而言言)技术解决
180、技术解决“零头零头”。2. 问题问题 拼凑时机的选择拼凑时机的选择 (i)出现相邻空白区即拼接;出现相邻空白区即拼接;(或某分区被释放后或某分区被释放后即紧缩即紧缩)紧缩工作大,开销大,但管理简单紧缩工作大,开销大,但管理简单 (ii)存贮不足存贮不足(空白分区不够大空白分区不够大)时进行拼接时进行拼接。紧缩次。紧缩次数少,但管理数少,但管理(算法算法)较复杂。较复杂。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.2.5 对换对换(Swapping) 在早期,为了克服存储空间不足而采取的另一种措在早期,为了克服存储空间不足而采取的另一种措施,施,称为对换技术称为对换技
181、术(Swapping,也称为交换也称为交换)。广义地说,广义地说,所谓所谓对换对换就是把暂时不用的某个就是把暂时不用的某个( (或某些或某些) ) 程序及其数据程序及其数据的部分或全部从主存移到辅存中去,以便腾出必要的存储的部分或全部从主存移到辅存中去,以便腾出必要的存储空间;接着把指定的程序或数据从辅存读到相应的主存中,空间;接着把指定的程序或数据从辅存读到相应的主存中,并将控制转给它,让其在系统上运行。并将控制转给它,让其在系统上运行。 这种对换技术,最早用在分时系统这种对换技术,最早用在分时系统UNIX中。在任何中。在任何时刻,在该系统的主存中只保存一个完整的用户作业,当时刻,在该系统的
182、主存中只保存一个完整的用户作业,当其运行一段时间后,或由于分配给它的时间片已用完,或其运行一段时间后,或由于分配给它的时间片已用完,或由于需要其它资源而等待,系统就把它交换到辅存,同时由于需要其它资源而等待,系统就把它交换到辅存,同时把另一个作业调入主存让其运行。这样,可以在存储容量把另一个作业调入主存让其运行。这样,可以在存储容量不大的小型机上实现分时系统。不大的小型机上实现分时系统。Microsoft公司的公司的 Windows OS也采用这种对换技术。也采用这种对换技术。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 如果对换是以整个进程为单位的,称为如果对换是以整
183、个进程为单位的,称为“整体对换整体对换”或或“进程对换进程对换”,主要用于分时系统中,其目的是用,主要用于分时系统中,其目的是用以解决内存紧张问题,并可进一步提高内存利用率。以解决内存紧张问题,并可进一步提高内存利用率。 如果对换是以如果对换是以“页页”或或“段段”为单位的,称为为单位的,称为“页页面对换面对换”或或“分段对换分段对换”,统称为,统称为“部分对换部分对换”。这种。这种对换方法是实现请求式分页及请求式分段存储管理的基对换方法是实现请求式分页及请求式分段存储管理的基础。其目的是为了支持虚拟存储器管理系统。础。其目的是为了支持虚拟存储器管理系统。 本节简单介绍进程对换,有关分页对换和
184、分段对换本节简单介绍进程对换,有关分页对换和分段对换放在后面章节中介绍。放在后面章节中介绍。 为了实现进程对换,系统需提供以下三个方面的功为了实现进程对换,系统需提供以下三个方面的功能:能: 1 对换空间的管理对换空间的管理 2 进程的换出进程的换出 3 进程的换入进程的换入教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系1. 对换空间的管理对换空间的管理 在具有对换功能的在具有对换功能的OS,通常把外存分为通常把外存分为文件文件区区和和对换区对换区。前者用于存放文件,由于通常的文件前者用于存放文件,由于通常的文件都是较长久地驻留在外存上,故对文件区管理的主都是较长久地驻留
185、在外存上,故对文件区管理的主要目标,是提高文件存储空间的利用率,为此,系要目标,是提高文件存储空间的利用率,为此,系统采取统采取离散分配方式离散分配方式。后者则用于存放从内存换出。后者则用于存放从内存换出的进程,由于这些进程在对换区中驻留的时间是短的进程,由于这些进程在对换区中驻留的时间是短暂的,而对换操作又较频繁,故对对换空间管理的暂的,而对换操作又较频繁,故对对换空间管理的主要目标,则是提高进程的换入、换出速度,为此,主要目标,则是提高进程的换入、换出速度,为此,所应采取的管理策略是用所应采取的管理策略是用连续分配方式连续分配方式,较少考虑,较少考虑外存中的碎片问题外存中的碎片问题教学进度
186、教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 为了能对为了能对交换区交换区中的空闲盘块进行管理,在系统中的空闲盘块进行管理,在系统中应配置相应的数据结构,以记录外存的使用情况。中应配置相应的数据结构,以记录外存的使用情况。其形式与内存在动态分区分配方式中所用数据结构相其形式与内存在动态分区分配方式中所用数据结构相似,即同样可以用空闲分区表或空闲分区链。在空闲似,即同样可以用空闲分区表或空闲分区链。在空闲分区表中的每个表目应包含两项,即对换分区首址和分区表中的每个表目应包含两项,即对换分区首址和对换区长度,它们的基本单位都是对换区长度,它们的基本单位都是盘块盘块。 由于对由于对对
187、换区对换区的分配,是采用连续分配方式,因的分配,是采用连续分配方式,因而对对换区空间的分配与回收,与动态分区方式时内而对对换区空间的分配与回收,与动态分区方式时内存的分配与回收方法雷同。其存的分配与回收方法雷同。其分配算法可以是首次适分配算法可以是首次适应算法、循环首次适应算法和最佳适应算法。对换区应算法、循环首次适应算法和最佳适应算法。对换区的回收操作也可分为四种情况的回收操作也可分为四种情况(见教材见教材P.148.)。对这几对这几种情况的处理方法也与动态分区分配时的方法相同。种情况的处理方法也与动态分区分配时的方法相同。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系
188、2. 进程的换出与换入进程的换出与换入 当内存执行某些操作而发现内存不足时,便调用当内存执行某些操作而发现内存不足时,便调用对换程序或唤醒对换进程。它们的主要任务是实现对换程序或唤醒对换进程。它们的主要任务是实现进程的进程的换入换入与与换出换出。 1)进程的换出进程的换出 在进程换出时,是将内存中的某些进程调至对在进程换出时,是将内存中的某些进程调至对换区,以腾出内存空间。换出过程分以下两步:换区,以腾出内存空间。换出过程分以下两步: a. 选出被换出的进程选出被换出的进程 首先选择处于阻塞或睡眠状态的进程,当有多首先选择处于阻塞或睡眠状态的进程,当有多个这样的进程时,应选择其优先级最低的进程
189、换出。个这样的进程时,应选择其优先级最低的进程换出。此外,还应考虑进程在内存的驻留时间。当内存中此外,还应考虑进程在内存的驻留时间。当内存中已无阻塞进程,而现在的空闲内存空间仍不足以满已无阻塞进程,而现在的空闲内存空间仍不足以满足需要时,便选择优先级最低的就绪进程换出。足需要时,便选择优先级最低的就绪进程换出。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 b. 换出过程换出过程 换出程序(进程)要换出某个进程时,只能换换出程序(进程)要换出某个进程时,只能换出那些非共享的程序和数据段。对于共享的程序段出那些非共享的程序和数据段。对于共享的程序段和数据段,则须先对每个段的
190、引用计数执行减和数据段,则须先对每个段的引用计数执行减1操操作。若其结果值不为作。若其结果值不为0时,表示仍有进程需要用它,时,表示仍有进程需要用它,因而不能被换出;否则则表示该程序段或数据段,因而不能被换出;否则则表示该程序段或数据段,已不被其它进程需要,于是可以将它们换出。此时,已不被其它进程需要,于是可以将它们换出。此时,应申请对换空间,若申请成功,便可将程序和数据应申请对换空间,若申请成功,便可将程序和数据写入对换区,如果在传输中未出现错误,便可调用写入对换区,如果在传输中未出现错误,便可调用释放内存过程,释放该进程所占用的内存,最后对释放内存过程,释放该进程所占用的内存,最后对进程控
191、制块和内存分配表等数据结构,进行修改。进程控制块和内存分配表等数据结构,进行修改。若此时内存中还有可换出的进程,则继续执行上述若此时内存中还有可换出的进程,则继续执行上述换出过程,将它们换出,直到内存中再无阻塞进程换出过程,将它们换出,直到内存中再无阻塞进程为止。为止。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 2)进程的换入进程的换入 当对换程序或对换进程去执行换入操作时,便去检查当对换程序或对换进程去执行换入操作时,便去检查PCB集合中所有进程的状态。从中找出集合中所有进程的状态。从中找出“就绪且换出就绪且换出”状状态的进程。当有多个这样的进程时,首先把其中换出时
192、间态的进程。当有多个这样的进程时,首先把其中换出时间(必须大于规定时间,如必须大于规定时间,如2s)最久的进程作为换入进程,再根最久的进程作为换入进程,再根据进程的大小为其申请内存,此时可能:据进程的大小为其申请内存,此时可能: 申请成功,直接将进程换入申请成功,直接将进程换入; 申请失败,须先将内存中的某些进程换出,腾出足申请失败,须先将内存中的某些进程换出,腾出足够的内存后,再将该进程换入。够的内存后,再将该进程换入。 在对换进程成功地换入一个进程后,若还有可换入的在对换进程成功地换入一个进程后,若还有可换入的进程,则再继续执行上述的换入过程,将其余处于进程,则再继续执行上述的换入过程,将
193、其余处于“就绪就绪且换出且换出”状态的进程陆续换入,直至所有状态的进程陆续换入,直至所有“就绪且换出就绪且换出”状态的进程全部换入,或已无法获得足够大的内存来换入状态的进程全部换入,或已无法获得足够大的内存来换入进程,此时对换程序或进程才停止换入工作。进程,此时对换程序或进程才停止换入工作。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.3 基本分页存储管理方式基本分页存储管理方式 前面介绍的分区存储管理,一般都要求把一个作业的前面介绍的分区存储管理,一般都要求把一个作业的地址空间装入到连续的存储区域内。因此,在动态分区的地址空间装入到连续的存储区域内。因此,在动态分区
194、的存储空间中,常常由于存在着一些不足以装入任何作业的存储空间中,常常由于存在着一些不足以装入任何作业的小的分区而浪费掉部分存储资源,这就是所谓小的分区而浪费掉部分存储资源,这就是所谓存储器的零存储器的零头问题头问题。 尽管采用尽管采用“紧凑紧凑”技术可以解决这个问题,但要为移技术可以解决这个问题,但要为移动大量信息花去不少处理机时间,代价较高。如果我们能动大量信息花去不少处理机时间,代价较高。如果我们能取消对其存储区域的连续性要求,必然会进一步提高主存取消对其存储区域的连续性要求,必然会进一步提高主存空间的利用率,又无需为移动信息付出代价。存储器的离空间的利用率,又无需为移动信息付出代价。存储
195、器的离散分配就是在这个指导思想下设计出来的。根据分配时所散分配就是在这个指导思想下设计出来的。根据分配时所用的基本单位的不同,它分为:用的基本单位的不同,它分为: 1. 分页式存储管理分页式存储管理 2. 分段式存储管理分段式存储管理 3. 段页式存储管理段页式存储管理教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.3.1 页面与页表页面与页表 一、页面和物理块(存储块)一、页面和物理块(存储块) 在分页存储管理系统中在分页存储管理系统中,把每个进程的地址空间分成一,把每个进程的地址空间分成一些大小相等的片,并称之为些大小相等的片,并称之为页面页面或或页页(Page)。
196、同样地,同样地,把主存把主存的存储空间也分成与页相同大小的片,这些片称为的存储空间也分成与页相同大小的片,这些片称为存储块或存储块或称为页框称为页框(Page Frame)。在为进程分配存储空间时,总是以页在为进程分配存储空间时,总是以页框为单位。框为单位。 例如:例如:一个作业的地址空间有一个作业的地址空间有m页。那么,只要分配给页。那么,只要分配给它它m个页框,每一页分别装入一个页框内即可。这里,并不个页框,每一页分别装入一个页框内即可。这里,并不要求这些页框是连续的。要求这些页框是连续的。 说明:说明: 从从0开始编制页号,页内地址是相对于开始编制页号,页内地址是相对于0编址;编址; 在
197、进程调度时,必须把它的所有页一次装入到主存的在进程调度时,必须把它的所有页一次装入到主存的页框内;如果当时页框数不足,则该进程必须等待,系统再页框内;如果当时页框数不足,则该进程必须等待,系统再调度另外的进程。调度另外的进程。(纯分页方式)(纯分页方式)教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系二、页面大小二、页面大小 在分页系统中,页面大小是由机器的地址结构在分页系统中,页面大小是由机器的地址结构所决定的。对于某一机器只能采用一种大小的页面。所决定的。对于某一机器只能采用一种大小的页面。 在确定地址结构时,对页面的大小应选择得适在确定地址结构时,对页面的大小应选择得
198、适当。因为:当。因为: 若选择的页面较小,一方面可使内存碎片小,若选择的页面较小,一方面可使内存碎片小,并减少了内存碎片的总空间,有利于提高内存利用并减少了内存碎片的总空间,有利于提高内存利用率;但另一方面,也会使每个进程要求较多的页面,率;但另一方面,也会使每个进程要求较多的页面,从而导致页表过长,占用大量内存;还会降低页面从而导致页表过长,占用大量内存;还会降低页面换进换出的效率。换进换出的效率。 若选择的页面较大,虽然可减少页表长度,若选择的页面较大,虽然可减少页表长度,提高换进换出效率,但又会使页内碎片增大。提高换进换出效率,但又会使页内碎片增大。 页面的大小通常在页面的大小通常在51
199、2B4KB选择,但总是选择,但总是2的幂。的幂。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系三、三、 地址结构地址结构 这样,允许把这样,允许把虚地址虚地址(逻辑地址逻辑地址)划分为划分为页号页号和和位移量位移量(页页内相对地址内相对地址)两部分。如图所示。两部分。如图所示。页号页号P 位移量位移量W 页号、位移量的划分是由系统自动完成的,对用户是透明页号、位移量的划分是由系统自动完成的,对用户是透明的。的。0101123编号编号016777216相对地址相对地址02047页号页号P位移量位移量WP=intA/LW=A mod L 给定一个逻辑地址给定一个逻辑地址A,页
200、面大小页面大小L,其页号其页号P和位移量和位移量W的的计算公式如下:计算公式如下:教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系(357101)8(011,101,111,001,000,001)2 (01,110,1111,001,000,001)2例:例:设虚地址为设虚地址为(357101)8 每一块为每一块为1K字节字节块(页)的大小:块(页)的大小:1K=210,即后,即后10位二进制为除于位二进制为除于210后得的余数后得的余数1 6 7 1 1 0 1位移量为位移量为(1101)8, 页号为页号为(167)8块号由页表指定,位移量在变换过程中不变块号由页表指定
201、,位移量在变换过程中不变教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系四、页表四、页表 在分页系统中,存储分配问题变得非常简单,作在分页系统中,存储分配问题变得非常简单,作业的一页可以分配到存储空间中任何一个可用的页框。业的一页可以分配到存储空间中任何一个可用的页框。 现在的问题是:现在的问题是:(1)系统怎么知道作业的哪一页分系统怎么知道作业的哪一页分配在存储空间的哪一页框内配在存储空间的哪一页框内?作业的地址空间本来是作业的地址空间本来是连续的,现在把它分页后并装入到不连续的页框内,连续的,现在把它分页后并装入到不连续的页框内,如何保证它仍能正确地运行。也就是说如何保
202、证它仍能正确地运行。也就是说,(2)如何实现如何实现以及何时实现把作业的逻辑地址变换为主存的物理地以及何时实现把作业的逻辑地址变换为主存的物理地址址。 一个可行的办法是采用一个可行的办法是采用动态重定位技术动态重定位技术。在执行。在执行每条指令时进行这种地址变换。每条指令时进行这种地址变换。 现在是以页为单位分配的,故实现地址变换的机现在是以页为单位分配的,故实现地址变换的机构要求为每页设置一个构要求为每页设置一个重定位寄存器重定位寄存器。这些寄存器。这些寄存器组组成一个组成一个组,通常称为通常称为页表页表。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 在实际系统中,为
203、了减少硬件成本,将页表存在在实际系统中,为了减少硬件成本,将页表存在被保护的系统区内。在页表中每页有相应的表目,分被保护的系统区内。在页表中每页有相应的表目,分别指出该页在主存中的页框号。这张页表是在进程装别指出该页在主存中的页框号。这张页表是在进程装入主存时,由系统根据内存分配情况建立的。入主存时,由系统根据内存分配情况建立的。 在多道程序系统中,为便于管理和保护,系统为在多道程序系统中,为便于管理和保护,系统为每个装入主存的进程建立一张相应的页表。它的起始每个装入主存的进程建立一张相应的页表。它的起始地址及大小填入该进程的地址及大小填入该进程的PCB中。一旦这个进程被调中。一旦这个进程被调
204、度执行,把它的页表始址及大小装入特定的页表寄存度执行,把它的页表始址及大小装入特定的页表寄存器中。此外,根据每页内容的不同,可以设置不同的器中。此外,根据每页内容的不同,可以设置不同的存取限制。所以,在这页表的表目中除了包含指向所存取限制。所以,在这页表的表目中除了包含指向所在页框的指针外,还包括一个存取控制手段,这个表在页框的指针外,还包括一个存取控制手段,这个表目也称为目也称为页描述子页描述子。页框号页框号Q 存取权限存取权限页描述子教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系图 4-11 页表的作用 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工
205、程系.01234560123456作业的作业的地址空间地址空间页框页框(物理块)(物理块)页号页号页表页表主存中页框主存中页框(物理块)(物理块).教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.3.2 地址变换机构地址变换机构 一、基本的地址变换机构一、基本的地址变换机构页框号Q 位移量W物理地址页号P 位移量W逻辑地址页表大小 页表始址 页表寄存器页号P页表大小?产生中断Y页框号Q 存取权限页描述子页描述子页表取出取出获得找到拼接拼接Y允许访问否?拒绝访问N取出取出N教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系例1:某采用分页存储管理的系统中
206、,物理地址占20位,逻辑地址中页号占6位,页面大小为1KB,问: 该系统的内存空间大小为多少?每个存储块的大小为多少?逻辑地址共几位?每个作业的最大长度为多少? 若第0、1、2页分别放在第3、7、9存储块中,则逻辑地址0420H对应的物理地址是多少?教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 在分页存储管理系统中,根据题意: 物理地址占20位,所以该系统的内存空间大小为:220=1MB 存储块的大小与页面大小相同,而页面大小为1KB,因此存储块的大小为:1KB 由于页面大小为1KB,占10位,而页号占6位, 因此逻辑地址共16位, 从而该系统中的每个作业大小为:216
207、=64KB教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 法1(全部转换成10进制): 逻辑地址:0420H=1056 因为1K=10562K-1,所以在1号号页面内,其页内位移量为:1056-1K=32; 而1号号页面对应7号号物理块,所以物理地址为:71K+32=7200。 法2(将页面转换成16进制表示): 页面大小:1K=0400H 。 因为0400H=0420H07FFH,所以在1号号页面内,其页内位移量为:0420H-0400H=20H;而1号号页面对 应 7号号 物 理 块 , 所 以 物 理 地 址 为 : 70400H +20H=1C20H。教学进度教学
208、进度教学进度教学进度计算机科学与工程系计算机科学与工程系例2:在分页存储系统中地址结构的长度为20位,页面大小为2K,作业地址空间为8K,该作业各页依次存放在1,3,6,7号物理块中,相对地址4000处有一条指令 Store l,2500,请给出该作业的页表,并分别指出该指令所在页号和对应的物理单元及数据存放所在的页号和物理单元。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 由题意,页面大小为2K,该作业的地址空间为8K,因此该作业有4页,其页表为: 01132637 因为2K=40004K-1,所以指令在1号号页面内,其页内位移量为:4000-2K=1952; 又2
209、K=25004K-1,所以数据也在1号号页面内,其页内位移量为:2500-2K=452。 由页表知1号号页面对应存储空间的3号号物理块,故数据和指令均存放在3号号物理块内,指令存放的物理单元为:32K+1952=8096;数据存放的物理单元为:32K+452=6596。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系二、具有快表的地址变换机构二、具有快表的地址变换机构 从上述变换过程可知,如果把页表存储在内存中,从上述变换过程可知,如果把页表存储在内存中,无疑会影响系统的性能。这是因为在每次存储访问时,无疑会影响系统的性能。这是因为在每次存储访问时,必须首先访问页表,读出
210、页描述子。尽管它的位置是必须首先访问页表,读出页描述子。尽管它的位置是可以确定的,但仍使访问存储器的次数加倍,因而使可以确定的,但仍使访问存储器的次数加倍,因而使系统总的处理速度明显下降。系统总的处理速度明显下降。 一般说来,以几乎降低计算速度一半为代价获取一般说来,以几乎降低计算速度一半为代价获取分页系统的好处是用户不能接受的。分页系统的好处是用户不能接受的。 解决的策略是在地址变换机构中增设一组数量不解决的策略是在地址变换机构中增设一组数量不多的寄存器,把它们作为多的寄存器,把它们作为超高速缓冲存储器超高速缓冲存储器(Cache)来来使用,存放当前访问的那些页描述子。这个超高速缓使用,存放
211、当前访问的那些页描述子。这个超高速缓存在存在IBM系统中取名为系统中取名为TLB (Translation Lookaside Buffer)。称为称为联想存储器。联想存储器。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系页号P 位移量W逻辑地址 页描述子TLB表6349713.页框号Q 位移量W物理地址页描述子页表012345678.写入在TLB中找找到后TLB中找不到在页表中找教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系例例:设设访访问问主主存存时时间间为为200ns,访访问问联联想想存存贮贮器器为为40ns,命中率为命中率为90,则平均存取时
212、间为多少?,则平均存取时间为多少?查页表两次访存:平均为200200400ns查快表,平均为: (200+40)90(200+200+40)10260ns解:方法方法1:方法方法2:教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.3.3 两级和多级页表两级和多级页表 现现代代的的许许多多计计算算机机系系统统,进进程程的的页页表表表表目目可可达达222个个。如如Windows NT 等等使使用用86的的CPU的的32位位地地址址,使使用用4KB的的页页面面(212),这这实实际际上上意意味味着着进进程程最最多多可可以以使使用用多多达达220(1M/100多多万万)个个页页
213、面面。如如果果每每个个页页表表表表目目占占4byte,那那么么每每个个进进程程的的页页表表所所占占的的空空间间是是222byte(4MB),并并且且要要求求在在主主存存占占用用大大量量连连续续的的空空间间,显显然然这这是是不不现现实实的的。为为此对页表本身也采取分页措施。此对页表本身也采取分页措施。即:即:将将页页表表所所需需的的内内存存空空间间,采采用用离离散散分分配配方方式式来来解解决难以找到一块连续大内存空间的问题;决难以找到一块连续大内存空间的问题;只只将将当当前前需需要要的的部部分分页页表表项项调调入入内内存存,其其余余的的仍仍留在磁盘上,需要时才将它们调入内存。留在磁盘上,需要时才
214、将它们调入内存。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系一、两级页表一、两级页表(Two-Level Page Table) 把页表本身按固定大小分成为一个个页面把页表本身按固定大小分成为一个个页面(页面页面大小为大小为 212=4KB)。每个小页表形成的页面中可以有每个小页表形成的页面中可以有210=1K个页表表目个页表表目(每个表目每个表目4byte),共有共有210=1K个小个小页表。为了对页表。为了对1K个小页表进行管理和索引查找,设个小页表进行管理和索引查找,设置一个页表目录,又称之为置一个页表目录,又称之为外层外层(顶级顶级)页表页表,该页表,该页表包含
215、有包含有1K个表目项,分别指出每个小页表所在物理个表目项,分别指出每个小页表所在物理号和其他有关状态信息。这样,每个进程有一个页目号和其他有关状态信息。这样,每个进程有一个页目录,它的每个表目映射一个页表。页目录本身大小刚录,它的每个表目映射一个页表。页目录本身大小刚好是一个页面大小,页目录是一级表。而每个小页表好是一个页面大小,页目录是一级表。而每个小页表本身就是二级表。以后一律使用页目录和页表的名称。本身就是二级表。以后一律使用页目录和页表的名称。逻逻辑地址结构如下:辑地址结构如下:0111231外层页号外层页号P1页内页内地址地址W外层页内外层页内地址地址P22122教学进度教学进度教学
216、进度教学进度计算机科学与工程系计算机科学与工程系两两级级页页表表结结构构0123456711411514681011107812451742012 n01第0页页表10231401第1页页表102311411501第n页页表10231468外层页表外层页表内存空间内存空间教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系0111231外层页号外层页号P1页内页内地址地址W外层页内外层页内地址地址P22122具有两级页表的地址变换机构具有两级页表的地址变换机构外部页表寄存器外部页表寄存器外层页表外层页表页表页表b W物理地址物理地址逻辑地址逻辑地址+ 通过二级页表的地址映射访问
217、主存存取数据需要通过二级页表的地址映射访问主存存取数据需要三次访问主存(一次外层页表,一次页表,最后是数三次访问主存(一次外层页表,一次页表,最后是数据所在物理地址),所需时间是原来的三倍。据所在物理地址),所需时间是原来的三倍。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 说明:利用离散分配方法实现的两级说明:利用离散分配方法实现的两级页表只是解页表只是解决了大页表无需大片连续存储空间问题决了大页表无需大片连续存储空间问题,但并未减少,但并未减少用较少内存去存放大页表问题,有关此类问题的成功用较少内存去存放大页表问题,有关此类问题的成功解决方案放在下章虚拟存储器管理中
218、。解决方案放在下章虚拟存储器管理中。二、多级页表结构二、多级页表结构 对于64位的机器,采用两级页表结构是否合适?分析:分析:使用使用4KB的页面的页面(212),剩,剩52位。若按物理块位。若按物理块的大小的大小(210)来划分页表来划分页表,还剩还剩42位用于外层页表,位用于外层页表,因而外层页表有因而外层页表有4KG个页表个页表项;若按物理块的大小项;若按物理块的大小(220)来划分页表来划分页表,还剩还剩32位用于外层页表,外层页表位用于外层页表,外层页表仍有仍有4G个页表项,占个页表项,占16GB空间,空间,显然这是不现实的显然这是不现实的。事实上,事实上,64位机器采用三级都不能适
219、应,因此位机器采用三级都不能适应,因此,64位位的机器,采用的是多级(的机器,采用的是多级(4级以上)页表结构。级以上)页表结构。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系补充:补充: 反置页表反置页表(Iverted Page) 反置页表产生的原因:反置页表产生的原因:为了减少上述大页表占用的内存为了减少上述大页表占用的内存空间而引入的。空间而引入的。 设计思路:设计思路:为每个物理块设置一个页表项并将它们按物为每个物理块设置一个页表项并将它们按物理块的号数排序,其中的页表内容则是页号理块的号数排序,其中的页表内容则是页号P及其隶属进程的及其隶属进程的标识符标识符I
220、D。 122719012 n741物理块号物理块号 进程进程ID 页号页号P反置页表反置页表 利用反置页表进行地址变换时,是利用反置页表进行地址变换时,是用用ID和和 P去检索反置页表。若检索完整去检索反置页表。若检索完整个页表都未找到与之匹配的页表项,表个页表都未找到与之匹配的页表项,表明此页尚未装入内存,对于无请求调页明此页尚未装入内存,对于无请求调页功能的存储器系统产生地址出错的信息;功能的存储器系统产生地址出错的信息;若检索到与之匹配的表项,则该表项的若检索到与之匹配的表项,则该表项的序号序号i便是该页所在的物理块号。将它与便是该页所在的物理块号。将它与页内地址拼接一起构成物理地址。页
221、内地址拼接一起构成物理地址。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系122719741反置页表反置页表CPUpid p di d物理存储器逻辑地址逻辑地址物理物理教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.4 基本分段存储管理方式基本分段存储管理方式 前面介绍的各种存储管理方案,为用户提供的前面介绍的各种存储管理方案,为用户提供的是一个线性地址空间。这对于模块化程序和变化的是一个线性地址空间。这对于模块化程序和变化的数据结构的处理,以及不同作业之间对某些公用子数据结构的处理,以及不同作业之间对某些公用子程序或数据块的共享等问题的解决,都存
222、在较大的程序或数据块的共享等问题的解决,都存在较大的困难;此外,程序人员一般都希望把程序按其内容困难;此外,程序人员一般都希望把程序按其内容或函数关系分成段,每段有其自己的名字,且可以或函数关系分成段,每段有其自己的名字,且可以根据名字来访问相应的程序或数据段。本节介绍的根据名字来访问相应的程序或数据段。本节介绍的分段存储管理技术,能较好地解决上述问题,也能分段存储管理技术,能较好地解决上述问题,也能满足程序员的要求。满足程序员的要求。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.4.1 分段存储管理方式的引入分段存储管理方式的引入 主要是为了满足用户的下述一系列要
223、求:主要是为了满足用户的下述一系列要求: 1.方便编程。方便编程。一个段可定义为一组逻辑信息,如子程序,一个段可定义为一组逻辑信息,如子程序,数组或工作区,数组或工作区,(分段是程序中自然划分的一组逻辑意义完整分段是程序中自然划分的一组逻辑意义完整的信息集合,它是用户在编程时决定的的信息集合,它是用户在编程时决定的)。因此,每个作业的。因此,每个作业的地址空间是由一些分段构成的,每段都有自己的名字,且都是地址空间是由一些分段构成的,每段都有自己的名字,且都是一段连续的地址空间。一段连续的地址空间。可见,整个作业的地址空间是二维的。可见,整个作业的地址空间是二维的。CALL X|LOAD 1,A
224、|STORE 1,B|分段MAIN(主程序) 01KY:分段X(子程序) 0640D:分段A (数组) 0500C:分段B(工作区) 0300教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 2.分段共享。分段共享。一般实现程序和数据共享时都是一般实现程序和数据共享时都是以信息的逻辑单位为基础的。在分页系统中的每一以信息的逻辑单位为基础的。在分页系统中的每一页都只是存放信息的物理单位,其本身并无完整意页都只是存放信息的物理单位,其本身并无完整意义,因而不便于实现信息共享,而段却是信息的逻义,因而不便于实现信息共享,而段却是信息的逻辑单位,通常是可以表达某种意义的,采用分段存
225、辑单位,通常是可以表达某种意义的,采用分段存储管理,更便于实现程序和数据的共享。储管理,更便于实现程序和数据的共享。 3.分段保护。分段保护。对内存中的信息的保护,同样也对内存中的信息的保护,同样也是对信息的逻辑单位进行保护。采用分段存储管理,是对信息的逻辑单位进行保护。采用分段存储管理,更对实现保护,将是更有效和方便。更对实现保护,将是更有效和方便。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 4.动态链接。动态链接。前面已谈到,采用动态链接前面已谈到,采用动态链接能更有效提高存储空间的利用率。由于每个能更有效提高存储空间的利用率。由于每个程序模块构成独立的分段,并
226、有自己的段名,程序模块构成独立的分段,并有自己的段名,因而实现动态链接是比较容易的。因而实现动态链接是比较容易的。 5.动态增长。动态增长。在实际使用中,往往有些段,在实际使用中,往往有些段,特别是数据段会随着程序的运行不断增大,特别是数据段会随着程序的运行不断增大,而这种增长事先并不知晓会增长到多大,采而这种增长事先并不知晓会增长到多大,采用其它存储管理方式是难以应付的,而分段用其它存储管理方式是难以应付的,而分段存储管理却能较好的解决这一问题。存储管理却能较好的解决这一问题。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.4.2 分段系统的基本原理分段系统的基本原理
227、 一、分段一、分段 在分段管理系统中,对所有地址空间的访问均要求两个成在分段管理系统中,对所有地址空间的访问均要求两个成分:分: (1)段的名字;段的名字; (2)段内地址段内地址。例如例如,可按下述调用:,可按下述调用:CALL X| 转移到子程序转移到子程序X中的入口点中的入口点YLOAD 1, A| 将数组将数组A的的D单元的值读入寄存器单元的值读入寄存器1STORE 1,B| 将寄存器将寄存器1的内容存入分段的内容存入分段B的的C单元中单元中 这些符号程序经汇编和装配后,指令和数据的单元地址均这些符号程序经汇编和装配后,指令和数据的单元地址均由两部分构成:一是表示段名的段号由两部分构成
228、:一是表示段名的段号S;一是位移量一是位移量W,即段即段内地址。所以,在分段系统中的地址结构有如下形式:内地址。所以,在分段系统中的地址结构有如下形式:段号S 位移量W 逻辑地址逻辑地址23 1615 0教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 一旦段号字段和位一旦段号字段和位移量字段的长度确定后,移量字段的长度确定后,一个作业地址空间中允一个作业地址空间中允许的最多段数及段的长度也就限定了。上述地址结构许的最多段数及段的长度也就限定了。上述地址结构表明,该系统可允许一个作业有表明,该系统可允许一个作业有256段,最大段长为段,最大段长为64K字节。字节。 所谓所谓
229、分段管理分段管理,就是管理由若干分段组成的作业,就是管理由若干分段组成的作业,且按分段来进行存储分配。且按分段来进行存储分配。实现分段管理的关键在于,实现分段管理的关键在于,如何保证分段如何保证分段( (二维二维) )地址空间中的一个作业在线性地址空间中的一个作业在线性( (一维一维) )的存储空间中正确运行的存储空间中正确运行。也就是说,如何把分也就是说,如何把分段地址结构变换成线性的地址结构,和分页管理一样,段地址结构变换成线性的地址结构,和分页管理一样,可采用可采用动态重定位技术动态重定位技术,即通过类似于那里用过的地,即通过类似于那里用过的地址变换机构来实现。址变换机构来实现。段号S
230、位移量W 逻辑地址逻辑地址23 1615 0教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系二、段表二、段表 在最初调度到一个作业时,系统在内存的保护区在最初调度到一个作业时,系统在内存的保护区为它建立一张段表,其格式如下图所示:为它建立一张段表,其格式如下图所示: 每个表目(段描述子)至少有三个数据项:每个表目(段描述子)至少有三个数据项:段段长、主存起始地址和存取控制长、主存起始地址和存取控制。段长段长指明它的大小;指明它的大小;主存起始地址主存起始地址指出该段在主存中的位置;指出该段在主存中的位置;存取控制存取控制说明对该段访问的限制说明对该段访问的限制(R1,允许读
231、;允许读;W=1,允许允许写;写;X=1,允许执行允许执行) 。段长(字节) 主存起始地址 存取控制(RWX) 1K 640 500 300 段号段号 0 1 2 3作业的段表作业的段表教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系Y:X=1 0640LOAD 1,2|100MAIN=0 01KD:12345A=2 0100500C:B=3 0300作业的段表段长 主存始址 RWX 1K 6K 0 0 1 640 4K 0 0 1 500 10K 1 1 0 300 12K 1 1 0 段号 0 1 2 3LOAD 1, 2| 100MAIN 允许执行X允许执行12345
232、A允许读写 B允许读写12K10K6K4K作业分段地址空间和主存存储作业分段地址空间和主存存储空间之间通过段表映射的情况空间之间通过段表映射的情况 作业地址空间主存空间教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系三、地址变换机构三、地址变换机构作业的段表段长 主存始址 1K 6K 640 4K 500 10K 300 12K 段号 0 1 2 3段表地址 控制寄存器 根据控制寄存器的内容找到该作业根据控制寄存器的内容找到该作业的段表地址;的段表地址; 10K10340 12345主存10340物理地址:段号S 位移量W 2 100有效地址: 利用有效地址中的段号利用有效
233、地址中的段号2作为检索段作为检索段表的索引,得到该段在主存的起始地址;表的索引,得到该段在主存的起始地址; 将段的主存起始地址和位移量将段的主存起始地址和位移量W相加,相加,即得访问主存的物理地址。即得访问主存的物理地址。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 这里,同样有一个控制寄存器,它存放当前运这里,同样有一个控制寄存器,它存放当前运行作业的段表的起始地址。行作业的段表的起始地址。 与分页存储管理方式类似,由于是把段表存放与分页存储管理方式类似,由于是把段表存放在内存中,在每次存储访问时,必须首先访问段表,在内存中,在每次存储访问时,必须首先访问段表,通过段
234、表项(也称为段描述子)找到某段在内存的通过段表项(也称为段描述子)找到某段在内存的位置。即要访问内存两次,因而同样使系统总的处位置。即要访问内存两次,因而同样使系统总的处理速度明显下降。理速度明显下降。 解决的策略也是在地址变换机构中增设一组数解决的策略也是在地址变换机构中增设一组数量不多的寄存器,把它们作为量不多的寄存器,把它们作为超高速缓冲存储器超高速缓冲存储器(Cache)来使用,存放当前访问的那些段描述子。这来使用,存放当前访问的那些段描述子。这个超高速缓存也可取名为个超高速缓存也可取名为TLB (Translation Lookaside Buffer)。称为称为联想存储器。联想存储
235、器。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 Cl Cb+段号段号S S 段内地址段内地址d比较比较比较比较b + d段段表表S= Cl快表快表物理地址物理地址段表始址寄存器段表始址寄存器段表长度寄存器段表长度寄存器逻辑地址逻辑地址lb.Slb地址越界地址越界d=1d=1地址映射地址越界地址越界地址越界地址越界比较比较教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系四、分页与分段的主要区别四、分页与分段的主要区别(i) 页页 信息的物理单位,大小固定,用存储信息的物理单位,大小固定,用存储 器的物理划分实现一级存储。器的物理划分实现一级存储。段段
236、 信息的逻辑单位,大小不定,实现地址信息的逻辑单位,大小不定,实现地址空间的逻辑划分。空间的逻辑划分。(ii) 页页 一维连续空间,一维连续空间,段段 二维空间二维空间(不同各段,段号,段内位移不同各段,段号,段内位移)教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系(iii) 页页 单段式单段式段段 多段式多段式(iv) 分页分页 是为了提高内存利用率,或者说是为了提高内存利用率,或者说 是系统管理的需要。是系统管理的需要。分段分段 是为了更好地满足用户需要。是为了更好地满足用户需要。(v) 分段分段 用户或编辑程序确定用户或编辑程序确定(段的最大长段的最大长度由度由W字
237、段的位数决定字段的位数决定)分页分页 用户不关心用户不关心(页的长度由机器地址结页的长度由机器地址结构决定构决定)教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 一、分页共享与分段共享一、分页共享与分段共享 在单一线性地址空间情况下,一般说来,如果有在单一线性地址空间情况下,一般说来,如果有两个作业同时使用一过程,例如两个作业同时使用一过程,例如COS子程序,则在子程序,则在每个作业的地址空间中均需保留该子程序的一个副本,每个作业的地址空间中均需保留该子程序的一个副本,且相应地在主存中也出现重复的副本。而且,对许多且相应地在主存中也出现重复的副本。而且,对许多通用过程,如
238、子程序库、系统程序通用过程,如子程序库、系统程序(例如编译、汇编例如编译、汇编程序等程序等)和标准应用程序来说,这种几个作业同时使和标准应用程序来说,这种几个作业同时使用的情况是经常会遇到的。用的情况是经常会遇到的。 例:一个多用户系统,可接纳例:一个多用户系统,可接纳40个用户,都执行个用户,都执行文本编辑程序,其中含文本编辑程序,其中含160K的代码和的代码和40K的数据,的数据,则需要:则需要: 40(160+40)=8000K(8M) 主存的大部分空间将被重复的过程副本所塞满。主存的大部分空间将被重复的过程副本所塞满。4.4.3 信息共享信息共享 教学进度教学进度教学进度教学进度计算机
239、科学与工程系计算机科学与工程系 采用分页共享或分段共享,则可克服这种重采用分页共享或分段共享,则可克服这种重复的现象(复的现象(利用了利用了可重代码技术可重代码技术:是一种允许多:是一种允许多个进程同时访问某一程序代码段的技术个进程同时访问某一程序代码段的技术)。)。 采用可重代码:采用可重代码: 160+4040=1760K(1.76M) 为了说明分页共享与分段共享的区别,先来为了说明分页共享与分段共享的区别,先来了解分页共享的实现原理。了解分页共享的实现原理。1.分页共享分页共享 分页分配使每个作业能利用存储空间一些非分页分配使每个作业能利用存储空间一些非连续的存储块。这种灵活性原则上允许
240、两个或多连续的存储块。这种灵活性原则上允许两个或多个作业共享程序库中的例程或公共数据段的同一个作业共享程序库中的例程或公共数据段的同一副本,如下页图所示。副本,如下页图所示。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 共享的例程页面共享的例程页面共享的数据页面共享的数据页面作业作业1页表页表作业作业2页表页表教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 对于数据页面的共享,实现起来比较简单。对于数据页面的共享,实现起来比较简单。因为这个共享的数据页面可以安排在诸作业地址空因为这个共享的数据页面可以安排在诸作业地址空间中的任何一页面上。至于库例程
241、的共享则不然,间中的任何一页面上。至于库例程的共享则不然,它必须把共享的例程安排到所有共享它的作业地址它必须把共享的例程安排到所有共享它的作业地址空间中相同页号的页面中。即共享例程所在的地址空间中相同页号的页面中。即共享例程所在的地址空间必须重叠。右图中也标明了这一点。空间必须重叠。右图中也标明了这一点。 之所以有这种要求,是因为一个作业在运行前之所以有这种要求,是因为一个作业在运行前必须链接好,而链接后,一个例程的所占页号就确必须链接好,而链接后,一个例程的所占页号就确定了。如果其它作业要共享该例程,则必须使它具定了。如果其它作业要共享该例程,则必须使它具有相同的页号,才能正确运行。我们通过
242、一个简单有相同的页号,才能正确运行。我们通过一个简单例子来帮助大家认识。例子来帮助大家认识。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 例:例:假定有一个共享程序假定有一个共享程序EDIT,其中含有转移指其中含有转移指令,转移指令中的转移地址必须指出页号和单元号,令,转移指令中的转移地址必须指出页号和单元号,如果是转向本页,则页号应与本页的页号相同。现若如果是转向本页,则页号应与本页的页号相同。现若有两个作业共享这个有两个作业共享这个EDIT程序,假定一程序,假定一 个作业定义个作业定义它的页号为它的页号为3,另一个作业定义它的页号为,另一个作业定义它的页号为5,然而
243、在,然而在主存中只有一个主存中只有一个 EDIT程序,它要为两个作业以同样程序,它要为两个作业以同样的方式服务,这个程序一定是可重入的,于是转移地的方式服务,这个程序一定是可重入的,于是转移地址中的页号不能按作业的要求随机的改成址中的页号不能按作业的要求随机的改成3或或5,因此,因此对共享程序必须规定统一的页号。对共享程序必须规定统一的页号。 实现页面共享引起的实现页面共享引起的主要问题主要问题是,是,当共享页从内当共享页从内存中淘汰或被重新装入内存时,共享此页的所有作业存中淘汰或被重新装入内存时,共享此页的所有作业页表的相应页表的相应“页面存在页面存在”位必须更新位必须更新。具体实现时可。具
244、体实现时可采用如下技术:采用如下技术:教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 (1)把共享某一页的所有作业之页表的相应表目链把共享某一页的所有作业之页表的相应表目链在一起。当该页需要交换时,沿着这个链扫描所有的在一起。当该页需要交换时,沿着这个链扫描所有的页表,寻找和更新相应页表之表目。页表,寻找和更新相应页表之表目。 (2)为了便于共享,减少开销,把正在被共享的页为了便于共享,减少开销,把正在被共享的页“锁锁”在主存中。为此,在页表的表目中加一个引用在主存中。为此,在页表的表目中加一个引用计数计数(其初值为其初值为0),当一个作业要使用一共享页时,使,当一个作业
245、要使用一共享页时,使相应的引用计数加相应的引用计数加1;若共享此页的一个作业撤离时则;若共享此页的一个作业撤离时则引用计数减引用计数减1。 (3)为了减少共享页面之作业页表的更新操作,可为了减少共享页面之作业页表的更新操作,可为那些被共享的页面独立设置一张表为那些被共享的页面独立设置一张表公共页表。公共页表。当某个被共享的页面与辅存之间交换时,只需对这个当某个被共享的页面与辅存之间交换时,只需对这个“公共公共”的页表表目加以更新。至于有共享页面的作的页表表目加以更新。至于有共享页面的作业之页表,其相应表目设有一指针指向该页在公共页业之页表,其相应表目设有一指针指向该页在公共页表中的表目即可。表
246、中的表目即可。(见下页图见下页图)教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 作业1页表 作业2页表 公共页表共享的例程页面教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 利用分页共享原理上述多用户系统的存储分配利用分页共享原理上述多用户系统的存储分配如下:(假定页面大小为如下:(假定页面大小为4K,两个用户)两个用户)ed1 ed2 ed40data1 data10进程进程1ed1 ed2 ed40data1 data10进程进程221 22 6061 70进程进程1的页表的页表21 22 6071 80进程进程2的页表的页表21 22 606
247、1 70内存内存71 80ed1 ed2 ed40data1 data10data1 data10教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系2.分段共享分段共享 在分段系统中,实现程序的共享非常容易。在分段系统中,实现程序的共享非常容易。MAIN 1SINDATA 1COS作业作业1的地址空间的地址空间MAIN 2SORTDATA 2COS作业作业2的地址空间的地址空间01234567作业作业1的段表的段表01234567作业作业2的段表的段表操作系统操作系统MAIN 1DATA 1SINCOSMAIN 2DATA 2SORT主存教学进度教学进度教学进度教学进度计算机
248、科学与工程系计算机科学与工程系 可见,分段的共享是通过两个作业段表的相应表可见,分段的共享是通过两个作业段表的相应表目都指向目都指向COS过程的同一物理副本来实现的。过程的同一物理副本来实现的。 说明:说明: 由于段号是在动态链接过程中分配的,而且,由于段号是在动态链接过程中分配的,而且,系统不可能事先知道某个过程将为哪些作业所调用;系统不可能事先知道某个过程将为哪些作业所调用;因此,因此,一个公共过程不一定也无需赋与相同的段号。一个公共过程不一定也无需赋与相同的段号。例如,例如,COS在作业在作业1的地址空间中,其段号为的地址空间中,其段号为6,但在,但在作业作业2的地址空间中其段号为的地址
249、空间中其段号为3。 当某个共享段移出主存后,必须在共享该段的当某个共享段移出主存后,必须在共享该段的每个作业之段表的相应表目中,置状态为每个作业之段表的相应表目中,置状态为“不在主存不在主存”标志。标志。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 利用分段共享原理上述多用户系统的存利用分段共享原理上述多用户系统的存储分配如下:(两个用户)储分配如下:(两个用户)editordata1进程进程1editordata2进程进程22404080160基址基址段长段长进程进程1的段表的段表3804080160基址基址段长段长进程进程2的段表的段表editordata1 dat
250、a2主存教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系二、分段的保护措施二、分段的保护措施 这里可以采用如下几个措施:这里可以采用如下几个措施: (1)为每个作业建立一张段表,在相应于每段的为每个作业建立一张段表,在相应于每段的表目中,设置一表目中,设置一 个段长值,以指明该段的长度个段长值,以指明该段的长度。 当存储访问时,段地址的位移量与段长相比较,当存储访问时,段地址的位移量与段长相比较,如超过段长,便发出越界中断信号。这样,每个作业如超过段长,便发出越界中断信号。这样,每个作业被限制在自己的地址空间中运行,于是这些段表便把被限制在自己的地址空间中运行,于是这些段表
251、便把各个作业各个作业 “隔开隔开”了。因为一个作业的所有存储访了。因为一个作业的所有存储访问都是通过段表来变换地址的,故只涉及它自已地址问都是通过段表来变换地址的,故只涉及它自已地址空间,因而消除了一个用户作业破坏另一空间,因而消除了一个用户作业破坏另一 个用户地个用户地址空间的危险。址空间的危险。 (2)建立存取控制,在段表的每个表目中,除指明建立存取控制,在段表的每个表目中,除指明段长外,还增加段长外,还增加“存取方式存取方式”一项一项。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 这种段的保护,对非共享段来说,主要是用来指这种段的保护,对非共享段来说,主要是用来指
252、示程序设计的错误,诸如企图修改纯过程的错误;而示程序设计的错误,诸如企图修改纯过程的错误;而对于共享段来说,则显得特别重要。对于共享段来说,则显得特别重要。 例如,例如,某个纯过程段被共享,则必须禁止任何作某个纯过程段被共享,则必须禁止任何作业修改它。因此,规定这样的段为只能业修改它。因此,规定这样的段为只能“执行执行”的。的。对于共享的数据段,只允许大家对于共享的数据段,只允许大家“读读”,而不能,而不能“写写”,或只允许一个用户,或只允许一个用户“写写”。 此外,通常还禁止任何作业此外,通常还禁止任何作业“读读”一过程段。这一过程段。这是因为:是因为: 读一个过程段显然是一个程序设计错误;
253、读一个过程段显然是一个程序设计错误; 有些过程是专有的,只准使用,不准有些过程是专有的,只准使用,不准“拿走拿走”。 如果一个分段仅具有如果一个分段仅具有“执行执行”状态,那么只能作状态,那么只能作为一个过程来调用,而为一个过程来调用,而“读读”、“写写”是禁止的;如是禁止的;如有作业企图对它有作业企图对它“读读”或或“写写”,则系统发出段保护,则系统发出段保护中断信号。中断信号。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 应当指出,由于存取方式控制信息包括在作业的应当指出,由于存取方式控制信息包括在作业的段表中,因此没有必要对共享某个段的每个作业作同段表中,因此没有
254、必要对共享某个段的每个作业作同样的限制。例如,一个学校的教职工人事资料,只允样的限制。例如,一个学校的教职工人事资料,只允许人事部门的作业许人事部门的作业“读读”或或“写写”(根据人员变动进行根据人员变动进行修改修改),而其它有关部门的作业只能对其,而其它有关部门的作业只能对其“读读”。 (3)采用存储保护键采用存储保护键。 由于由于I/O通道对存储器的访问是不经过段表的,因通道对存储器的访问是不经过段表的,因此,有些机器除段保护外,还采用存储保护键。因为此,有些机器除段保护外,还采用存储保护键。因为这种保护对这种保护对I/O通道是十分有效的。通道是十分有效的。 在一个段式存储管理系统中,通过
255、建立段表、施在一个段式存储管理系统中,通过建立段表、施加存取控制、设置存储键保护等,可提供一个多级的加存取控制、设置存储键保护等,可提供一个多级的存储保护体系存储保护体系。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.4.4 段页式存储管理方式段页式存储管理方式 为了获得分段在逻辑上的优点和分页在管理存储空为了获得分段在逻辑上的优点和分页在管理存储空间方面的优点,兼用分段和分页两种方法,即采用所谓间方面的优点,兼用分段和分页两种方法,即采用所谓段页式存储管理段页式存储管理。 这种技术的基本思想是,这种技术的基本思想是,用分段方法来分配和管理用分段方法来分配和管理虚拟存
256、储器,而用分页方法来分配和管理实存储器虚拟存储器,而用分页方法来分配和管理实存储器( (即即主存主存) )。这样,一方面可以保持分段地址空间所带来的这样,一方面可以保持分段地址空间所带来的优点。例如,允许分段动态扩展,可实现分段的动态链优点。例如,允许分段动态扩展,可实现分段的动态链接,分段的共享,实施段保护措施等等。另一方面、主接,分段的共享,实施段保护措施等等。另一方面、主存分区的拼接问题、辅存的管理以及对分段大小的限制存分区的拼接问题、辅存的管理以及对分段大小的限制等问题,都可以得到有效的解决,这种管理存储器的方等问题,都可以得到有效的解决,这种管理存储器的方案在案在IBM公司的中、大型
257、机的操作系统中得到普遍采用。公司的中、大型机的操作系统中得到普遍采用。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系一、基本原理一、基本原理 在段页式系统中,一个程序首先被分成若干程在段页式系统中,一个程序首先被分成若干程序段,每一段赋予不同的分段标识符,然后,对每序段,每一段赋予不同的分段标识符,然后,对每一分段又分成若干个固定大小的页面。一分段又分成若干个固定大小的页面。 由于段页式系统给作业地址空间增加了另一级由于段页式系统给作业地址空间增加了另一级结构,现在地址空间是由结构,现在地址空间是由段号段号S、段内页号段内页号P 和和页内页内相对地址相对地址(位移量位移量
258、)W构成。地址结构图示如下构成。地址结构图示如下 : 段号段号S段内地址段内地址段内页号段内页号P页内地址页内地址W段号段号S 段内页号段内页号P 页内位移量页内位移量W0 7 8 11 12 23例如:例如:教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系0页页1页页2页页3页页 0 4K 8K12K16K15K一段0页1页2页 0 4K 8K12K10K三段0页页1页页 0 4K 8K二段 上面为段页式系统中一个作业的地址空间结构,上面为段页式系统中一个作业的地址空间结构,页面尺寸为页面尺寸为 4KB。由图可见,该作业有三个分段,第由图可见,该作业有三个分段,第一段为一
259、段为15KB,占,占4页,最后一页有页,最后一页有1KB未用;第二段未用;第二段为为8KB,恰好占满恰好占满2页;第三段为页;第三段为10KB,占,占3页;而最页;而最后一页有后一页有2KB未用。和分页系统一样,这些未写满的未用。和分页系统一样,这些未写满的页,在装入主存空间后,依然存在页,在装入主存空间后,依然存在内零头内零头问题。问题。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系段号段号S 段内页号段内页号P 页内位移量页内位移量W0 7 8 11 12 23 如前所述,处理机给出的有效地址长度确定了一如前所述,处理机给出的有效地址长度确定了一个进程可用地址空间范围
260、。而这个具体的地址结构,个进程可用地址空间范围。而这个具体的地址结构,确定了一个进程最多能有多少段,每段多少页,以及确定了一个进程最多能有多少段,每段多少页,以及页面的大小。上述可允许有页面的大小。上述可允许有256段,每段段,每段16页、页面的页、页面的大小为大小为4K字节。字节。 再次强调,程序的分段可以由程序员或编译程序再次强调,程序的分段可以由程序员或编译程序根据信息的逻辑结构来划分;而分页则与程序员无关,根据信息的逻辑结构来划分;而分页则与程序员无关,是由系统自动进行的。这就是说,程序员使用的编址是由系统自动进行的。这就是说,程序员使用的编址方式或编译程序给出的目标程序的地址形式仍然
261、是二方式或编译程序给出的目标程序的地址形式仍然是二维的,即维的,即段号段号S和和段内相对地址段内相对地址W;而只是由地址变而只是由地址变换机构把换机构把W的高四位解释为页号的高四位解释为页号P,把低十二位解释把低十二位解释为页内相对地址为页内相对地址(位移量位移量)W。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 对主存而言,和分页管理一样,把它分成许多对主存而言,和分页管理一样,把它分成许多和页面大小相等的存储块。因此,一个段可以装入和页面大小相等的存储块。因此,一个段可以装入不相邻接的空闲存储块中,因而用不着拼接而消除不相邻接的空闲存储块中,因而用不着拼接而消除了
262、主存分区之间的外零头。了主存分区之间的外零头。 为了支持分段和分页,系统内必须设置一硬件为了支持分段和分页,系统内必须设置一硬件机制以提供二级地址翻译系统。在主存中的每一进机制以提供二级地址翻译系统。在主存中的每一进程作为一个整体由一张段表来加以描述;每一个不程作为一个整体由一张段表来加以描述;每一个不同的分段有一个同的分段有一个段描述子段描述子。在。在CPU中设有一段表控中设有一段表控制寄存器,用来标识当前段表的大小和其起始地址。制寄存器,用来标识当前段表的大小和其起始地址。 这里,段表中的物理地址变换为该段的页表始这里,段表中的物理地址变换为该段的页表始址。这个页表相应地包含有址。这个页表
263、相应地包含有页描述子页描述子,下面给出段,下面给出段描述子和页的描述子内容。描述子和页的描述子内容。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系页描述子页描述子存储块号存储块号Q 状态位状态位D 访问位访问位A 修改位修改位M段描述子段描述子页表始址页表始址 页表大小页表大小 存取权限存取权限 状态位状态位 说明:说明:段描述子中状态位是段在主存的标志;页描段描述子中状态位是段在主存的标志;页描述子中状态位是页在主存的标志。述子中状态位是页在主存的标志。 在这种段页式系统中,一个作业的整个一段或若在这种段页式系统中,一个作业的整个一段或若干段以及某些分段的某些页面不在
264、主存中是完全可能干段以及某些分段的某些页面不在主存中是完全可能的。在段描述子中设有的。在段描述子中设有“段在主存段在主存”标识,在页描述标识,在页描述子中设有子中设有“页在主存页在主存”标识,标识, 控制寄存器、段表、页表与主存空间的关系如图控制寄存器、段表、页表与主存空间的关系如图所示。所示。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系状态 存储块 1 1 0 1页号 0 1 2 3段表大小 段表始址段表控制寄存器状态 存储块 1 1 1 0 页号 0 1 2 3页表主存操作系统段号 0 1 2 3 4状态 页表大小 页表始址 1 . 1 . 1 . 0 . 1 .段
265、表教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系二二 地地址址变变换换过过程程 段表始址 段表大小段表控制寄存器段号S 段内页号P 页内位移量W逻辑地址S段表大小?越界中断Y段表段描述子段描述子 页表始址 页表大小 存取权限 状态位越界中断Y页表页描述子NP页表大小?页描述子存储块号Q 状态位D 访问位A 修改位M如果操作无效产生中断存储块号 位移量物理地址N教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.5 虚拟存储器的基本概念虚拟存储器的基本概念 问题的提出问题的提出 一个程序要求的存储容量超过整个内存空间一个程序要求的存储容量超过整个内存空间
266、 有大量的作业需要装入内存运行而内存空间不足有大量的作业需要装入内存运行而内存空间不足解决方案解决方案 1.从物理上增加内存容量。但这会增加系统成本,从物理上增加内存容量。但这会增加系统成本,并且增加是有限的。并且增加是有限的。 2.从逻辑上增加内存容量。这正是从逻辑上增加内存容量。这正是虚拟存储技术虚拟存储技术所要解决的主要问题。所要解决的主要问题。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.5.1 虚拟存储器的引入虚拟存储器的引入 1. 常规存储器管理方式的特征常规存储器管理方式的特征 以以CPU时间和外存空间换取昂贵内存空间,这是操作系统时间和外存空间换取昂贵
267、内存空间,这是操作系统中的资源转换技术。现在的问题是:中的资源转换技术。现在的问题是: 这种资源转换技术值得吗?这种资源转换技术值得吗?一次性、驻留性一次性、驻留性是否是程序运是否是程序运行时所必须的?行时所必须的? 有关此类问题已有不少学者进行了广泛的研究,其研究的有关此类问题已有不少学者进行了广泛的研究,其研究的结果为虚拟存储器的实现奠定了基础。结果为虚拟存储器的实现奠定了基础。 前面叙述的各种存储管理,都要求作业全部装入内存,实前面叙述的各种存储管理,都要求作业全部装入内存,实际上作业运行时并非用到所有程序,因此,将作业际上作业运行时并非用到所有程序,因此,将作业“一次性一次性”地全部装
268、入内存的方法,显然是一种对内存空间的浪费。地全部装入内存的方法,显然是一种对内存空间的浪费。 此外,作业装入内存后,便一致驻留在内存直至作业运行此外,作业装入内存后,便一致驻留在内存直至作业运行结束,即使运行出现阻塞或某程序运行一次后不再运行了,只结束,即使运行出现阻塞或某程序运行一次后不再运行了,只要作业未结束,仍将继续占用内存资源,此即要作业未结束,仍将继续占用内存资源,此即“驻留性驻留性”,同,同样是对内存空间的浪费。样是对内存空间的浪费。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系2. 局部性原理局部性原理 早在1968年, Denning.P就曾指出: (1)
269、 程序执行时, 除了少部分的转移和过程调用指令外, 在大多数情况下仍是顺序执行的。 (2) 过程调用将会使程序的执行轨迹由一部分区域转至另一部分区域, 但经研究看出,过程调用的深度在大多数情况下都不超过5。 (3) 程序中存在许多循环结构, 这些虽然只由少数指令构成, 但是它们将多次执行。 (4) 程序中还包括许多对数据结构的处理, 如对数组进行操作, 它们往往都局限于很小的范围内。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 局限性又表现在下述两个方面: (1) 时间局限性。如果程序中的某条指令一旦执行, 则不久以后该指令可能再次执行;如果某数据被访问过, 则不久以
270、后该数据可能再次被访问。产生时间局限性的典型原因,是由于在程序中存在着大量的循环操作。 (2) 空间局限性。一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,其典型情况便是程序的顺序执行。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系3. 虚拟存储器定义虚拟存储器定义 基于局部性原理,一个作业在运行时,只需将那些当前要基于局部性原理,一个作业在运行时,只需将那些当前要运行的程序部分(页面或段)装入内存,其余部分暂时留在磁运行的程序部分(页面或段)装入内存,其余部分暂时留在磁盘上,这样程序便可继续
271、运行。盘上,这样程序便可继续运行。 运行一段时间后,运行一段时间后, (1)如果还要继续运行的需要的程序段不在内存,则产生缺如果还要继续运行的需要的程序段不在内存,则产生缺页(段)中断,此时程序利用页(段)中断,此时程序利用OS提供的请求调页(段)功能,提供的请求调页(段)功能,将它们调入内存,以使程序继续执行下去。将它们调入内存,以使程序继续执行下去。 (2)如果内存已满,无法再装入新的页(段),则还须再利如果内存已满,无法再装入新的页(段),则还须再利用页(段)的置换功能,将内存中暂时不用的程序段调至磁盘,用页(段)的置换功能,将内存中暂时不用的程序段调至磁盘,腾出足够的内存空间后,再将它
272、们调入内存,以使程序继续执腾出足够的内存空间后,再将它们调入内存,以使程序继续执行下去。行下去。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 XXXX7X5XXX34061260K-64K56K-60K52K-56K48K-52K44K-48K40K-44K36K-40K32K-36K28K-32K24K-28K20K-24K16K-20K12K-16K 8K-12K 4K-8K 0K-4K28K-32K24K-28K20K-24K16K-20K12K-16K 8K-12K 4K-8K 0K-4K虚地址空间虚地址空间物理地址空间物理地址空间 虚页虚页页框页框教学进度教学
273、进度教学进度教学进度计算机科学与工程系计算机科学与工程系 151413121110 9 8 7 6 5 4 3 2 10000000000000000111100001011000000000000011110010001110100110101 00010000000000100110000000000100110在在/不在内存不在内存页表页表虚地址虚地址8196物理地址物理地址24580教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 虚拟存储器的虚拟存储器的基本思想基本思想是:程序、数据、堆栈的是:程序、数据、堆栈的大小可以超过内存的大小,操作系统把程序当前使用大小可
274、以超过内存的大小,操作系统把程序当前使用的部分保留在内存,而把其它部分保存在磁盘上,并的部分保留在内存,而把其它部分保存在磁盘上,并在需要时在内存和磁盘之间动态交换。虚拟存储器支在需要时在内存和磁盘之间动态交换。虚拟存储器支持多道程序设计技术。持多道程序设计技术。CPUMMU内存内存磁盘磁盘控制器控制器总线总线虚拟地址虚拟地址物理地址物理地址MMU:内存管理单元内存管理单元教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 虚拟存储器:虚拟存储器:把内存与外存有机的结合起来使用,把内存与外存有机的结合起来使用,从而得到一个容量很大的从而得到一个容量很大的“内存内存”,简称,简
275、称虚存虚存。 一个虚拟存储器的最大容量是由计算机的地址结一个虚拟存储器的最大容量是由计算机的地址结构确定的。若构确定的。若CPU给出的有效地址长度为给出的有效地址长度为20位,则程位,则程序可以寻址的范围是从序可以寻址的范围是从0到到(1M-1),即虚存的容量为:即虚存的容量为:1M。若这个地址长度为若这个地址长度为24位,则相应的虚存容量为位,则相应的虚存容量为16M。由此可见,虚拟存储器的容量与主存的实际大由此可见,虚拟存储器的容量与主存的实际大小没有直接关系,而是由主存的容量与辅存的容量之小没有直接关系,而是由主存的容量与辅存的容量之和所确定。而且,在多道程序环境下,一个计算机系和所确定
276、。而且,在多道程序环境下,一个计算机系统可以为每一个用户建立一个虚拟存储器。这样,每统可以为每一个用户建立一个虚拟存储器。这样,每个用户都可在自己的地址空间中编程,这对用户是十个用户都可在自己的地址空间中编程,这对用户是十分方便的。分方便的。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系 虚拟存储器的实现,无一例外地都是建立虚拟存储器的实现,无一例外地都是建立在离散分配存储管理方式基础上,并且建造支在离散分配存储管理方式基础上,并且建造支持虚拟存储器概念的系统,还应有相应的物质持虚拟存储器概念的系统,还应有相应的物质基础来支持。基础来支持。其一是要有相当容量的辅助存储其一
277、是要有相当容量的辅助存储器,足以存放所有并发作业的地址空间;其二器,足以存放所有并发作业的地址空间;其二是要有一定容量的主存,因为在处理机上运行是要有一定容量的主存,因为在处理机上运行的作业,必须有一部分信息存放在主存中;其的作业,必须有一部分信息存放在主存中;其三,是要有地址变换机构。三,是要有地址变换机构。即所有的虚拟存储即所有的虚拟存储器都是下述方式之一:器都是下述方式之一:教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系4.5.2 虚拟存储器的实现方法虚拟存储器的实现方法 一、请求分页系统一、请求分页系统 它是在纯分页系统的基础上增加了请求调页、页面它是在纯分页系统
278、的基础上增加了请求调页、页面置换两大功能所形成的页式虚拟存储系统。置换两大功能所形成的页式虚拟存储系统。 为了实现请求调页、页面置换两大功能,系统必须为了实现请求调页、页面置换两大功能,系统必须提供如下的硬件支持:提供如下的硬件支持: 1. 请求分页的页表机制。请求分页的页表机制。 2. 缺页中断机构。缺页中断机构。 3. 地址变换机构。地址变换机构。 此外,实现请求调页、页面置换两大功能还需得到此外,实现请求调页、页面置换两大功能还需得到OS的支持。有关请求式分页的具体实施将在后面的小节的支持。有关请求式分页的具体实施将在后面的小节中加以说明。中加以说明。教学进度教学进度教学进度教学进度计算
279、机科学与工程系计算机科学与工程系二、请求分段系统二、请求分段系统 它是在纯分段系统的基础上增加了请求调段、分它是在纯分段系统的基础上增加了请求调段、分段置换两大功能所形成的段式虚拟存储系统。段置换两大功能所形成的段式虚拟存储系统。 为了实现请求调段、分段置换两大功能,系统必为了实现请求调段、分段置换两大功能,系统必须提供如下的硬件支持:须提供如下的硬件支持: 1. 请求分段的段表机制。请求分段的段表机制。 2. 缺段中断机构。缺段中断机构。 3. 地址变换机构。地址变换机构。 此外,实现请求调段、分段置换两大功能还需得此外,实现请求调段、分段置换两大功能还需得到到OS的支持。有关请求式分段的具
280、体实施将在后面的支持。有关请求式分段的具体实施将在后面的小节中加以说明。的小节中加以说明。教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程系三、段页式虚拟系统三、段页式虚拟系统 目前,许多虚拟存储管理系统是建立在段目前,许多虚拟存储管理系统是建立在段页式系统的基础上的,通过增加了请求调页、页式系统的基础上的,通过增加了请求调页、页面置换两大功能所形成的段页式虚拟存储系页面置换两大功能所形成的段页式虚拟存储系统。统。 如:如:Intel 80386处理机便支持段页式虚拟处理机便支持段页式虚拟存储系统。存储系统。 教学进度教学进度教学进度教学进度计算机科学与工程系计算机科学与工程
281、系4.5.3 虚拟存储器的特征虚拟存储器的特征 虚拟存储管理系统虚拟存储管理系统最基本的特征是最基本的特征是离散性离散性,在此基,在此基础上又形成了础上又形成了多次性多次性和和对换性对换性的特征。其所表现出来的的特征。其所表现出来的最重要特征是最重要特征是虚拟性虚拟性。 1.离散性:离散性:是指在内存分配时采用离散分配方式,这是指在内存分配时采用离散分配方式,这是其它几个特征的基础。是其它几个特征的基础。 2.多次性:多次性:是指一个作业在运行过程被分成多次地调是指一个作业在运行过程被分成多次地调入内存运行。它是虚拟存储器最重要的特征,其它存储入内存运行。它是虚拟存储器最重要的特征,其它存储管理方式都不具有此特征。管理方式都不具有此特征。 3.对换性:对换性:是指允许在作业的运行过程中换进、换出。是指允许在作业的运行过程中换进、换出。它能有效地提高内存利用率。它能有效地提高内存利用率。 4.虚拟性:虚拟性:是指能够从逻辑上扩充内存容量,使用户是指能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。这是虚拟存储所看到的内存容量远大于实际内存容量。这是虚拟存储器所表现出来器所表现出来的的最重要特征,它是实现虚拟存储器的最最重要特征,它是实现虚拟存储器的最重要目标。重要目标。