通讀深計第一章漫遊 得出如下幾條結論,概述之: 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