Operating System 笔记(2)2020-10-18

这篇博客详细介绍了操作系统中内存管理的相关知识,包括计算机体系结构、内存分配、地址空间、内存碎片及动态分配策略。同时,讨论了连续内存分配的压缩式与交换式碎片整理方法。此外,还提及了非连续内存分配的分段机制及其优点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


来自清华大学向勇、陈渝教授的操作系统网课

  • 2020年10月18日

Operating System 笔记(2)

Chapter 3

3.1 计算机体系结构和内存分配

  • 简单讲了讲操作系统的分层结构
  • 计算机基本硬件结构:CPU, 内存, 外设
  • 关于计算机物理内存的管理:
    • CPU寄存器 -> cache miss/fill -> 主存(交换/分页) -> 磁盘
    • 主存断电就没了… 但是磁盘断电还会有,因为这是物理层面的储存
  • 于计算机物理内存的管理目标:
    • 抽象:逻辑地址空间
    • 保护:独立地址空间
    • 共享:访问相同内存
    • 虚拟化:更多的地址空间

3.2 地址空间与地址生成

  • 地址空间的定义
    • 物理地址空间:和硬件直接对应(内存条代表的主存等)
    • 逻辑地址空间:对于应用程序而言,它看到的是一个一维的逻辑地址空间
  • 地址生成
    • CPU当中有一个叫作MMU区域,表示了一个从逻辑地址到物理地址空间的映射。
    • 地址生成的过程:
    1. ALU部件(需要某个指令)给CPU发出一个请求,给CPU一个逻辑地址;
    2. CPU在MMU当中找是否存在相应的物理地址,如果不存在,则产生一个处理过程,去到内存中的map找;
    3. 如果找到了,CPU会给主存发出一个请求,请求返回某一个物理地址当中的内容,这个内容即为指令的内容
    4. 主存通过总线将内容返回给CPU,CPU拿到这个内容即可开始执行程序了;
    • 操作系统的意义在于:建立了一个逻辑地址和物理地址之间的映射关系
  • 地址安全检查
    • 对于某一个程序而言,某一块范围是该程序可以访问的,而一些区域是不能够被访问的;也即请求的逻辑的地址需要进行一个安全检测

3.3 连续内存分配:内存碎片与分区的动态分配

  • 内存碎片问题
    • 空闲的内存不能够被利用
      • 外碎片:在分配单元的未使用的内存
      • 内碎片:在分配单元之中的未使用的内存
  • 分区的动态分配
    • 简单的内存管理方法:当一个程序准许运行在内存中时,分配一个连续的区间;
    • 分配一个连续的内存空间给运行的程序以访问数据
    • 分配策略
      • 首次适配(first fit)
        • 应用程序需要n个byte,操作系统返回第一个能够满足需求的连续内存空间 ,回收的时候需要考虑合并
        • 优点:简单,速度快
        • 缺点:容易产生外碎片,空闲块之间的区间可能很难再被使用到
      • 最优适配(best fit)
        • 寻找整个空闲块中最适合分配请求的空闲块
      • 最差适配(worst fit)
        • 可以使得最大的内存块被首先拆分
        • 需要对内存块进行一个排序
        • 同样需要考虑如何进行合并
        • 优点:中大型的请求其实相对还是比较合适的
        • 缺点:开局丢王炸,将来大空间就用不到了
    • 一个例子:
      • 空闲块有:1K bytes,2K bytes 500 bytes
      • 分配请求:400 bytes
        • 首次适配: 1K bytes
        • 最优适配: 500 bytes
        • 最差适配: 2K bytes

3.4 连续内存分配:压缩式与交换式碎片整理

  • 在事后弥补一下,使得碎片尽量的少,甚至消失
  • 算法们
    1. compaction 压缩式内存整理
      紧致算法:“中间的往里走走”, 重新定位一些程序
      时机:“挪”的操作不能够在程序运行的时候进行;
      开销:有的时候开销会比较大
    2. swaping 交换式碎片整理
      有的时候内存(memory)已经被占满了,“挪”的操作不再现实,此时可以将磁盘当做一个虚拟内存,将主存当中的一些暂时用不到的程序暂时的挪到磁盘中去,当需要的时候再挪回来
      几个问题
      什么时候进行这个操作?对谁进行这个操作?开销?
    • 预知后事如何,且听下回分解

Chapter 4

4.1 非连续内存分配:分段

  • 为什么要使用这一种非连续的分配方式?

    • 连续内存分配的缺点
      • 分配给一个程序的物理内存是连续的
      • 内存利用效率较低
      • 有外碎片、内碎片的问题
    • 非连续分配的优点
      • 一个程序的物理地址空间是非连续的
      • 更好的内存利用和管理(隔离)
      • 允许共享代码与数据
      • 支持动态加载和动态链接
    • 非连续分配的优点
      • 如何建立虚拟地址和物理地址之间的转换
        • 软件方案(开销过大)
        • 硬件方案
      • 两种硬件方案
        • 分段机制(更好的分离和共享)
        • 分页机制
  • 写到这里暂时告一个段落,后面将会结合实验将前面的这些东西重新过一遍,加深对操作系统前面知识的理解,不然看网课后面的架势,好像即将变成一种对数据结构与算法课的变相重复了。后面是3D打印有关的笔记,接下来也会结合实验进行一定的更进。

创客X系列课程 class1

3D打印和激光切割

1. 3D打印原理:

  • 抽丝(挤压型,颗粒型等)
  • 分层

熔融沉积型(FDM)
多功能陶瓷3D打印机:熔化陶瓷巧克力!!
激光选区熔化(SLM
电子束熔融金属
立体光刻(SLA
电子束无模成型制造器(EBF3

以数字模型文件为基础,运用粉末状金属或者塑料凳可贴合材料进行打印

2. 3D打印打什么?

  • 3D迷宫
  • 工艺品
    一般来说不需要自己建模,只需要会用别人的东西就好
    打印的精度有的时候很难保证,所以打印完成之后可以用:
  • 物理方法:磨砂
  • 化学方法:意会
  • 热加工方法
  • 电学方法

3. 3D打印的流程

  1. 你需要知道自己想要打印什么
  2. 设计东东的尺寸,建立物体的切片模型(自己搞+找现成)例如使用STL & G-code等
  3. Fusion 360是一个好东西

激光切割

1. 为什么使用激光切割?

  • 减少切割时板件所承受的应力
  • 加热区非常小
  • 无与伦比的精度
  • 激光切割过程非常快

2. 激光切割流程

  1. 拥有一个想法
  2. 绘制二维矢量图 QCAD
  3. 路径规划 inkscape,咱的实验室还是需要自己做啦!
  4. 切割
  • 有关于QCAD:
    • 二维绘图工具
    • 社区版本免费
    • 简单容易上手
    • 实现了足够多的基础功能

后续安排与计划

  • 赶完所有的DDL
  • 及时更新下一篇blog
  • 小说创作提上日程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值