深刻理解計算機系統讀書筆記(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

相關文章
相關標籤/搜索