操作系统原理课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 优点:易于管理,便于用户的了解和使用。
• 缺点:
– 由于每次只能有一个作业进入内存,故它不适用于多 道程序设计,整个系统的工作效率不高,资源利用率 底下。
– 只要作业比用户区小,那么在用户区里就会形成碎片, 造成内存储器资源的浪费。
– 若用户作业的相对地址空间比用户区大,那么该作业 就无法运行。
(MR)=(BR)+(VR)
2.2 基本存储管理方法
2.2.1 单一连续分区存储管理
基本思想:内存分为两个区域:系统区,用户区。 应用程序装入到用户区,可使用用户区全部空间。 最简单,适用于单用户、单任务的OS;单用户系 统在一段时间内,只有一个进程在内存。
特点
(1)系统总是把整个用户区分配给一个用户使用。 (2)实际上,内存用户区又被分为“使用区”和“空闲
2. 静态重定位方式
源程序经编译和连接后生成目标代码中的地址是以 0为起始地址的相对地址。
当需要执行时,由装入程序运行重定位程序模块, 根据作业在本次分配到的内存起始地址,将可执行目标 代码装到指定内存地址中,并修改所有有关地址部分的 值。
修改的方式是对每一个逻辑地址的值加上内存区首 地址(或称基地址)值。
当有一用户程序要装入时,由内存分配程序检索该 表,从中找出一个能满足要求的、尚未分配的分区,将 之分配给该应用程序,然后将该表项中的状态置为“已 分配”;若未找到大小足够的分区,则拒绝为该用户程 序分配内存。
区”两部分。 在操作系统中,把分配给用户、但又未使用的区域称为 “内部碎片”。 (3)由于任何时刻内存的用户区中只有一个作业运行, 因此这种系统只使用于单用户的情况。 (4)进入内存的作业,独享系统中的所有资源,包括内 存中的整个用户区。
特点
(5)由于整个用户区都分配给了一个用户使用,因此作 业进入用户区后,没有移动的必要。采用这种存储分配 策略时,将对用户程序实行静态重定位。
2.2.2 固定分区存储管理
• 把内存区固定地划分为若干个大小相等(和不等)的 连续分区。每个分区装一个且只能装一个作业,分区 的划分原则一般由系统操作员或操作系统决定,分区 一旦划分结束,在整个执行过程中每个分区的长度和 内存的总分区个数将保持不变。
• 分区大小相等:只适合于多个相同程序的并发执行 (处理多个类型相同的对象)。
么程序指令中的地址就不再反映所在的存储位置了,除非 重新进行地址重定位。
3. 动态重定位方式
采用动态重定位方式,将程序在装入内存时,不必修 改程序的逻辑地址值,程序执行期间在访问内存之前, 再实时地将逻辑地址变换成物理地址。动态重定位要靠 硬件地址变换机构实现。 ① 当程序开始执行时,系统将程序在内存的起始地址送 入地址变换机构中的基地址寄存器BR中。 ② 在执行指令时,若涉及到逻辑地址,则先将该地址送 入虚拟地址寄存器 VR,再将BR 和 VR 中的值相加后送 入地址寄存器 MR,并按 MR 中的值访问内存。
2.1 存储管理基础
2.1.1 虚拟地址与物理地址 内存
库
编 译程 序产 生 的目 标模 块
链接 程序
装 入模 块
装入 程序
…
第 一步
第 二步
第 三步
内存储器是由一个个存储单元组成,一个存储单元可存放 若干个二进制的位(bit),8个二进制位被称为一个字节 (Byte)。 内存中的存储单元按一定顺序进行编号,每个单元所对应 的编号,称为该单元的单元地址。
• 当程序装入内存时, 操作系统要为该程序分配一个合适 的内存空间,由于程序的逻辑地址与分配到内存物理 地址不一致, 而CPU执行指令时,是按物理地址进行 的,所以要进行地址转换。
2.1.2 地址定位方式
1. 固定定位方式
由程序员在编写程序时或由编译连接程序对源程序进 行编译连接时,直接指定程序在执行时访问的实际存储器 地址的方式称为固定定位方式。此种定位方式一般只适合 于单板机或单用户系统。在多道程序环境下,应保证各个 作业的地址互不重叠,这就比较困难了。
• 分区大小不等:多个小分区、适量的中等分区、少量 的大分区。根据程序的大小,分配当前空闲的、适当 大小的分区。
Operating System
8M 8M
8M 8M
8M 固定分区(大小相同)
Operating System 8M 2M 4M 6M 8M
8M
12 M
固定分区(多种大小)
内存分配
为了便于内存分配,通常将分区按大小进行排队, 并为之建立一张分区说明表,其中各表项包括每个分区 的起始地址、大小及状态(是否已分配)。
(6)实行静态重定位,并不能阻止用户有意无意地通过 不恰当地指令闯入操作系统所占用的存储区域,如何阻 止对操作系统的侵扰,就是所谓的“存储保护”问题。 用于存储保护的专用寄存器-“界限寄存器”
➢ 存储保护过程:在用户态下,对内存的每一次访问,都 要在硬件的控制下,与界限寄存器中的内容进行比较。 一旦发现该访问的地址小于界限寄存器中的地址,就会 产生“地址越界”中断,阻止这次访问的进行。
第二章 存储管理
2.1 存储管理基础 2.2 基本存储管理方法 2.3 可变分区存储管理方法 2.4 内存扩充技术 2.5 纯分页的存储管理 2.6 请求分页系统 2.7 段式存储管理 2.8 段页式存储管理 2.9 Linux存储管理
存储器可分为:内存储器和外存储器;
内存储器:可以被CPU直接访问。 外存储器:不可以被CPU直接访问,外存与CPU 之间只能够在输入输出控制系统的管理下,进行信 息交换。
物理地址(绝对地址,实地址):内存中存储单元的地址。 物理地址可直接寻址。
逻辑地址(相对地址,虚地址):用户的程序经过汇编或 编译后形成目标代码,目标代码通常采用相对地址的形式。
其首地址为0,其源自文库指令中的地址都相对于首地址来编 址。
不能用逻辑地址在内存中读取信息。
地址重定位
• 地址重定位(地址映射):将用户程序中的逻辑地址 转换为运行时由机器直接寻址的物理地址。
静态重定位的特点
(1)静态重定位是在程序运行之前完成地址重定位工作的; (2)静态重定位由软件实现,无须硬件提供支持; (3)实行静态重定位时,地址重定位工作是在程序装入时被
一次集中完成的; (4)绝对地址空间里的目标程序与原相对地址空间里的目标
程序面目已不相同,因为前者进行了地址调整; (5)实施静态重定位后,若用户程序在内存中做了移动,那
• 缺点:
– 由于每次只能有一个作业进入内存,故它不适用于多 道程序设计,整个系统的工作效率不高,资源利用率 底下。
– 只要作业比用户区小,那么在用户区里就会形成碎片, 造成内存储器资源的浪费。
– 若用户作业的相对地址空间比用户区大,那么该作业 就无法运行。
(MR)=(BR)+(VR)
2.2 基本存储管理方法
2.2.1 单一连续分区存储管理
基本思想:内存分为两个区域:系统区,用户区。 应用程序装入到用户区,可使用用户区全部空间。 最简单,适用于单用户、单任务的OS;单用户系 统在一段时间内,只有一个进程在内存。
特点
(1)系统总是把整个用户区分配给一个用户使用。 (2)实际上,内存用户区又被分为“使用区”和“空闲
2. 静态重定位方式
源程序经编译和连接后生成目标代码中的地址是以 0为起始地址的相对地址。
当需要执行时,由装入程序运行重定位程序模块, 根据作业在本次分配到的内存起始地址,将可执行目标 代码装到指定内存地址中,并修改所有有关地址部分的 值。
修改的方式是对每一个逻辑地址的值加上内存区首 地址(或称基地址)值。
当有一用户程序要装入时,由内存分配程序检索该 表,从中找出一个能满足要求的、尚未分配的分区,将 之分配给该应用程序,然后将该表项中的状态置为“已 分配”;若未找到大小足够的分区,则拒绝为该用户程 序分配内存。
区”两部分。 在操作系统中,把分配给用户、但又未使用的区域称为 “内部碎片”。 (3)由于任何时刻内存的用户区中只有一个作业运行, 因此这种系统只使用于单用户的情况。 (4)进入内存的作业,独享系统中的所有资源,包括内 存中的整个用户区。
特点
(5)由于整个用户区都分配给了一个用户使用,因此作 业进入用户区后,没有移动的必要。采用这种存储分配 策略时,将对用户程序实行静态重定位。
2.2.2 固定分区存储管理
• 把内存区固定地划分为若干个大小相等(和不等)的 连续分区。每个分区装一个且只能装一个作业,分区 的划分原则一般由系统操作员或操作系统决定,分区 一旦划分结束,在整个执行过程中每个分区的长度和 内存的总分区个数将保持不变。
• 分区大小相等:只适合于多个相同程序的并发执行 (处理多个类型相同的对象)。
么程序指令中的地址就不再反映所在的存储位置了,除非 重新进行地址重定位。
3. 动态重定位方式
采用动态重定位方式,将程序在装入内存时,不必修 改程序的逻辑地址值,程序执行期间在访问内存之前, 再实时地将逻辑地址变换成物理地址。动态重定位要靠 硬件地址变换机构实现。 ① 当程序开始执行时,系统将程序在内存的起始地址送 入地址变换机构中的基地址寄存器BR中。 ② 在执行指令时,若涉及到逻辑地址,则先将该地址送 入虚拟地址寄存器 VR,再将BR 和 VR 中的值相加后送 入地址寄存器 MR,并按 MR 中的值访问内存。
2.1 存储管理基础
2.1.1 虚拟地址与物理地址 内存
库
编 译程 序产 生 的目 标模 块
链接 程序
装 入模 块
装入 程序
…
第 一步
第 二步
第 三步
内存储器是由一个个存储单元组成,一个存储单元可存放 若干个二进制的位(bit),8个二进制位被称为一个字节 (Byte)。 内存中的存储单元按一定顺序进行编号,每个单元所对应 的编号,称为该单元的单元地址。
• 当程序装入内存时, 操作系统要为该程序分配一个合适 的内存空间,由于程序的逻辑地址与分配到内存物理 地址不一致, 而CPU执行指令时,是按物理地址进行 的,所以要进行地址转换。
2.1.2 地址定位方式
1. 固定定位方式
由程序员在编写程序时或由编译连接程序对源程序进 行编译连接时,直接指定程序在执行时访问的实际存储器 地址的方式称为固定定位方式。此种定位方式一般只适合 于单板机或单用户系统。在多道程序环境下,应保证各个 作业的地址互不重叠,这就比较困难了。
• 分区大小不等:多个小分区、适量的中等分区、少量 的大分区。根据程序的大小,分配当前空闲的、适当 大小的分区。
Operating System
8M 8M
8M 8M
8M 固定分区(大小相同)
Operating System 8M 2M 4M 6M 8M
8M
12 M
固定分区(多种大小)
内存分配
为了便于内存分配,通常将分区按大小进行排队, 并为之建立一张分区说明表,其中各表项包括每个分区 的起始地址、大小及状态(是否已分配)。
(6)实行静态重定位,并不能阻止用户有意无意地通过 不恰当地指令闯入操作系统所占用的存储区域,如何阻 止对操作系统的侵扰,就是所谓的“存储保护”问题。 用于存储保护的专用寄存器-“界限寄存器”
➢ 存储保护过程:在用户态下,对内存的每一次访问,都 要在硬件的控制下,与界限寄存器中的内容进行比较。 一旦发现该访问的地址小于界限寄存器中的地址,就会 产生“地址越界”中断,阻止这次访问的进行。
第二章 存储管理
2.1 存储管理基础 2.2 基本存储管理方法 2.3 可变分区存储管理方法 2.4 内存扩充技术 2.5 纯分页的存储管理 2.6 请求分页系统 2.7 段式存储管理 2.8 段页式存储管理 2.9 Linux存储管理
存储器可分为:内存储器和外存储器;
内存储器:可以被CPU直接访问。 外存储器:不可以被CPU直接访问,外存与CPU 之间只能够在输入输出控制系统的管理下,进行信 息交换。
物理地址(绝对地址,实地址):内存中存储单元的地址。 物理地址可直接寻址。
逻辑地址(相对地址,虚地址):用户的程序经过汇编或 编译后形成目标代码,目标代码通常采用相对地址的形式。
其首地址为0,其源自文库指令中的地址都相对于首地址来编 址。
不能用逻辑地址在内存中读取信息。
地址重定位
• 地址重定位(地址映射):将用户程序中的逻辑地址 转换为运行时由机器直接寻址的物理地址。
静态重定位的特点
(1)静态重定位是在程序运行之前完成地址重定位工作的; (2)静态重定位由软件实现,无须硬件提供支持; (3)实行静态重定位时,地址重定位工作是在程序装入时被
一次集中完成的; (4)绝对地址空间里的目标程序与原相对地址空间里的目标
程序面目已不相同,因为前者进行了地址调整; (5)实施静态重定位后,若用户程序在内存中做了移动,那