深入理解计算机系统【一】

  引用与查看了:

   https://www.cnblogs.com/ylhwx/p/7801058.html

  https://blog.csdn.net/strliu/article/details/7906017

  这周开始看深入理解计算机系统,也是计算机4大基础书中最后一本我没看过的了。

  周日在办公室里听着歌写读书笔记,也是别有一番滋味了。

  刘大给了3个题目

   1. 信息=位+上下文, 什么是上下文?  工作中有哪些例子

   2.  RISC指令集和CISC指令集有什么区别,它们的典型CPU有哪些?   

   3. 基于栈的"CPU"和基于寄存器的"CPU"有什么区别。

  一个个来吧,

  系统所有信息都是由位组成的,区分位表示不同的含义,就是上下文,上下文就是程序的运行环境。英文叫context;

  和语文中的上下文差不多,结合前后文,一句话有不同的意思吧。就像js和java中,有不同关键字?还看到个轮子哥解释,说上下文就是方法形参??

  --第二个问题

  RISC指令集是精简指令集计算机;CISC是复杂指令集计算机

  他们区别是不同CPU的设计理念和方法。

  CISC是用最少机器语言指令来完成所需的计算任务。这种架构会增加CPU结构的复杂和CPU工艺的要求,对编译器开发有利。到今天只有Intel及其兼容CPU还在使用这种架构。

  RISC的创造人发现,最经常使用的的80%指令,只占处理器指令系统的20%,又是典型的82法则啊。

  从硬件角度来看CISC处理的是不等长指令集,它必须对不等长指令进行分割,因此在执行单一指令的时候需要进行较多的处理工作。而RISC执行的是等长精简指令集,CPU在执行指令的时候速度较快且性能稳定。

  从软件角度来看,CISC运行的则是我们所熟识的DOS、Windows操作系统。而且它拥有65%以上的软件厂商代理为基于CISC体系结构的PC及其兼容机服务的,像赫赫有名的Microsoft就是其中大量的应用程序。而RISC在此方面却显得有些势单力薄。虽然在RISC上也可运行DOS、Windows,但是需要一个翻译过程,所以运行速度要慢许多。

  --三

  基于寄存器的虚拟机:
  1、使用堆栈来分配激活记录器
  2、基于寄存器代码免去了使用push和pop命令的麻烦,减少了每个函数的指令总数。
  3、代码尺寸和解码效率不如基于栈虚拟机,因为它包含操作数,所以指令大于基于堆栈的指令。但是基于寄存器产生更少的代码,所以总的代码数不会增加。
  4、寄存器虚拟机必须从操作指令中解码操作数,需要额外的解码操作。

  基于栈的虚拟机:
  1、代码必须使用这些指令来移动变量(即push和pop)
  2、代码尺寸小和解码效率会更高些
  3、堆栈虚拟机指令有隐含的操作数。

  --感悟

  确实,看了前面就有种很激动的感觉,这就是“程序员”应该必须掌握的东西吧!为了以后能在强制加班时说声 “我有事”而加油吧~

  

你可能感兴趣的:(深入理解计算机系统【一】)