引用与查看了:
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、堆栈虚拟机指令有隐含的操作数。
--感悟
确实,看了前面就有种很激动的感觉,这就是“程序员”应该必须掌握的东西吧!为了以后能在强制加班时说声 “我有事”而加油吧~