重点知识点
- 1 内存
- 1.1 内存的基础知识
- 1.1.1 内存定义、作用
- 1.1.2 指令的工作原理
- 1.1.3 三种装入策略
- 1.1.4 从写程序到程序运行
- 1.1.5 链接的三种方式
- 1.1.6 总结
- 1.2 内存管理
- 1.2.1 内存空间的分配与回收
- a) 连续分配管理
- b) 非连续分配管理
- 1) 基本分页存储管理
- 2) 基本分段存储管理
- 3) 段页式存储管理
- 1.2.2 内存空间的扩充
- a) 覆盖技术
- b) 交换技术
- c) 虚拟存储技术
- 1.2.3 地址转换
- 1.2.4 内存保护
- 2 文件
- 2.1 内存映射文件
- 2.1.1 定义
- 2.1.2 传统文件访问方式
- 2.1.3 内存映射文件访问方式
- 2.2 文件管理
- 3 I/O
- 4 缓冲区,磁盘
1 内存
1.1 内存的基础知识
1.1.1 内存定义、作用
内存可存放数据。程序执行前需要先放到内存中才能被CPU处理----缓和CPU和硬盘之间速度矛盾
1.1.2 指令的工作原理
1.1.3 三种装入策略
装入策略是为了解决将指令中的逻辑地址(相对地址)转换为物理地址(绝对地址)。
有三种装入策略:1. 绝对装入;2.可重定位装入(静态重定位);3.动态运行时装入(动态重定位)
- 绝对装入
- 可重定位装入
- 动态运行时装入
1.1.4 从写程序到程序运行
在Windows系统重装入模块就是.exe文件
1.1.5 链接的三种方式
链接指的是将编译后的二进制文件与引用的三方库二进制文件,链接成一个.exe文件(也就是装入模块)。
1.1.6 总结
1.2 内存管理
1.2.1 内存空间的分配与回收
*** 操作系统负责内存空间的分配与回收
内存空间的分配与回收主要有两种:连续分配管理、非连续分配管理。
a) 连续分配管理
连续分配:指为用户进程分配的必须是一个连续的内存空间。
动态分区分配算法
b) 非连续分配管理
有三种方法:基本分页存储管理、基本分段存储管理、段页式存储管理;
1) 基本分页存储管理
2) 基本分段存储管理
3) 段页式存储管理
是两种方法的结合
1.2.2 内存空间的扩充
*** 操作系统需要提供某种技术从逻辑上对内存空间进行扩充
因为电脑内存有限16g,有程序超过80g大小,所以就需要内存空间扩充技术。
内存扩充的技术有三种:覆盖技术、交换技术、虚拟存储技术;
a) 覆盖技术
缺点:必须由程序员声明覆盖结构,操作系统完成自动覆盖。对用户不透明,增加了用户编程负担。覆盖技术只用于早期的操作系统,现在已经被淘汰。
b) 交换技术
c) 虚拟存储技术
虚拟内存技术
- 定义与特征
- 实现虚拟内存技术
虚拟内存技术的实现是建立在离散分配的内存管理方式基础上。
离散分配的内存管理方式有三种:基本分页存储管理、基本分段存储管理、基本段页式存储管理;
由此衍生出三种虚拟内存实现方法:请求分页存储管理、请求分段存储管理、请求段页式存储管理;
- 三种虚拟内存实现方法
请求分页管理方式:
1.2.3 地址转换
操作系统需要提供地址转换功能,负责程序的逻辑地址与物理地址的转换
原因:为了使编程更方便,程序员写程序应该只需关心指令、数据的逻辑地址。而逻辑地址到物理地址的转换(这个过程称为地址重定位)应该由操作系统负责,这样就保证了程序员写程序时不需要关注物理内存的实际情况。(和封装的思想很像,就是把负责的实现过程封闭起来,别人只需要调用,不需要考虑内部实现逻辑)
拓展:有三种装入方式可以实现地址重定位
1.2.4 内存保护
操作系统需要提供内存保护功能。保证各进程在各自存储空间内运行,互不干扰。
内存保护的两种方法:
- 设置一对上限、下限寄存器。
- 采用重定位寄存器和界地址寄存器
2 文件
2.1 内存映射文件
2.1.1 定义
内存映射文件(Memory-Mapped Files)是操作系统向上层程序员提供的功能(系统调用),方便程序员访问文件数据,方便多个进程共享同一个文件数据;