通读深计第一章漫游 得出如下几条结论,概述之: java
1.本书主要讲解计算机系统中的3个问题即,信息的表示、信息的存储、和信息的处理。 编程
2.计算机系统中抽象概念的重要性,以及对抽象概念的诠释。 api
3.抽象原理的一个应用,指令集结构和微体系结构的关系。 编程语言
4.指令执行模型:处理器从程序计数器指向的储存器处读取指令,解释指令中的位,执行该指令指示的简单操做,而后更新pc,使其指向下一条指令,而这一条指令并不必定与存储器中刚刚执行的指令相邻。 操作系统
5.上面234总结的是信息的处理问题,下面从计算机语言角度描述信息的处理的层次以下图所示: code
微体系结构(硬件布线逻辑是指令集结构的实现,如今还有一种叫微指令的方式完成和硬布线逻辑一样的功能,将逻辑信号存放在控制存储器中,具体内容在第四章讲解)
|
|
指令集结构 (表现形式为机器语言,具体内容在第三章讲解)
|
|
操做系统(链接硬件和上层编程语言,为编程语言提供操做硬件api)
|
|
汇编语言虚拟机() 对象
看过很多计算机体系或系统的书,书中总喜欢将计算机系统分红多层结构,有同窗会问,分那么多层麻烦不麻烦阿,是挺麻烦,不过是有这个必要的,计算机系统的发展正是朝着人的思惟方式演变的,每一层的构建都是为了更加方便的与计算机交互来完成信息的处理。下面咱们来看这样一个命题,来更好的理解这种交互。 get
Hi computer ,帮我找下 xx的电话号码(计算机将要处理的对象,信息),若是和一我的交流,那我的(正常人)会很清楚的明白你的意思,并且可能给你不少不一样的答案,但对于计算机来讲 恩 有些困难。让咱们看看计算机在高级语言层次(已经很接近天然语言了,如java)计算机是怎么处理这条信息的。 虚拟机
import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class PhoneNoFinder { private static Map<String, String> brain = new HashMap<String, String>(); public void init() { brain.put("小红", "110"); brain.put("小黑", "120"); brain.put("小白", "130"); } public String findNo(String phoneNoWoner) { String phoneNo = (String) brain.get(phoneNoWoner); return phoneNo; } public static void main(String[] args) { PhoneNoFinder phoneNoFinder = new PhoneNoFinder(); phoneNoFinder.init(); System.out.println("先生你好我是finder 很高兴为你服务!你要找谁的电话号码?"); Scanner scanner = new Scanner(System.in); String phoneNoWoner = scanner.next(); String phoneNo = phoneNoFinder.findNo(phoneNoWoner); if (phoneNo != null) { System.out.println(phoneNoWoner + "的号码是" + phoneNo); } else { System.out.println("先生,我记性很差没想起来。"); } } }
按照java等高级语言的面向对象思想,万物皆为对象。在能懂高级语言这一层次的机器(高级语言虚拟机),咱们可使用这种语法格式的语言同计算机交互。 it