計算機思維與系統
計算機導論
1、0與1的思維
語義符號化 → 符號計算化 → 計算0(和)1化 → 0(和) 1自動化 → 分層構造化 → 構造集成化;
1.2 進位制
數值性信息可以用進位製表示。
進位制:用數碼和帶有權值的數位來表示有大小關係的數值性信息的表示方法。
非數值性信息可以用編碼表示。
編碼:編碼是以若干位數碼或符號的不同組合來表示非數值性信息的方法,它是人爲地將若干位數碼或符號的每一種組合指定一種唯一的含義。
ASCII碼—-英文字母符號的編碼
ASCII碼是英文字母與符號的0,1型編碼方法,是用7位0和1的不同組合來表示10個數字、26個英文大寫字母、26個英文小寫字母及其一些特殊符號的編碼方法,是信息交換的標準編碼。
ASCII碼: American Standard Code for Information Interchange
信息 | 存儲 | 解析規則 |
---|---|---|
We are students | 01010111 01100101 00100000 01100001 01110010 01100101 00100000 01110011 01110100 01110101 01100100 01100101 01101110 01110100 01110011 | 0/1串按8位分隔一個字符,查找ASCII碼錶映射成相應符號 |
漢字的編碼
漢字內碼:漢字在計算機內部採用漢字內碼存儲,漢字內碼是一兩字節且最高位均爲1的0,1型編碼。
用0和1編碼漢字,每個漢字在計算機內部由2個字節表示
b7 b6 b5 b4 b3 b2 b1 b0 b7 b6 b5 b4 b3 b2 b1 b0
漢字輸入碼是用鍵盤上的字母符號編碼每一漢字的編碼,它使人們通過鍵入字母符號代替鍵入漢字。
輸入碼有若干:拼音碼、字型碼、區位碼……
漢字字形碼是用0和1編碼無亮點和有亮點像素,形成漢字字形的一種編碼。依據字形碼通過顯示器或打印機輸出漢字。
用0和1編碼無亮點和有亮點形成字形信息,便於顯示。漢字字形碼是一種字模點陣碼。也有不同的處理漢字點陣信息的編碼,如向量編碼等。
oooooo11oooooooo
oooooo11oooooooo
oooooo11oooooooo
oooooo11ooooo1oo
1111111111111111
oooooo11oooooooo
oooooo11oooooooo
oooooo11oooooooo
oooooo11oooooooo
oooooo111ooooooo
ooooo11oo1oooooo
oooo11oooo1ooooo
ooo11ooooo11oooo
ooo1ooooooo11ooo
oo1ooooooooo111o
11ooooooooooo1oo
漢字處理過程: 通過漢字外碼輸入,以漢字內碼存儲,以漢字字形碼輸出
2、基本邏輯運算
- “與”運算(AND): 當X和Y都爲真時, X AND Y也爲真; 其他情況, X AND Y均爲假。有0爲0 ,全1爲1
- “或”運算(OR): 當X和Y都爲假時, X OR Y也爲假; 其他情況, X OR Y均爲真。有1爲1,全0爲0
- “非”運算(NOT): 當X爲真時, NOT X爲假;當X爲假時, NOT X爲真。非0則1,非1則0
- “異或”運算(XOR): 當X和Y都爲真或都爲假時, X XOR Y爲假; 否則, X XOR Y爲真。相同爲0,不同爲1
2.1 機器數的原碼、反碼和補碼錶示規則
基於二進制的算術計算
對於Ai+Bi=Ci+1Si
不考慮進位
考慮進位
實現0和1的基本元器件: 電信號和繼電器開關
數字信號:高電平爲1, 低電平爲0
用二極管、三極管可實現基本的集成電路: 與門、或門和非門
基本門電路的符號表示及其特性
與門電路:是實現邏輯與運算的集成電路,即:只有當兩個輸入端爲高電平(1)時,則輸出端爲高電平(1);否則,輸出端爲低電平(0)。
或門電路:是實現邏輯或運算的集成電路,即:只有當兩個輸入端爲低電平(0)時,則輸出端爲低電平(0);否則,輸出端爲高電平(1)。
非門電路:是實現邏輯非運算的集成電路,即:當輸入端爲高電平(1)時,則輸出端爲低電平(0);輸入端爲低電平(0)時,則輸出端爲高電平(1)。
異或門電路:是實現邏輯異或運算的集成電路,即:當兩個輸入端同爲高電平(1)或同爲低電平(0)時,則輸出端爲低電平(0);否則,輸出端爲高電平(1)。
基於門電路的複雜組合邏輯電路
一位加法器
多位加法器:
電路組成:
複雜部件的硬件實現(芯片、主板)
微處理器芯片即是複雜組合邏輯集成在一塊板上並封裝而成的電路:
從Intel4004
在12平方毫米的芯片上集成了2250
顆晶體管 -> 到Pentium 4
處理器內建了4200萬
顆晶體管,以及採用0.18微米的電路 -> 再到英特爾的45納米Core 2
至尊/至強四核處理器上裝載了8.2億
顆晶體管。
總結
3、 電子自動計算與器件發展
3.1 電子自動計算
3.1.1 計算分類:
簡單計算I:數據計算,計算規則,應用計算規則進行計算並獲得計算結果
複雜計算II:**f(x),函數,計算規則及其簡化計算方法,便於人應用規則進行計算,獲得計算結果
**複雜計算III:如丟番圖方程,判定,計算規則,人可能無法完成但卻可由機器自動完成,藉助於機器獲得計算結果
3.1.2 自動計算要解決的問題
- “數據”的表示
- “計算規則”的表示:程序
- 數據與計算規則的“自動存儲”
- 計算規則的“自動執行”
3.1.3 計算機發展史
① 帕斯卡與帕斯卡機—-(準)第一臺機械計算機
Blaise Pascal (1623~1662)
1642年研製成功一種齒輪式計算機器
帕斯卡機的意義:它告訴人們“用純機械裝置可代替人的思維和記憶”。開闢了自動計算的道路。
② 萊布尼茨
Gottfried Wilhelm Leibniz (1646~1716),德國數學家。
萊布尼茨機的意義:連續重複自動執行。
提出了二進制數及其計算規則;
數理邏輯的創始人
③ 其他重要工作
1834年:巴貝奇(Charles Babbage),分析機的概念—-可執行程序的機器。
1805 年: 傑卡德(J.Jacquard),打孔卡,實踐了輸入手段問題。
1854年:布爾創立布爾代數,爲數字計算機的電路設計提供了理論基礎。
…..
3.1.4 電子自動計算-元器件
① 電子管時代的計算機器
馮.諾伊曼(Von Neumann)電子計算機EDVAC問世
將運算和存儲分離,運算速度卻比擁有18000個電子管的“ENIAC”提高了10倍
結構上的創新:“馮.諾伊曼計算機”。
② 晶體管時代的計算機器
③ 集成電路時代的計算機器
④ 超大規模集成電路(VLSI)時代的計算機器
發展趨勢
- 體積越來越小;
- 可靠性越來越高;
- 電路規模越來越大;
- 速度越來越快;
- 功能越來越強大;
3.2 計算機硬件發展
計算機系統要解決的幾個問題:
- 控制與計算 —— 微處理器
- 輸入
- 輸出
- 永久儲存與臨時儲存
3.2.1 微處理器的發展
- 字長: 8位 → 16位 → 32位 → 64位
- 主頻:幾MHz → 幾百MHz → 幾GHz
- 晶體管數量:幾萬 → 幾百萬 → 幾億顆
- 功能/規模:微處理器微處理器+協處理器(浮點運算) → 微處理器+圖形處理單元GPU → 微處理器+3D處理器+多媒體處理器 → 多核微處理器
微處理器發展
3.2.2 儲存設備的發展
汞延遲線
磁帶、磁芯、磁鼓存儲
半導體存儲(ROM/RAM)
磁盤存儲(硬盤和軟盤)
光盤存儲(CD-ROM,CD,R/W,DVD)
FlashRAM
USB Removable disk
固態硬盤
納米存儲/量子存儲
發展趨勢:
- 體積越來越小
- 容量越來越大
- 訪問速度越來越快
- 可靠性越來越高
- 功耗越來越低
- 持久性越來越好
3.2.3 輸入設備的發展
穿孔紙帶(0/1輸入)
鍵盤輸入(符號輸入)
鼠標輸入(點輸入)
感知輸入(接觸性感知輸入、非接觸性感知輸入)
3.2.4 輸出設備的發展
輸出設備(顯示器)
CRT:陰極射線管(模擬顯示器:黑白與彩色)
CRT: 字符發生器(向量式模擬顯示器: 輸出字符)
CRT: 數字光柵掃描顯示器(基於內存的顯示: 輸出圖形)
數字顯示器:高清圖形(液晶、等離子技術)
D顯示器:3維圖形
發展趨勢:
- 分辨率越來越高
- 顏色越來越逼真
- 顯示速度越來越快(屏幕刷新速度和圖形處理速度)
- 越來越薄,越清晰
- 可視角度越來越接近平角
4、圖靈機
圖靈機認爲的計算:
所謂計算就是計算者(人或機器)對一條兩端可無限延長的紙帶上的一串0或1,執行指令一步一步地改變紙帶上的0或1,經過有限步驟最後得到一個滿足預先規定的符號串的變換過程。
圖靈機的計算
圖靈機的思想:
是關於數據、指令、程序及程序/指令自動執行的基本思想。
- 輸入被製成一串0和1的紙帶,送入機器中—-數據。如00010000100011…
- 機器可對輸入紙帶執行的基本動作包括:“翻轉0爲1”,或“翻轉1爲0”, “前移一位”, “停止”。
- 對基本動作的控制—-指令,機器是按照指令的控制選擇執行哪一個動作,指令也可以用0和1來表示:01表示“翻轉0爲1”(當輸入爲1時不變),10表示“翻轉1爲0”(當輸入0時不變), 11表示“前移一位”, 00表示“停止”。
- 輸入如何變爲輸出的控制可以用指令編寫一個程序來完成, 如: 011110110111011100…
- 機器能夠讀取程序,按程序中的指令順序讀取指令,讀一條指令執行一條指令。由此實現自動計算。
圖靈機模型
幾點結論:
(1) 圖靈機是一種思想模型,它由一個控制器(有限狀態轉換器),一條可無限延伸的帶子和一個在帶子上左右移動的讀寫頭構成。
(2) 程序是五元組形式的指令集。其定義了機器在一個特定狀態q下從方格中讀入一個特定字符X時所採取的動作爲在該方格中寫入符號Y, 然後向右移一格R(或向左移一格L或不移動N),同時將機器狀態設爲p供下一條指令使用。
(3)圖靈機模型被認爲是計算機的基本理論模型—-計算機是使用相應的程序來完成任何設定好的任務。圖靈機是一種離散的、有窮的、構造性的問題求解思路,一個問題的求解可以通過構造其圖靈機(即程序)來解決。
(4)圖靈認爲:凡是能用算法方法解決的問題也一定能用圖靈機解決;凡是圖靈機解決不了的問題任何算法也解決不了—-圖靈可計算性問題。
圖靈機模型示例(注:(q,X,Y,R(或L或N),p), 狀態圖中圓圈內的是狀態,箭線上的是)
5、機器級程序及其執行
一臺簡單的計算機
程序被執行的過程:
基本思維:機器級算法與程序 → 機器指令與指令系統 → 存儲器 → 存儲程序 → 運算器與控制器 → 機器級程序的執行;
算法程序化 → 程序指令化 → 指令存儲化 → 執行信號化
5.3 馮.諾依曼(Von.Neumann)計算機
1944~1945年間,馮.諾伊曼提出“存儲程序”的計算機設計思想,並進行了實踐,現代計算機普遍來講屬於馮.諾伊曼機體系。
馮.諾伊曼機的基本思想:
- 運算和存儲分離
- 存儲程序:指令和數據以同等地位事先存於存儲器,可按地址尋訪, 連續自動執行。
- 五大部件構成:運算器、控制器、存儲器、輸入設備和輸出設備
- 指令和數據用二進制表示,指令由操作碼和地址碼組成
- 以運算器爲中心,控制器負責解釋指令,運算器負責執行指令
以運算器爲中心的馮.諾依曼計算機構成圖:
以存儲器爲中心的現代計算機構成圖:
同樣是五個部件,以不同的結構來連接,便體現了不同的性能—-這就是“系統”:強調“結構”,強調部件連接後的整體性、協同性。
馮.諾依曼計算機的工作原理:
計算機基本部件
CPU:中央處理單元(Central Process Unit),將運算器和控制器集成在一塊芯片上,形成微處理器。
CPU、主存儲器、I/O設備及總線成爲現代計算機的四大核心部件。
現代計算機裏面,一個微處理器(芯片)可能包含多個CPU,即多核.
5.4 存儲器的工作原理
存儲器的基本結構:
存儲器內部的實現示例
① 當地址線和數據線間連接有二極管時,則存儲的是1,否則,存儲的是0
② 當地址線和數據線間連接有二極管時,由地址線決定其是輸出1或0,即:當地址線爲高電平時,則輸出1,而當地址線爲低電平時,則輸出0;
③ 沒有連接的,則不受地址線影響,始終輸出低電平0;
用多個存儲器芯片可搭建容量更大的存儲器:
不過,存儲器擴展要解決的問題是:地址編碼空間,儲存字長
5.5 機器指令與機器級程序
算法—從馮.諾依曼計算機的角度
可在機器上執行的求解問題的操作規則及步驟,被稱爲可執行的算法。
計算的步驟
機器指令:
用機器指令表達算法:
將機器級程序和數據裝載進存儲器中?
高級語言程序的示例
計算ax2+bx+c,其中a,x,b,c是變量。
變量的地址是由編譯程序在編譯過程中自動分配的,也即是說編譯器根據當時編譯的情況,分配a,x,b,c爲8號,9號,10號,11號存儲單元,併產生上述的機器指令程序
5.6 機器級程序的執行機制
運算器構造:
控制器構造:
存儲器構造:
指令的執行機制
指令執行
- 不同的指令,由一組不同的電信號構成
- 同一指令的電信號在時鐘與節拍的控制下按次序產生與傳輸
- 一條指令佔用一個或多個機器週期,一個機器週期又分爲多個節拍
- 最小的時間區隔單位–時鐘週期
機器的“主頻”:
計算機各部件內部的簡單構成關係
5.7 機器級程序的執行過程模擬
(1)程序和數據已經裝入存儲器中如何執行呢?
(2)第1條指令的讀取
(3)第一條指令的執行
(4)第2條指令的讀取
(5)第2條指令的執行
(4)其他指令的執行
小結
6、操作系統
現代計算機系統的工作思維:
存儲體系 → 磁盤存取 → 操作系統 → 作業與進程 → 程序執行的管理與控制;
資源組合利用體系化、管理分工合作協同化、外存程序內存進程化、硬件不足功能軟件化
6.1 現代計算機的存儲體系
馮.諾依曼計算機解決了“程序裝載在內存,便可被CPU執行”的問題,但是,對於永久存儲、存儲容量、存儲速度、存儲器價格問題卻沒有很好的解決。
現代計算機將存儲體系分離,高速內存,大容量的外存。
不同性能資源的組合優化:
存儲體系需要一個資源管理者,那就是操作系統。
6.2 操作系統對計算機資源的分工-合作與協同管理思想
操作系統(Operating System:OS)是控制和管理計算機系統各種資源(硬件資源、軟件資源和信息資源)、合理組織計算機系統工作流程、提供用戶與計算機之間接口以解釋用戶對機器的各種操作需求並完成這些操作的一組程序集合,是最基本、最重要的系統軟件。
操作系統的作用:
- 操作系統是用戶與計算機硬件之間的接口。
- 操作系統爲用戶提供了虛擬機(Virtual Machine)。
- 操作系統是計算機系統的資源管理者。
操作系統是一組“管理各種資源以便執行應用程序”的程序:
(1)分工。獨立管理複雜環境中的每個部件。
(2)合作。以任務爲驅動,中心任務就是“讓計算機或者說CPU執行存儲在外存上的程序”,各部件合作完成該任務。
(3)協同。當基本解決後,關鍵就是協同,“合作”和“同步”,“自動化”及“最優化”。
分工−合作−協同:是化簡復雜問題,進行復雜問題求解的重要思維
6.3 操作系統對幾種資源的分工管理
操作系統是如何管理磁盤的?
化整爲零,還零爲整
磁盤空間的管理:
文件的第一部分位置寫在文件夾(目錄)中,而之後的部分都寫着下一部分的地址。這些地址組成文件分配表(FAT)。
磁盤的四個主要區域:保留扇區、文件分配表區域、根目錄區域、數據區域
計算機病毒攻擊目標
內存管理
主要內容:
- 內存空間管理
- 內存空間分配
- 內存與外存信息的自動交換
- 內存空間的回收
CPU管理/處理機管理
- 內存中待執行程序段落的地址送控制器的PC(程序計數器)
- 內存中的多個程序,執行哪一個程序?
- 程序執行切換中的狀態/環境保護問題
6.4 操作系統對資源的合作與協同管理
程序與進程
程序(文件): 存儲在磁盤上的程序文件
進程: 裝入內存中的程序
任務與作業
任務:大粒度的工作,一個應用程序的完整的執行。一個任務由多個進程來完成
作業:小粒度的工作,不同的作業由不同的進程來完成
操作系統的進程:爲使應用程序順利執行而做的輔助性管理性工作的進程。操作系統的進程也存儲在內存中,也需要調度CPU來執行;CPU在操作系統進程和多個應用程序進程之間來回切換。
應用程序的進程:應用程序本身的進程
作業與進程管理
應用程序執行
① 進程相關的準備工作
② 爲進程分配相關的內存空間
③ 將程序由外存裝載到內存中
④ 讓CPU執行已經準備就緒的進程
外存中的程序中如何被載入內存如何被CPU執行?
6.5 CPU管理
6.5.1 分時
一臺主機一個CPU執行多個程序(來自於多個用戶的多個終端)
6.5.2 並行
一臺主機多個CPU執行一個程序
6.5.3 分佈
網絡中多臺主機多個CPU執行一個任務
7、計算機的發展
通用計算環境的進化思維:
雲
SASS