Operating System 笔记(2)
来自清华大学向勇、陈渝教授的操作系统网课
- 2020年10月18日
Operating System 笔记(2)
Chapter 3
3.1 计算机体系结构和内存分配
- 简单讲了讲操作系统的分层结构
- 计算机基本硬件结构:CPU, 内存, 外设
- 关于计算机物理内存的管理:
- CPU寄存器 -> cache miss/fill -> 主存(交换/分页) -> 磁盘
- 主存断电就没了… 但是磁盘断电还会有,因为这是物理层面的储存
- 于计算机物理内存的管理目标:
- 抽象:逻辑地址空间
- 保护:独立地址空间
- 共享:访问相同内存
- 虚拟化:更多的地址空间
3.2 地址空间与地址生成
- 地址空间的定义
- 物理地址空间:和硬件直接对应(内存条代表的主存等)
- 逻辑地址空间:对于应用程序而言,它看到的是一个一维的逻辑地址空间
- 地址生成
- CPU当中有一个叫作MMU区域,表示了一个从逻辑地址到物理地址空间的映射。
- 地址生成的过程:
- ALU部件(需要某个指令)给CPU发出一个请求,给CPU一个逻辑地址;
- CPU在MMU当中找是否存在相应的物理地址,如果不存在,则产生一个处理过程,去到内存中的map找;
- 如果找到了,CPU会给主存发出一个请求,请求返回某一个物理地址当中的内容,这个内容即为指令的内容
- 主存通过总线将内容返回给CPU,CPU拿到这个内容即可开始执行程序了;
- 操作系统的意义在于:建立了一个逻辑地址和物理地址之间的映射关系
- 地址安全检查
- 对于某一个程序而言,某一块范围是该程序可以访问的,而一些区域是不能够被访问的;也即请求的逻辑的地址需要进行一个安全检测
3.3 连续内存分配:内存碎片与分区的动态分配
- 内存碎片问题
- 空闲的内存不能够被利用
- 外碎片:在分配单元间的未使用的内存
- 内碎片:在分配单元之中的未使用的内存
- 空闲的内存不能够被利用
- 分区的动态分配
- 简单的内存管理方法:当一个程序准许运行在内存中时,分配一个连续的区间;
- 分配一个连续的内存空间给运行的程序以访问数据
- 分配策略:
- 首次适配(first fit)
- 应用程序需要n个byte,操作系统返回第一个能够满足需求的连续内存空间 ,回收的时候需要考虑合并
- 优点:简单,速度快
- 缺点:容易产生外碎片,空闲块之间的区间可能很难再被使用到
- 最优适配(best fit)
- 寻找整个空闲块中最适合分配请求的空闲块
- 最差适配(worst fit)
- 可以使得最大的内存块被首先拆分
- 需要对内存块进行一个排序
- 同样需要考虑如何进行合并
- 优点:中大型的请求其实相对还是比较合适的
- 缺点:开局丢王炸,将来大空间就用不到了
- 首次适配(first fit)
- 一个例子:
- 空闲块有:
1K bytes
,2K bytes
500 bytes
- 分配请求:
400 bytes
- 首次适配:
1K bytes
- 最优适配:
500 bytes
- 最差适配:
2K bytes
- 首次适配:
- 空闲块有:
3.4 连续内存分配:压缩式与交换式碎片整理
- 在事后弥补一下,使得碎片尽量的少,甚至消失
- 算法们
- compaction 压缩式内存整理:
紧致算法:“中间的往里走走”, 重新定位一些程序
时机:
“挪”的操作不能够在程序运行的时候进行;
开销:
有的时候开销会比较大 - swaping 交换式碎片整理:
有的时候内存(memory)已经被占满了,“挪”的操作不再现实,此时可以将磁盘当做一个虚拟内存,将主存当中的一些暂时用不到的程序暂时的挪到磁盘中去,当需要的时候再挪回来
几个问题
:
什么时候进行这个操作?对谁进行这个操作?开销?
- 预知后事如何,且听下回分解
- compaction 压缩式内存整理:
Chapter 4
4.1 非连续内存分配:分段
-
为什么要使用这一种非连续的分配方式?
- 连续内存分配的缺点:
- 分配给一个程序的物理内存是连续的
- 内存利用效率较低
- 有外碎片、内碎片的问题
- 非连续分配的优点:
- 一个程序的物理地址空间是非连续的
- 更好的内存利用和管理(隔离)
- 允许共享代码与数据
- 支持动态加载和动态链接
- 非连续分配的优点:
- 如何建立虚拟地址和物理地址之间的转换
- 软件方案(开销过大)
- 硬件方案
- 两种硬件方案
- 分段机制(更好的分离和共享)
- 分页机制
- 如何建立虚拟地址和物理地址之间的转换
- 连续内存分配的缺点:
-
写到这里暂时告一个段落,后面将会结合实验将前面的这些东西重新过一遍,加深对操作系统前面知识的理解,不然看网课后面的架势,好像即将变成一种对数据结构与算法课的变相重复了。后面是3D打印有关的笔记,接下来也会结合实验进行一定的更进。
创客X系列课程 class1
3D打印和激光切割
1. 3D打印原理:
- 抽丝(挤压型,颗粒型等)
- 分层
熔融沉积型(FDM
)
多功能陶瓷3D打印机:熔化陶瓷巧克力!!
激光选区熔化(SLM
)
电子束熔融金属
立体光刻(SLA
)
电子束无模成型制造器(EBF3
)
以数字模型文件为基础,运用粉末状金属或者塑料凳可贴合材料进行打印
2. 3D打印打什么?
- 3D迷宫
- 工艺品
一般来说不需要自己建模,只需要会用别人的东西就好
打印的精度有的时候很难保证,所以打印完成之后可以用: - 物理方法:磨砂
- 化学方法:意会
- 热加工方法
- 电学方法
3. 3D打印的流程
- 你需要知道自己想要打印什么
- 设计东东的尺寸,建立物体的切片模型(自己搞+找现成)例如使用STL & G-code等
- Fusion 360是一个好东西
激光切割
1. 为什么使用激光切割?
- 减少切割时板件所承受的应力
- 加热区非常小
- 无与伦比的精度
- 激光切割过程非常快
2. 激光切割流程
- 拥有一个想法
- 绘制二维矢量图
QCAD
- 路径规划
inkscape
,咱的实验室还是需要自己做啦! - 切割
- 有关于QCAD:
- 二维绘图工具
- 社区版本免费
- 简单容易上手
- 实现了足够多的基础功能
后续安排与计划
- 赶完所有的DDL
- 及时更新下一篇blog
- 小说创作提上日程