对此书已经慕名已久了,抽空看了第1,2,3,5章,其他章节等有空闲继续看吧。

我的许多博客是给自己快速复习使用的,比如此读书后感,你可以根据我下面的建议读完原书几章再回来复习一下(或许那时候就没必要回来这里复习了):

第一章个人认为必须看,理由有:

  1.它很短,花不了多少时间

  2.它有趣味,我犹记得看此章节的畅快。

第二章个人认为必须看,而且要认真看,不要跳

第三章个人认为最好看一看,但或许用处不会太大,讲的是程序的汇编级代码,可以用来调试、逆工程、查看性能等

第四章我还没看

第五章个人认为只需看它的总结就好,不过我看此章节时状态不如看第一二章,不知道漏思考了哪些东西。

深入理解计算机系统 第一章要点:

  1.源文件到可执行程序的历程:

    预处理器:把#开头的代码或文件插入源程序中,如#define,#include等

    编译器:把上一步代码变成汇编代码

    汇编器:把汇编代码变成机器码并打包成可重定位的目标程序

    链接器:合并其他库生成可执行程序

  2.操作系统提供的3个抽象

    1.进程抽象:通过切换  上下文  切换进程,让单核cpu好像并行运行多个进程。上下文包括很多信息,比如pc(程序计数器)和寄存器的当前值,以及主存的内容等。

    2.虚拟存储器:它为每个进程提供了一个假象,即每个进程都在独占地使用主存。每个进程看到的都是一致的存储器,称为虚拟地址空间:

    

      最低部是程序代码和数据:对所有进程来说,代码是从同一固定地址开始的,接着是全局变量。

      堆:运行时堆紧随其后,可伸缩

      共享库:

      用户栈:可伸缩

      内核虚拟存储器:内核总是存在在内存中,是操作系统的一部分(相信各个进程看到的内核存储器是共同的一个)

    3.文件

      

  3.几个术语

    1.线程级并发:超线程:运行一个cpu同时执行多个控制流。它涉及cpu某些硬件有多个备份,比如pc和寄存器文件,而其他的硬件部分只有一份,比如执行浮点数算术运算的单元。常规的处理器大概需要2万个时钟周期切换不同线程,而超线程只需单个周期。比如线程a在从存储器读数据,那a就可以让出cpu的运算控制资源,cpu可以转到线程b,备份的pc和寄存器可以用来给线程b使用。

    2.指令级并发:超标量

    3.单指令、多数据并行:simd并行:允许一条指令产生多个可以并行的操作。这个可以用来处理矩阵运算。向量运算等。

最新文章

  1. SQLSERVER如何使用递增排序的GUID做主键
  2. (DNS被劫持所导致的)QQ音乐与视频网页打开很慢的解决方法
  3. 修复bootstrap daterangepicker中的3个问题
  4. Winform实现Shp-栅格图形文件的读取与显示(外加shp转WKB格式存入oracle)附源码
  5. ListView配合BaseAdapter
  6. #include<string.h>
  7. Kyoya and Colored Balls(组合数)
  8. 普通内存、ECC内存和REG ECC内存有什么不同
  9. 【JQuery Plugin】WdatePicker
  10. php 分页类(3)
  11. first os
  12. 【Alpha】阶段 第七次 Scrum Meeting
  13. Apache ActiveMQ 学习一
  14. Easyui + asp.net MVC 系列教程 第19-23 节 完成注销 登录限制过滤 添加用户
  15. 20180112final和static
  16. 使用 php 7.3.0 官网的压缩包安装 FastAdmin
  17. mybatis resultMap 映射配置
  18. HTTP协议--请求与响应
  19. (转)AssetBundle系列——游戏资源打包(二)
  20. Linux文件系统检查错误

热门文章

  1. 004_自己尝试go语言中的方法
  2. Java高级篇反射和注解
  3. 用 cgo 生成用于 cgo 的 C 兼容的结构体
  4. java Format
  5. C#算法设计查找篇之03-插值查找
  6. 设计模式:单例模式介绍及8种写法(饿汉式、懒汉式、Double-Check、静态内部类、枚举)
  7. CSS动画实例:一颗躁动的心
  8. 面试题——20+Vue面试题整理
  9. 初始化itable
  10. Redis设计与实现——数据结构与对象