汤小丹 操作系统 第四版 第四章 课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3) 装入,由装入程序(Loader)将装入模块装入内存。
14
第四章 存 储 器 管 理
图4-2示出了这样的三步过程。本节将扼要阐述程序(含 数据)的链接和装入过程。
图4-2 对用户程序的处理步骤
15
第四章 存 储 器 管 理
4.2.1 程序的装入 为了阐述上的方便,我们先介绍一个无需进行链接的单
13
第四章 存 储 器 管 理
4.2 程序的装入和链接
用户程序要在系统中运行,必须先将它装入内存,然后 再将其转变为一个可以执行的程序,通常都要经过以下几个 步骤:
(1) 编译,由编译程序(Compiler)对用户源程序进行编译, 形成若干个目标模块(Object Module);
(2) 链接,由链接程序(Linker)将编译后形成的一组目标 模块以及它们所需要的库函数链接在一起,形成一个完整的 装入模块(Load Module);
个目标模块的装入过程。该目标模块也就是装入模块。在将 一个装入模块装入内存时,可以有如下三种装入方式:
1. 绝对装入方式(Absolute Loading Mode) 当计算机系统很小,且仅能运行单道程序时,完全有可 能知道程序将驻留在内存的什么位置。此时可以采用绝对装 入方式。用户程序经编译后,将产生绝对地址(即物理地址) 的目标代码。 优点:装入过程简单 缺点:过于依赖于硬件结构,不适于多道程序系统
26
第四章 存 储 器 管 理
1. 划分分区的方法 可用下述两种方法将内存的用户空间划分为若干个
固定大小的分区: (1) 分区大小相等(指所有的内存分区大小相等)。 只适合于多个相同程序的并发执行,缺乏灵活性 (2) 分区大小不等。多个小分区,适量的中等分区、少量 的大分区 优点:易于实现,开销小 缺点:内碎片造成浪费,分区总数固定,限制了并发执 行的程序数目。
A small number of micros use magnetic bubbles for main memory rather than microprocessor chips;this type of memory is nonvolatile,meaning that data stored in it can be retained for some time even after the power is shut off.
5
第四章 存 储 器 管 理
2. 可执行存储器 在计算机系统的存储层次中,寄存器和主存储器又被称 为可执行存储器。对于存放于其中的信息,与存放于辅存中 的信息相比较而言,计算机所采用的访问机制是不同的,所 需耗费的时间也是不同的。进程可以在很少的时钟周期内使 用一条load或store指令对可执行存储器进行访问。但对辅存 的访问则需要通过I/O设备实现,因此,在访问中将涉及到 中断、设备驱动程序以及物理设备的运行,所需耗费的时间 远远高于访问可执行存储器的时间,一般相差3个数量级甚 至更多。
9
第四章 存 储 器 管 理 10
第四章 存 储 器 管 理
2. 磁盘缓存 由于目前磁盘的I/O速度远低于对主存的访问速度,为 了缓和两者之间在速度上的不匹配,而设置了磁盘缓存,主 要用于暂时存放频繁使用的一部分磁盘数据和信息,以减少 访问磁盘的次数。但磁盘缓存与高速缓存不同,它本身并不 是一种实际存在的存储器,而是利用主存中的部分存储空间 暂时存放从磁盘中读出(或写入)的信息。主存也可以看作是 辅存的高速缓存,因为,辅存中的数据必须复制到主存方能 使用,反之,数据也必须先存在主存中,才能输出到辅存。
24
第四章 存 储 器 管 理
4.3.1 单一连续分配 在单道程序环境下,当时的存储器管理方式是把内存分
为系统区和用户区两部分,系统区仅提供给OS使用,它通常 是放在内存的低址部分。而在用户区内存中,仅装有一道用 户程序,即整个内存的用户空间由该程序独占。这样的存储 器分配方式被称为单一连续分配方式。
第四章 存 储 器 管 理
第四章 存 储 器 管 理
4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配存储管理方式 4.4 对换(Swapping) 4.5 分页存储管理方式 4.6 分段存储管理方式 习题
1
第四章 存 储 器 管 理
4.1 存储器的层次结构
在计算机执行时,几乎每一条指令都涉及对存储器的访 问,因此要求对存储器的访问速度能跟得上处理机的运行速 度。或者说,存储器的速度必须非常快,能与处理机的速度 相匹配,否则会明显地影响到处理机的运行。此外还要求存 储器具有非常大的容量,而且存储器的价格还应很便宜。
22
第四章 存 储 器 管 理
3. 运行时动态链接(Run-time Dynamic Linking) 在许多情况下,应用程序在运行时,每次要运行的模块 可能是不相同的。但由于事先无法知道本次要运行哪些模块, 故只能是将所有可能要运行到的模块全部都装入内存,并在 装入时全部链接在一起。显然这是低效的,因为往往会有部 分目标模块根本就不运行。比较典型的例子是作为错误处理 用的目标模块,如果程序在整个运行过程中都不出现错误, 则显然就不会用到该模块。 优点:加快装入过程、节省内存空间
16
第四章 存 储 器 管 理
2. 可重定位装入方式(Relocation Loading Mode) 绝对装入方式只能将目标模块装入到内存中事先指定的 位置,这只适用于单道程序环境。而在多道程序环境下,编 译程序不可能预知经编译后所得到的目标模块应放在内存的 何处。因此,对于用户程序编译所形成的若干个目标模块, 它们的起始地址通常都是从0开始的,程序中的其它地址也 都是相对于起始地址计算的。 优点:不需要硬件支持,可以装入有限多道程序 缺点:一个程序通常需要占用连续的内存空间,程序装入内 存后不能移动,不能实现共享
12
第四章 存 储 器 管 理
A CPU has three componts:the control unit,the arithmeticlogic unit,and main memory or primary storage.
Primary storage,or main memory,holds instructions and data needed for puter main memory is typically on computer chips that are volatile,which means that data held there disappears when the computer is turned off or loses power.
2
第四章 存 储 器 管 理
4.1.1 多层结构的存储器系统 1. 存储器的多层结构 对于通用计算机而言,存储层次至少应具有三级:最高
层为CPU寄存器,中间为主存,最底层是辅存。在较高档的 计算机中,还可以根据具体的功能细分为寄存器、高速缓存、 主存储器、磁盘缓存、固定磁盘、可移动存储介质等6层。 如图4-1所示。
17
第四章 存 储 器 管 理
图4-3 作业装入内存时的情况
18
第四章 存 储 器 管 理
3. 动态运行时的装入方式(Dynamic Run-time Loading) 可重定位装入方式可将装入模块装入到内存中任何允许 的位置,故可用于多道程序环境。但该方式并不允许程序运 行时在内存中移动位置。 优点:OS可以将一个程序分散放于不连续的内存空间,可以 移动程序,有利于实现共享 缺点:需要硬件支持,OS实现较复杂
(1) 对相对地址进行修改。 (2) 变换外部调用符号。
20
第四章 存 储 器 管 理
图4-4 程序链接示意图
21
第四章 存 储 器 管 理
2. 装入时动态链接(Load-time Dynamic Linking) 这是指将用户源程序编译后所得到的一组目标模块,在 装入内存时,采用边装入边链接的链接方式。即在装入一个 目标模块时,若发生一个外部模块调用事件,将引起装入程 序去找出相应的外部目标模块,并将它装入内存,还要按照 图4-4所示的方式修改目标模块中的相对地址。装入时动态 链接方式有以下优点: (1) 便于修改和更新。 (2) 便于实现对目标模块的共享。
19
第四章 存 储 器 管 理
4.2.2 程序的链接 1. 静态链接(Static Linking)方式 在程序运行之前,先将各目标模块及它们所需的库函数
链接成一个完整的装配模块,以后不再拆开。在图4-4(a)中 示出了经过编译后所得到的三个目标模块A、B、C,它们的 长度分别为L、M和N。在模块A中有一条语句CALL B,用 于调用模块B。在模块B中有一条语句CALL C,用于调用模 块C。B和C都属于外部调用符号,在将这几个目标模块装配 成一个装入模块时,须解决以下两个问题:
3
第四章 存 储 器 管 理
图4-1 计算机系统存储层次示意
4
第四章 存 储 器 管 理
在存储器层次中,层次越高(越靠近CPU),存储介质 的访问速度越快,价格也越高,相对所配置的存储容量也越 小。其中,寄存器,高速缓存、主存储器和磁盘缓存均属于 操作系统存储管理的管辖范畴,掉电后它们中存储的信息不 再存在。而底层的固定磁盘和可移动存储介质则属于设备管 理的管辖范畴,它们存储的信息将被长期保存。
11
第四章 存 储 器 管 理
Primary storage is used for temporarily storing programs and data while processing is occurring.Remember,however,that primary storage is volatile--whatever was in it will disappear when the power goes off.Long-term,semi-permanent data storage is referred to as secondary storage.
23
第四章 存 储 器 管 理
4.3 连续分配存储管理方式
为了将用户程序装入内存,必须为它分配一定大小的内 存空间。连续分配方式是最早出现的一种存储器分配方式, 曾被广泛应用于上世纪60~80年代的OS中,该分配方式为一 个用户程序分配一个连续的内存空间,即程序中代码或数据 的逻辑地址相邻,体现在内存空间分配时物理地址的相邻。
用于保存进程运行时的程序和数据,也称可执行存储器。由 于主存储器访问速度远低于CPU执行指令的速度,为缓和这 一矛盾,在计算机系统中引入了寄存器和高速缓存。
8
第四章 存 储 器 管 理
2. 寄存器 寄存器具有与处理机相同的速度,故对寄存器的访问速 度最快,完全能与CPU协调工作,但价格却十分昂贵,因此 容量不可能做得很大。
Secondary storage is recorded magnetically and does not disappear when the power goes off.Disk and magetic tapes are examples of secondary storage media that can hold programs and data permanently,ready to be called into the CPU's memory when needed
6
第四章 存 储 器 管 理
注意:操作系统的存储管理负责对可执行存储器的分配 、回收,以及提供在存储层次间数据移动的管理机制,例如 主存与磁盘缓存、高速缓存与主存间的数据移动等。而设备 和文件管理则根据用户的需求,提供对辅存的管理机制。
7
第四章 存 储 器 ቤተ መጻሕፍቲ ባይዱ 理
4.1.2 主存储器与寄存器 1. 主存储器 主存储器简称内存或主存,是计算机系统中的主要部件,
25
第四章 存 储 器 管 理
4.3.2 固定分区分配 把内存分为一些大小相等或不等的分区,每个应用进程
占用一个分区。操作系统占用其中一个分区。 特点:适用于多道程序系统和分时系统,支持多个程序并发 执行。 问题:可能存在内碎片 内碎片:占用分区之内未被利用的空间 外碎片:占用分区之间难以利用的空闲分区(通常是小空闲 分区)
14
第四章 存 储 器 管 理
图4-2示出了这样的三步过程。本节将扼要阐述程序(含 数据)的链接和装入过程。
图4-2 对用户程序的处理步骤
15
第四章 存 储 器 管 理
4.2.1 程序的装入 为了阐述上的方便,我们先介绍一个无需进行链接的单
13
第四章 存 储 器 管 理
4.2 程序的装入和链接
用户程序要在系统中运行,必须先将它装入内存,然后 再将其转变为一个可以执行的程序,通常都要经过以下几个 步骤:
(1) 编译,由编译程序(Compiler)对用户源程序进行编译, 形成若干个目标模块(Object Module);
(2) 链接,由链接程序(Linker)将编译后形成的一组目标 模块以及它们所需要的库函数链接在一起,形成一个完整的 装入模块(Load Module);
个目标模块的装入过程。该目标模块也就是装入模块。在将 一个装入模块装入内存时,可以有如下三种装入方式:
1. 绝对装入方式(Absolute Loading Mode) 当计算机系统很小,且仅能运行单道程序时,完全有可 能知道程序将驻留在内存的什么位置。此时可以采用绝对装 入方式。用户程序经编译后,将产生绝对地址(即物理地址) 的目标代码。 优点:装入过程简单 缺点:过于依赖于硬件结构,不适于多道程序系统
26
第四章 存 储 器 管 理
1. 划分分区的方法 可用下述两种方法将内存的用户空间划分为若干个
固定大小的分区: (1) 分区大小相等(指所有的内存分区大小相等)。 只适合于多个相同程序的并发执行,缺乏灵活性 (2) 分区大小不等。多个小分区,适量的中等分区、少量 的大分区 优点:易于实现,开销小 缺点:内碎片造成浪费,分区总数固定,限制了并发执 行的程序数目。
A small number of micros use magnetic bubbles for main memory rather than microprocessor chips;this type of memory is nonvolatile,meaning that data stored in it can be retained for some time even after the power is shut off.
5
第四章 存 储 器 管 理
2. 可执行存储器 在计算机系统的存储层次中,寄存器和主存储器又被称 为可执行存储器。对于存放于其中的信息,与存放于辅存中 的信息相比较而言,计算机所采用的访问机制是不同的,所 需耗费的时间也是不同的。进程可以在很少的时钟周期内使 用一条load或store指令对可执行存储器进行访问。但对辅存 的访问则需要通过I/O设备实现,因此,在访问中将涉及到 中断、设备驱动程序以及物理设备的运行,所需耗费的时间 远远高于访问可执行存储器的时间,一般相差3个数量级甚 至更多。
9
第四章 存 储 器 管 理 10
第四章 存 储 器 管 理
2. 磁盘缓存 由于目前磁盘的I/O速度远低于对主存的访问速度,为 了缓和两者之间在速度上的不匹配,而设置了磁盘缓存,主 要用于暂时存放频繁使用的一部分磁盘数据和信息,以减少 访问磁盘的次数。但磁盘缓存与高速缓存不同,它本身并不 是一种实际存在的存储器,而是利用主存中的部分存储空间 暂时存放从磁盘中读出(或写入)的信息。主存也可以看作是 辅存的高速缓存,因为,辅存中的数据必须复制到主存方能 使用,反之,数据也必须先存在主存中,才能输出到辅存。
24
第四章 存 储 器 管 理
4.3.1 单一连续分配 在单道程序环境下,当时的存储器管理方式是把内存分
为系统区和用户区两部分,系统区仅提供给OS使用,它通常 是放在内存的低址部分。而在用户区内存中,仅装有一道用 户程序,即整个内存的用户空间由该程序独占。这样的存储 器分配方式被称为单一连续分配方式。
第四章 存 储 器 管 理
第四章 存 储 器 管 理
4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配存储管理方式 4.4 对换(Swapping) 4.5 分页存储管理方式 4.6 分段存储管理方式 习题
1
第四章 存 储 器 管 理
4.1 存储器的层次结构
在计算机执行时,几乎每一条指令都涉及对存储器的访 问,因此要求对存储器的访问速度能跟得上处理机的运行速 度。或者说,存储器的速度必须非常快,能与处理机的速度 相匹配,否则会明显地影响到处理机的运行。此外还要求存 储器具有非常大的容量,而且存储器的价格还应很便宜。
22
第四章 存 储 器 管 理
3. 运行时动态链接(Run-time Dynamic Linking) 在许多情况下,应用程序在运行时,每次要运行的模块 可能是不相同的。但由于事先无法知道本次要运行哪些模块, 故只能是将所有可能要运行到的模块全部都装入内存,并在 装入时全部链接在一起。显然这是低效的,因为往往会有部 分目标模块根本就不运行。比较典型的例子是作为错误处理 用的目标模块,如果程序在整个运行过程中都不出现错误, 则显然就不会用到该模块。 优点:加快装入过程、节省内存空间
16
第四章 存 储 器 管 理
2. 可重定位装入方式(Relocation Loading Mode) 绝对装入方式只能将目标模块装入到内存中事先指定的 位置,这只适用于单道程序环境。而在多道程序环境下,编 译程序不可能预知经编译后所得到的目标模块应放在内存的 何处。因此,对于用户程序编译所形成的若干个目标模块, 它们的起始地址通常都是从0开始的,程序中的其它地址也 都是相对于起始地址计算的。 优点:不需要硬件支持,可以装入有限多道程序 缺点:一个程序通常需要占用连续的内存空间,程序装入内 存后不能移动,不能实现共享
12
第四章 存 储 器 管 理
A CPU has three componts:the control unit,the arithmeticlogic unit,and main memory or primary storage.
Primary storage,or main memory,holds instructions and data needed for puter main memory is typically on computer chips that are volatile,which means that data held there disappears when the computer is turned off or loses power.
2
第四章 存 储 器 管 理
4.1.1 多层结构的存储器系统 1. 存储器的多层结构 对于通用计算机而言,存储层次至少应具有三级:最高
层为CPU寄存器,中间为主存,最底层是辅存。在较高档的 计算机中,还可以根据具体的功能细分为寄存器、高速缓存、 主存储器、磁盘缓存、固定磁盘、可移动存储介质等6层。 如图4-1所示。
17
第四章 存 储 器 管 理
图4-3 作业装入内存时的情况
18
第四章 存 储 器 管 理
3. 动态运行时的装入方式(Dynamic Run-time Loading) 可重定位装入方式可将装入模块装入到内存中任何允许 的位置,故可用于多道程序环境。但该方式并不允许程序运 行时在内存中移动位置。 优点:OS可以将一个程序分散放于不连续的内存空间,可以 移动程序,有利于实现共享 缺点:需要硬件支持,OS实现较复杂
(1) 对相对地址进行修改。 (2) 变换外部调用符号。
20
第四章 存 储 器 管 理
图4-4 程序链接示意图
21
第四章 存 储 器 管 理
2. 装入时动态链接(Load-time Dynamic Linking) 这是指将用户源程序编译后所得到的一组目标模块,在 装入内存时,采用边装入边链接的链接方式。即在装入一个 目标模块时,若发生一个外部模块调用事件,将引起装入程 序去找出相应的外部目标模块,并将它装入内存,还要按照 图4-4所示的方式修改目标模块中的相对地址。装入时动态 链接方式有以下优点: (1) 便于修改和更新。 (2) 便于实现对目标模块的共享。
19
第四章 存 储 器 管 理
4.2.2 程序的链接 1. 静态链接(Static Linking)方式 在程序运行之前,先将各目标模块及它们所需的库函数
链接成一个完整的装配模块,以后不再拆开。在图4-4(a)中 示出了经过编译后所得到的三个目标模块A、B、C,它们的 长度分别为L、M和N。在模块A中有一条语句CALL B,用 于调用模块B。在模块B中有一条语句CALL C,用于调用模 块C。B和C都属于外部调用符号,在将这几个目标模块装配 成一个装入模块时,须解决以下两个问题:
3
第四章 存 储 器 管 理
图4-1 计算机系统存储层次示意
4
第四章 存 储 器 管 理
在存储器层次中,层次越高(越靠近CPU),存储介质 的访问速度越快,价格也越高,相对所配置的存储容量也越 小。其中,寄存器,高速缓存、主存储器和磁盘缓存均属于 操作系统存储管理的管辖范畴,掉电后它们中存储的信息不 再存在。而底层的固定磁盘和可移动存储介质则属于设备管 理的管辖范畴,它们存储的信息将被长期保存。
11
第四章 存 储 器 管 理
Primary storage is used for temporarily storing programs and data while processing is occurring.Remember,however,that primary storage is volatile--whatever was in it will disappear when the power goes off.Long-term,semi-permanent data storage is referred to as secondary storage.
23
第四章 存 储 器 管 理
4.3 连续分配存储管理方式
为了将用户程序装入内存,必须为它分配一定大小的内 存空间。连续分配方式是最早出现的一种存储器分配方式, 曾被广泛应用于上世纪60~80年代的OS中,该分配方式为一 个用户程序分配一个连续的内存空间,即程序中代码或数据 的逻辑地址相邻,体现在内存空间分配时物理地址的相邻。
用于保存进程运行时的程序和数据,也称可执行存储器。由 于主存储器访问速度远低于CPU执行指令的速度,为缓和这 一矛盾,在计算机系统中引入了寄存器和高速缓存。
8
第四章 存 储 器 管 理
2. 寄存器 寄存器具有与处理机相同的速度,故对寄存器的访问速 度最快,完全能与CPU协调工作,但价格却十分昂贵,因此 容量不可能做得很大。
Secondary storage is recorded magnetically and does not disappear when the power goes off.Disk and magetic tapes are examples of secondary storage media that can hold programs and data permanently,ready to be called into the CPU's memory when needed
6
第四章 存 储 器 管 理
注意:操作系统的存储管理负责对可执行存储器的分配 、回收,以及提供在存储层次间数据移动的管理机制,例如 主存与磁盘缓存、高速缓存与主存间的数据移动等。而设备 和文件管理则根据用户的需求,提供对辅存的管理机制。
7
第四章 存 储 器 ቤተ መጻሕፍቲ ባይዱ 理
4.1.2 主存储器与寄存器 1. 主存储器 主存储器简称内存或主存,是计算机系统中的主要部件,
25
第四章 存 储 器 管 理
4.3.2 固定分区分配 把内存分为一些大小相等或不等的分区,每个应用进程
占用一个分区。操作系统占用其中一个分区。 特点:适用于多道程序系统和分时系统,支持多个程序并发 执行。 问题:可能存在内碎片 内碎片:占用分区之内未被利用的空间 外碎片:占用分区之间难以利用的空闲分区(通常是小空闲 分区)