操作系统设计与实现第四章.ppt
《操作系统设计与实现第四章.ppt》由会员分享,可在线阅读,更多相关《操作系统设计与实现第四章.ppt(103页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统设计与实现操作系统设计与实现主讲教师:徐战亚主讲教师:徐战亚主讲教师:徐战亚主讲教师:徐战亚Email Email:第四章第四章 存储器管理存储器管理一、存储器在操作系统中的地位一、存储器在操作系统中的地位是计算机不可缺少的部分,存在的方式也是计算机不可缺少的部分,存在的方式也多种多样。多种多样。对于操作者、程序设计者、系统开发者对于操作者、程序设计者、系统开发者都希望能拥有无穷大的、高速的、内容不发生都希望能拥有无穷大的、高速的、内容不发生变化的存储器,最根本的还是能以很低的成本变化的存储器,最根本的还是能以很低的成本来使用。来使用。由于技术的原因,我们无法满足我们的由于技术的原因,
2、我们无法满足我们的需求,因此,大部分的计算机都以一种层次结需求,因此,大部分的计算机都以一种层次结构来进行存储器的管理。构来进行存储器的管理。高速、价格昂贵、易失信息的高速、价格昂贵、易失信息的高速、价格昂贵、易失信息的高速、价格昂贵、易失信息的CacheCache一般单位几百一般单位几百一般单位几百一般单位几百KBKB;中速、中等价格、易变化的中速、中等价格、易变化的中速、中等价格、易变化的中速、中等价格、易变化的RAMRAM,一般单位为几百,一般单位为几百,一般单位为几百,一般单位为几百MM;低速、低廉价格、不易丢失信息的磁盘,一般单位为低速、低廉价格、不易丢失信息的磁盘,一般单位为低速、
3、低廉价格、不易丢失信息的磁盘,一般单位为低速、低廉价格、不易丢失信息的磁盘,一般单位为GG;存储存储存储存储器层器层器层器层次结次结次结次结构构构构对于操作系统,它本身提供一个存储管理模块对于操作系统,它本身提供一个存储管理模块对于操作系统,它本身提供一个存储管理模块对于操作系统,它本身提供一个存储管理模块来管理它本身的这个层次性的存储器系统。来管理它本身的这个层次性的存储器系统。来管理它本身的这个层次性的存储器系统。来管理它本身的这个层次性的存储器系统。Memory managerMemory manager 由操作系统协调这些存储器的使用由操作系统协调这些存储器的使用重要性:直接存取要求内
4、存速度尽量快到与重要性:直接存取要求内存速度尽量快到与CPU取指速度相匹配,大到能装下当前运行取指速度相匹配,大到能装下当前运行的程序与数据,否则的程序与数据,否则CPU执行速度就会受到执行速度就会受到内存速度和容量的影响而得不到充分发挥。内存速度和容量的影响而得不到充分发挥。内存:内存:是由存储单元(字节或字)组成的一维连续的地址是由存储单元(字节或字)组成的一维连续的地址空间,简称内存空间。用来存放当前正在运行程序的代空间,简称内存空间。用来存放当前正在运行程序的代码及数据,是程序中指令本身地址所指的、亦即程序计码及数据,是程序中指令本身地址所指的、亦即程序计数器所指的存储器。数器所指的存
5、储器。可以分为:可以分为:系统区:用于存放操作系统系统区:用于存放操作系统 用户区:用于装入并存放用户程序和数据。用户区:用于装入并存放用户程序和数据。操作系统存储管理目的操作系统存储管理目的-用户对内存的使用要求用户对内存的使用要求1、充分利用内存,为多道程序并发执行提供存储基础;、充分利用内存,为多道程序并发执行提供存储基础;2、尽可能方便用户使用:、尽可能方便用户使用:自动装入用户程序;自动装入用户程序;用户程序中不必考虑硬件细节;用户程序中不必考虑硬件细节;3、系统能够解决程序空间比实际内存空间大的问题;、系统能够解决程序空间比实际内存空间大的问题;4、程序在执行时可以动态伸缩;、程序
6、在执行时可以动态伸缩;5、内存存取速度快;、内存存取速度快;6、存储保护与安全;、存储保护与安全;7、共享与通信;、共享与通信;8、了解有关资源的使用状况;、了解有关资源的使用状况;9、实现的性能和代价。、实现的性能和代价。操作系统存储管理的任务操作系统存储管理的任务前提前提:引入多道程序设计技术,满足用户要求引入多道程序设计技术,满足用户要求1.内存空间的管理、分配与回收内存空间的管理、分配与回收 记录内存的使用情况记录内存的使用情况 设置相应的内存分配表(见下页)设置相应的内存分配表(见下页)(内存分配回收的依据)(内存分配回收的依据)内存空间划分问题?内存空间划分问题?静态或动态,等长或
7、不等长静态或动态,等长或不等长 内存分配表内存分配表 位示图表示法:用一位(位示图表示法:用一位(bit)表示一个空闲页面表示一个空闲页面(0:空闲,:空闲,1:占用);:占用);0 0.1 11 10 0.第第第第0 0页第页第页第页第1 1页页页页 第第第第i i页页页页 第第第第n-1n-1页页页页 空闲页面表:包括首页面号和页面个数,连续若空闲页面表:包括首页面号和页面个数,连续若干的页面作为一组登记在表中干的页面作为一组登记在表中 空闲块表:空闲块首址和空闲块长度,没有记录空闲块表:空闲块首址和空闲块长度,没有记录的区域即为进程所占用;的区域即为进程所占用;空闲块链表:将所有的空闲块
8、链成一个链表。空闲块链表:将所有的空闲块链成一个链表。确定分配算法确定分配算法 实施内存分配实施内存分配 回收内存回收内存 分配回收方式分配回收方式:静态分配与动态分配静态分配与动态分配 连续性连续性 ;离散性离散性 驻留性驻留性;交换性交换性 一次性;一次性;多次性多次性2.存储共享存储共享 内存共享:两个或多个进程共用内存中相同区域内存共享:两个或多个进程共用内存中相同区域 目的:目的:节省内存空间,提高内存利用率节省内存空间,提高内存利用率 实现进程通信(数据共享)实现进程通信(数据共享)共享内容:共享内容:代码共享,要求代码为纯代码代码共享,要求代码为纯代码 数据共享数据共享3.存储保
9、护与安全存储保护与安全 保护目的:保护目的:为多个程序共享内存提供保障为多个程序共享内存提供保障,使在内存中的各道使在内存中的各道程序程序,只能访问它自己的区域,避免各道程序间只能访问它自己的区域,避免各道程序间相互干拢,特别是当一道程序发生错误时相互干拢,特别是当一道程序发生错误时,不致不致于影响其他程序的运行。通常由硬件完成保护功于影响其他程序的运行。通常由硬件完成保护功能,由软件辅助实现。(特权指令不能完成存储能,由软件辅助实现。(特权指令不能完成存储保护。)保护。)存储保护存储保护 保护系统程序区不被用户侵犯保护系统程序区不被用户侵犯;(有意或无意的)(有意或无意的)不允许用户程序读写
10、不属于自己地址空间的数据不允许用户程序读写不属于自己地址空间的数据;(系统区地址空间,其他用户程序的地址空间)(系统区地址空间,其他用户程序的地址空间)保护过程保护过程-防止地址越防止地址越界界 每个进程都有自己独立的进程空间,如果一个每个进程都有自己独立的进程空间,如果一个进程在运行时所产生的地址在其地址空间之外,则进程在运行时所产生的地址在其地址空间之外,则发生地址越界。即当程序要访问某个内存单元时,发生地址越界。即当程序要访问某个内存单元时,由硬件检查是否允许,如果允许则执行,否则产生由硬件检查是否允许,如果允许则执行,否则产生地址越界中断,由操作系统进行相应处理。地址越界中断,由操作系
11、统进行相应处理。一般由硬件提供一对寄存器:一般由硬件提供一对寄存器:基址寄存器:存放起始地址基址寄存器:存放起始地址 限长寄存器:存放长度限长寄存器:存放长度(上界寄存器上界寄存器/下界寄存器)下界寄存器)保护过程保护过程-防止操作越权防止操作越权 对于允许多个进程共享的存储区域,每个进程对于允许多个进程共享的存储区域,每个进程都有自己的访问权限。如果一个进程对共享区域的都有自己的访问权限。如果一个进程对共享区域的访问违反了权限规定,则发生操作越权。访问违反了权限规定,则发生操作越权。即读写保护。即读写保护。4.内存内存“扩充扩充”通过虚拟存储技术实现通过虚拟存储技术实现 用户在编制程序时,不
12、应该受内存容量限制,所用户在编制程序时,不应该受内存容量限制,所以要采用一定技术来以要采用一定技术来扩充扩充内存的容量,使用户得到内存的容量,使用户得到比实际内存容量大的多的内存空间。比实际内存容量大的多的内存空间。内存内存“扩充扩充”具体实现是在硬件支持下,软硬件相互协作,将具体实现是在硬件支持下,软硬件相互协作,将内存和外存结合起来统一使用。通过这种方法把内内存和外存结合起来统一使用。通过这种方法把内存扩充,使用户在编制程序时不受内存限制。存扩充,使用户在编制程序时不受内存限制。5.地址映射(地址重定位,地址变换)地址映射(地址重定位,地址变换)(1)逻辑地址(相对地址,虚地址)逻辑地址(
13、相对地址,虚地址)(2)物理地址(绝对地址,实地址)物理地址(绝对地址,实地址)(3)地址映射地址映射(1)逻辑地址(相对地址,虚地址)逻辑地址(相对地址,虚地址)用户的程序经过汇编或编译后形成目标代码,用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式,其首地址为目标代码通常采用相对地址的形式,其首地址为0,其余指令中的地址都相对于首地址而编址。,其余指令中的地址都相对于首地址而编址。不能用逻辑地址在内存中读取信息。不能用逻辑地址在内存中读取信息。(2)物理地址(绝对地址,实地址)物理地址(绝对地址,实地址)内存中存储单元的地址,可直接寻址。内存中存储单元的地址,可直接寻
14、址。(3)地址映射地址映射 为了保证为了保证CPU执行指令时可正确访问存储单元,执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址,这一过程称为地址映射。接寻址的物理地址,这一过程称为地址映射。地址映射地址映射地址映射地址映射BA=1000BA=1000BA=1000BA=1000Load A 200Load A 200Load A 200Load A 200 3456 3456 3456 3456 。1200120012001200物理地址空间物理地址空间物理地址空间物理地址空间Load A data1Loa
15、d A data1Load A data1Load A data1data1 3456data1 3456data1 3456data1 3456源程序源程序源程序源程序Load A 200Load A 200Load A 200Load A 200 3456 3456 3456 34560 0 0 0100100100100200200200200编译连接编译连接编译连接编译连接逻辑地址空间逻辑地址空间逻辑地址空间逻辑地址空间0100200300.LOAD A 2003456逻辑地址空间逻辑地址空间110012001300物理地址空间物理地址空间200VR+1000BR*重定位和保护重定位和
16、保护 多道程序导致了分区的产生,而分区也导致了多道程序导致了分区的产生,而分区也导致了多道程序导致了分区的产生,而分区也导致了多道程序导致了分区的产生,而分区也导致了新的问题,即程序的重新定位和保护。新的问题,即程序的重新定位和保护。新的问题,即程序的重新定位和保护。新的问题,即程序的重新定位和保护。如果多个作业都是为某如果多个作业都是为某如果多个作业都是为某如果多个作业都是为某一一一一个程序服务,当主程序个程序服务,当主程序个程序服务,当主程序个程序服务,当主程序调用这些作业的时候,就需要定位到这些作业,保调用这些作业的时候,就需要定位到这些作业,保调用这些作业的时候,就需要定位到这些作业,
17、保调用这些作业的时候,就需要定位到这些作业,保证程序的运行(主函数和分别编译好的子函数)。证程序的运行(主函数和分别编译好的子函数)。证程序的运行(主函数和分别编译好的子函数)。证程序的运行(主函数和分别编译好的子函数)。这时,链接的时候,链接器按照我们的分区机制来这时,链接的时候,链接器按照我们的分区机制来这时,链接的时候,链接器按照我们的分区机制来这时,链接的时候,链接器按照我们的分区机制来定位程序。定位程序。定位程序。定位程序。定位和保护的常见方法:定位和保护的常见方法:定位和保护的常见方法:定位和保护的常见方法:原因原因:当程序装入内存时当程序装入内存时,操作系统要为该程序分操作系统要
18、为该程序分配一个合适的内存空间,由于程序的逻辑地址与配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致分配到内存物理地址不一致,而而CPU执行指令时,执行指令时,是按物理地址进行的,所以要进行地址转换。是按物理地址进行的,所以要进行地址转换。静态重定位静态重定位 当用户程序被装入内存时,一次性实现逻辑当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在地址到物理地址的转换,以后不再转换(一般在装入内存时由软件完成)。装入内存时由软件完成)。动态重定位动态重定位 在程序运行过程中要访问数据时再进行地址变在程序运行过程中要访问数据时再进行地址变换(即在逐
19、条指令执行时完成地址映射。一般为了换(即在逐条指令执行时完成地址映射。一般为了提高效率,此工作由硬件地址映射机制来完成。硬提高效率,此工作由硬件地址映射机制来完成。硬件支持,软硬件结合完成)。件支持,软硬件结合完成)。硬件上需要一对寄存器的支持。硬件上需要一对寄存器的支持。4.1 基本的内存管理基本的内存管理在运行时进程可以在内存和磁盘之间进行移在运行时进程可以在内存和磁盘之间进行移动(交换和分页技术)的系统;动(交换和分页技术)的系统;运行时进程不能够移动的系统,较为简单。运行时进程不能够移动的系统,较为简单。交换和分页技术的目的是由于没有足交换和分页技术的目的是由于没有足够的主存来同时容纳
20、所有的进程而被引入。够的主存来同时容纳所有的进程而被引入。随着硬件的发展,现有的良好的管理方案也随着硬件的发展,现有的良好的管理方案也会可能变成过时的技术而被淘汰。会可能变成过时的技术而被淘汰。无交换和分页的单道程序无交换和分页的单道程序 此方案是指同一个时刻和操作系统共享存储器。此方案是指同一个时刻和操作系统共享存储器。此方案是指同一个时刻和操作系统共享存储器。此方案是指同一个时刻和操作系统共享存储器。用户程序用户程序用户程序用户程序位于位于位于位于RAMRAM中的中的中的中的操作系统操作系统操作系统操作系统0 xFFF.0 xFFF.0 0位于位于位于位于RAMRAM中的中的中的中的操作系
21、统操作系统操作系统操作系统用户程序用户程序用户程序用户程序0 0ROMROM中的中的中的中的设备驱动程序设备驱动程序设备驱动程序设备驱动程序用户程序用户程序用户程序用户程序位于位于位于位于RAMRAM中的中的中的中的操作系统操作系统操作系统操作系统0 0A AB BC C 对于对于对于对于A A图,操作系统位于主存最底部的图,操作系统位于主存最底部的图,操作系统位于主存最底部的图,操作系统位于主存最底部的RAMRAM,即随机存取存储器中,用户程序位于主存的上部。即随机存取存储器中,用户程序位于主存的上部。即随机存取存储器中,用户程序位于主存的上部。即随机存取存储器中,用户程序位于主存的上部。对
22、于对于对于对于B B图,操作系统位于主存最高端的只读存图,操作系统位于主存最高端的只读存图,操作系统位于主存最高端的只读存图,操作系统位于主存最高端的只读存储器里(储器里(储器里(储器里(ROMROM),(其实本身属于一种映像(其实本身属于一种映像(其实本身属于一种映像(其实本身属于一种映像区域,映像了主板上的基本的输入输出系统)。区域,映像了主板上的基本的输入输出系统)。区域,映像了主板上的基本的输入输出系统)。区域,映像了主板上的基本的输入输出系统)。对于对于对于对于C C图,设备的驱动程序位于内存最高端的图,设备的驱动程序位于内存最高端的图,设备的驱动程序位于内存最高端的图,设备的驱动程
23、序位于内存最高端的ROMROM中,操作系统的其余部分位于低端的中,操作系统的其余部分位于低端的中,操作系统的其余部分位于低端的中,操作系统的其余部分位于低端的RAMRAM中,中,中,中,中间是用户的应用程序。如中间是用户的应用程序。如中间是用户的应用程序。如中间是用户的应用程序。如MS-DOSMS-DOS系统。系统。系统。系统。对于对于对于对于IBMIBM操作系统,系统位于操作系统,系统位于操作系统,系统位于操作系统,系统位于ROMROM中的部分即中的部分即中的部分即中的部分即为为为为BIOSBIOS。对于这种方式,不管是哪一个图,操作对于这种方式,不管是哪一个图,操作系统每次把需要的程序从磁
24、盘复制到存储系统每次把需要的程序从磁盘复制到存储器里并执行,当程序结束时,系统提示结器里并执行,当程序结束时,系统提示结束,当有新的命令时,系统加载新的程序束,当有新的命令时,系统加载新的程序到存储器中,覆盖原来的程序,继续新的到存储器中,覆盖原来的程序,继续新的执行。执行。可以满足早期一般的小型的操作系统的可以满足早期一般的小型的操作系统的需求,但随着硬件性能的提高,这种方式需求,但随着硬件性能的提高,这种方式逐渐被淘汰。逐渐被淘汰。4.1.2 固定分区的多道程序固定分区的多道程序 对于常见的系统,我们希望能够支持更多的对于常见的系统,我们希望能够支持更多的对于常见的系统,我们希望能够支持更
25、多的对于常见的系统,我们希望能够支持更多的程序,当某个程序处于等待程序,当某个程序处于等待程序,当某个程序处于等待程序,当某个程序处于等待I/OI/O的时候,可以让的时候,可以让的时候,可以让的时候,可以让CPUCPU为别的程序服务,来提高系统整体的性能。为别的程序服务,来提高系统整体的性能。为别的程序服务,来提高系统整体的性能。为别的程序服务,来提高系统整体的性能。因此可以用划分分区的方法来同时加载多个因此可以用划分分区的方法来同时加载多个因此可以用划分分区的方法来同时加载多个因此可以用划分分区的方法来同时加载多个程序,可以把主存分为几个大小不同的分区,根程序,可以把主存分为几个大小不同的分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 设计 实现 第四
限制150内