《信息安全系统设计基础》第14周学习总结

教材学习内容

虚拟存储器
  • 虚拟存储器是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互。
  • 为每个进程提供了一致的地址空间,并保护每个进程的地址空间不被其他进程破坏
  • 主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,高效的使用了主存。
物理和虚拟寻址

如下所示是一个使用虚拟寻址的形式

cpu芯片上的存储器管理单元(MMU)的专用硬件,利用放在主存中的查询表动态翻译虚拟地址。

地址空间
  • 线性地址空间:地址空间中的整数是连续的
  • 虚拟地址空间:CPU从一个有 N=2^n 个地址的地址空间中生成的虚拟地址,地址大小由表示最大地址所需要位数描述的。
  • 物理地址空间:与系统中的物理存储器的M个字节相对应,不要求是2的幂次方。

允许数据对象有多个地址。主存中的每个字节都有一个虚拟地址和一个物理地址。

虚拟存储器作为缓存工具。
  • 在任意时刻,虚拟页面的集合都被分为三个不相交的子集:
    1、未分配的:VM系统还没分配/创建的页,不占用任何磁盘空间
    2、缓存的:当前缓存在物理存储器中的已分配页
    3、未缓存的:没有缓存在物理存储器中的已分配页
  • 物理存储器被分割为物理页(PP),也叫页帧,大小也为P字节
页表
  • 页表就是一个页表条目PTE的数组。
  • PTE是由有效位和一个n位地址字段组成的。
    1、如果设置了有效位:地址字段表示DRAM中相应的物理页的起始位置,这个物理页中缓存了该虚拟页
    2、如果没有设置有效位:
    (1)空地址:表示该虚拟页未被分配

(2)不是空地址:这个地址指向该虚拟页在磁盘上的起始位置。

页命中和缺页
  • 地址翻译硬件将虚拟地址作为一个索引来定位PTE2,通过有效位判断是否已缓存。
  • DRAM缓存不命中引发缺页异常,调用内核中的缺页异常处理程序。
虚拟存储器作为存储器管理工具

1、简化链接:独立的地址空间允许每个进程的存储器映像使用相同的基本格式,而不管代码和数据实际存放在物理存储器的何处
2、简化加载:虚拟存储器使得容易想存储器中加载可执行文件和共享对象文件
3、简化共享:独立地址空间为操作系统提供了一个管理用户进程和操作系统自身之间共享的一致机制
4、简化存储器分配:虚拟存储器为向用户进程提供一个简单的分配额外存储器的机制

动态存储器分配
  • 分配器有两种风格:
    1、显示分配器:要求应用显式地释放任何已经分配的块
    2、隐式分配器:要求分配器检测一个已分配块何时不再被程序所使用,就释放这个块。也叫做垃圾收集器

  • 分配器要求
    1、处理任意请求序列
    2、立即响应请求
    3、只使用堆
    4、对齐块
    5、不修改已分配的块

  • 目标:
    1、最大化吞吐率(吞吐率:每个单位时间里完成的请求数)
    2、最大化存储器利用率——峰值利用率最大化

碎片

1.内部碎片

  • 发生在一个已分配块比有效载荷大的时候
  • 易于量化。

2.外部碎片

  • 发生在当空闲存储器合计起来足够满足一个分配请求,但是没有一个单独的空间块足以处理这个请求时发生
  • 难以量化,不可预测。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 3500行 30篇 400小时
第一周 40/40 1/1 20/20
第二周 30/70 1/2 30/50
第三周 21/91 1/3 28/78
第五周 131/222 1/4 20/98
第六周 32/254 1/5 21/119
第七周 200/454 1/5 21/119
第八周 0/454 2/7 10/129
第九周 84/538 2/9 15/144
第10周 441/979 2/11 10/154
第11周 460/1439 2/13 20/174
第12周 300/1739 2/15 20/194
第13周 427/2467 1/16 19/213
第13周 0/2467 1/17 22/235

代码托管

代码链接

参考资料

  • Linux基础入门
  • Linux下C语言开发基础
  • ...

转载于:https://www.cnblogs.com/yayaer/p/6195456.html

20145204张亚军第14周博客总结相关推荐

  1. IT-标准化-系列-14.用-博客三剑客-写博客

    有人说写博客-说写吧! 那有博客三剑客 下面我来介绍: 剑客 1:红蜻蜓抓图精灵-截图利器 剑客 2:Windows Live Writer-写作利器 剑客 3:Batch Photo WaterMa ...

  2. go基础第一遍学习(李文周博客)

    go基础第一遍学习记录,以下内容来自李文周博客 文章目录 my重点记录 1.println和prinf的区别 一.通常情况: 二.整数: 三.浮点数: 四.字符串: 五.布尔类型: 2.[golang ...

  3. 现代软件工程 第一周博客记录

    前言: 这是我真正意义上的第一篇博客,希望以后我能时刻谨记自己的这一篇博客对自己的分析,并且能及时认识到自己的错误和在学习上的放松,一直奋斗下去. 1.自我介绍 大家好,我叫罗博伦,来自西南石油大学软 ...

  4. 马哥教育linux面授班37期第一周博客

    马哥教育linux面授班37期第一周博客   2019年5月5号晚,我怀着忐忑和激动的心情坐上了开往了北京的列车,我忐忑自己此行的目的地,马哥教育Linux第37期北京面授班,是因为我接下来五个月的时 ...

  5. 20145204 张亚军《信息安全系统设计基础》第九周学习总结

    教材学习内容总结 Unix I/O Unix文件就是一个m字节的序列:b0,b1,b2-.bm-1.将所有的I/O设备都被虚拟化为文件.所有的输入输出都是在当成相对应的文件的读写.将设备映射为文件. ...

  6. 20145204 张亚军《信息安全系统设计基础》第10周学习总结

    <信息安全系统设计基础>第10周学习总结 本周学习内容 1.注意每个系统调用的参数.返回值,会查帮助文档 2.阅读教材,完成课后练习(书中有参考答案),考核:练习题把数据变换一下 3.学习 ...

  7. 20145204 张亚军《信息安全系统设计基础》第13周学习总结

    <信息安全系统设计基础>第13周学习总结 教材学习内容 并发编程 1.程序级并发--进程 2.函数级并发--线程 三种基本的构造并发程序的方法: 1.进程:每个逻辑控制流是一个进程,由内核 ...

  8. 20145204 张亚军《信息安全系统设计基础》第12周学习总结

    代码分析 关于fork()函数的疑问 1.调用一次,返回两次. fork函数被父进程调用,当前的父进程是哪个进程?返回两次,什么叫返回两次?同样的代码运行两次吗? 2.相同的但是独立的地址空间. 在返 ...

  9. 现代软件工程 作业 第一周博客作业

    第一周作业 1. 介绍自己,建博客 我是一名大三的学生,平时爱好看看书,感觉没啥特长. 要说有什么优势技能,就是文笔还可以吧. 从初三开始写日记,基本上上学的日子每天都写,一直到大一结束. 2. 现状 ...

最新文章

  1. C#之Action和Func的用法
  2. css样式表和选择器
  3. 6.组函数(avg(),sum(),max(),min(),count())、多行函数,分组数据(group by,求各部门的平均工资),分组过滤(having和where),sql优化
  4. 玩转算法之面试第九章-动态规划
  5. lvs负载均衡—ldirectord(DR模式的健康检查)
  6. yeoman生成react基本架构
  7. 关于微信隐藏分享按钮的心得
  8. Android趣味课程:超简单猜数游戏
  9. 全国青少年编程等级考试scratch三级真题2021年12月(含题库答题软件账号)
  10. cmdn发布博客(markdowm)
  11. 【转】欧姆龙FINS通讯命令实例详解
  12. 【python中级】 ico图标生成器
  13. cesium获取坐标及高程
  14. 寒假实践之—大奖赛计分系统
  15. 数据准备脚本:Python Pandas OR esProc SPL?
  16. 什 么 是 勒 索 病 毒 ?
  17. 百度新闻爬虫搜索引擎实战---爬虫篇(2)
  18. 所谓带芯片的TYPEC头解剖
  19. pytorch框架下faster rcnn使用softnms
  20. 范济安:我所知道的云计算

热门文章

  1. 如何替换android apk中的so
  2. JAVA实验,求柱体面积
  3. VTK学习-第一个多柱体生成
  4. XMind软件非试用版本下载(亲测有效)
  5. [架构之路-181]-《软考-系统分析师》-19- 系统可靠性分析与设计 - 2-容错性: 软件容错技术
  6. java年轻代频繁gc_JVM young GC频繁,内存泄漏
  7. 使用CMD更改IP地址
  8. 不小心将 U 盘抹成 APFS 格式,应该如何恢复?
  9. python读取mt4数据_MT4下载历史数据
  10. Java NIO 非阻塞服务器端