深刻理解计算机系统读书笔记(1)漫游

通读深计第一章漫游 得出如下几条结论,概述之: 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

相关文章
相关标签/搜索