一 摇幻、章節(jié)導學
- 計算機的發(fā)展簡史
- 計算機的分類
- 計算機的體系結(jié)構(gòu)
- 計算機的層次與編程語言
- 計算機的計算單位
- 計算機的字符與編碼集
二笆豁、計算機的發(fā)展歷史
- 計算機發(fā)展的四個階段
- 微型計算機的發(fā)展歷史
1. 計算機發(fā)展的四個階段
階段 | 時間 | 名稱 |
---|---|---|
第一階段 | 1946-1957 | 電子管計算機 |
第一階段 | 1957-1964 | 晶體管計算機 |
第一階段 | 1964-1980 | 集成電路計算機 |
第一階段 | 1980-現(xiàn)在 | 超大規(guī)模集成電路計算機 |
1.1 第一個階段:電子管計算機
- 集成度小描睦,空間占用大
- 功耗高锯七,運行速度慢
- 操作復雜访敌,更換程序需要接線
- 第二次世界大戰(zhàn)是電子管計算機產(chǎn)生的催化劑
英國為了解密德軍海軍的密文
- 戰(zhàn)爭使用了飛機和火箭
- 打得準則需要計算射擊參數(shù)
- 射擊參數(shù)需要幾千次運算才能計算出來
沒有計算機前腊嗡,需要人手算
埃尼阿克(ENIAC)
- 18000多個電子管
- 運行耗電量150千瓦
- 重量達30噸舷手,占地1500平方英尺
1.2 晶體管計算機
- 集成度相對較高拧簸,空間占用相對小
- 功耗相對較低,運行速度較快
- 操作相對簡單男窟,交互更加方便
貝爾實驗室的三個科學家發(fā)明了晶體管
TX-0
- 來自MIT林肯實驗室
PDP-1
- 4k內(nèi)存狡恬,每秒200,000指令
- 配備512*512的顯示器
1.3 集成電路計算機
- 計算機變得更小
- 功耗變得更低
- 計算速度變得更快
德州儀器的工程師發(fā)明了集成電路(IC)
計算機具備了進入千家萬戶的條件
IBM:7094,1401
- 主打功能不同
- 相互無法兼容
- 不愿意投入兩組人力
IBM退出兼容的產(chǎn)品System/360 ==> 操作系統(tǒng)的雛形
1.4 超大規(guī)模集成電路
- 一個芯片集成了上百萬的晶體管
- 速度更快蝎宇,體積更小弟劲,價格更低,更能被大眾接受
- 用途豐富:文本處理姥芥、表格處理兔乞、高交互的游戲與應用
1.5 未來的計算機
生物計算機:以蛋白質(zhì)分子作為主要原材料
- 體積小
- 不易損壞,生物級別的自動修復
- 不受信號干擾凉唐,無熱損耗
量子計算機:遵循量子力學的物理計算機
- 2013年5月庸追,谷歌和NASA發(fā)布D-Wave Two
- 2017年5月,中國科學院宣布制造出光量子計算機
- 2019年1月台囱,IBM展示了世界首款商業(yè)化量子計算機
- 騰訊在2017年就組建了量子實驗室
- 阿里巴巴在2017年成立了達摩院
2. 微型計算機的發(fā)展歷史
2.1 受限于性能
單核CPU
- (1971 ~ 1973) 500KHz頻率的微型計算機(字長8位)
- (1973 ~ 1978) 高于1MHz頻率的微型計算機(字長8位)
- (1978 ~ 1985) 500MHz頻率的微型計算機(字長8位)
- (1985 ~ 2000) 高于1GHz頻率的微型計算機(字長32位)
- (2000 ~ 今) 高于2GHz頻率的微型計算機(字長64位)
2.2 摩爾定律
集成電路的性能淡溯,每18-24個月就會提升一倍
多核CPU
- (2005)Intel奔騰系列雙核CPU、AMD速龍系列
- (2006)Intel酷睿四核CPU
- Intel酷睿系列十六核CPU
- Intel志強系列五十六核CPU
三簿训、計算機的分類
1. 超級計算機
- 功能最強咱娶、運算速度最快、存儲容量最大的計算機
- 多用于國家高科技領(lǐng)域和尖端技術(shù)研究
- 標記他們運算速度的單位是TFlop/s
1TFlop/s=每秒一萬億次浮點計算
Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz:44.87 GFlop/s
44.87 GFlop/s = 0.04487TFlop/s
2. 大型計算機
- 又稱大型機强品、大型主機膘侮、主機等
- 具有高性能,可處理大量數(shù)據(jù)與復雜的運算
- 在大型機市場領(lǐng)域的榛,IBM占據(jù)著很大的份額
IBM Z9
- NASA 最后一臺大型機
- Red Hat Enterprise Linux
- 大型機造價高昂
去“IOE”行動:I(IBM)琼了,O(Oracle),E(EMC)
- 去”IOE“是阿里巴巴提出的概念
- 代表了高維護費用的存儲系統(tǒng)
- 不夠靈活夫晌,伸縮性弱
去“IOE”運動(阿里2008年提出)=> 阿里云(阿里云2009年成立)
3. 迷你計算機
- 也稱為小型機雕薪,普通服務器
- 不需要特殊的空調(diào)場所
- 具備不錯的算力昧诱,可以完成較復雜的運算
大型機 => 普通服務器
普通服務器已經(jīng)代替了傳統(tǒng)的大型機,成為大規(guī)模企業(yè)計算的中樞
4. 工作站
- 高端的通用微型計算機所袁,提供比個人計算機更強大的性能
-
類似于普通臺式電腦鳄哭,體積較大,但性能強勁
image.png
5. 微型計算機
- 又稱為個人計算機纲熏,是最普通的一類計算機
臺式機,筆記本電腦锄俄,一體機 - 麻雀雖小局劲、五臟俱全
從構(gòu)成的本質(zhì)上來講,個人計算機與前面的分類無異
四奶赠、 計算機的體系結(jié)構(gòu)
1. 馮諾依曼體系
1.1 概念
將程序指令和數(shù)據(jù)一起存儲的計算機設(shè)計概念結(jié)構(gòu)
現(xiàn)代計算機都是馮諾依曼機
1.2 要求
- 必須有一個控制器
- 必須有一個存儲器
- 必須有一個運算器
1.3 功能
- 能夠長期記憶程序鱼填、數(shù)據(jù)、中間結(jié)果及最終運算結(jié)果的能力
- 能夠把需要的程序和數(shù)據(jù)送至計算機中
- 能夠具備算術(shù)毅戈、邏輯運算和數(shù)據(jù)傳送等數(shù)據(jù)加工處理的能力
- 能夠按照要求將處理結(jié)果輸出給用戶
1.4 結(jié)構(gòu)
1.5 馮諾依曼瓶頸
2. 現(xiàn)代計算機的結(jié)構(gòu)
- 現(xiàn)代計算機在馮諾依曼體系結(jié)構(gòu)基礎(chǔ)上進行修改
- 解決CPU與存儲設(shè)備之間的性能差異問題
五苹丸、 計算機的層次與編程語言
1. 程序翻譯與程序解釋
1.1 為什么要程序翻譯
1.2 程序翻譯
1.3 程序解析
1.4 程序翻譯與程序解析
- 計算機執(zhí)行的指令都是L0
- 翻譯過程生成新的L0程序,解釋過程不生成新的L0程序
- 解釋過程由L0編寫的解釋器去解釋L1程序
1.5 語言分類
程序翻譯
C/C++
Object-C
Golang程序解釋
Python
Php
JavaScript翻譯+解釋
Java
C#
2. 計算機的層次與編程語言
2.1 硬件邏輯層
- 門苇经、觸發(fā)器等邏輯電路組成
- 屬于電子工程的領(lǐng)域
2.2 微程序機器層
- 編程語言是微指令集
- 微指令所組成的微程序直接交由硬件執(zhí)行
2.3 傳統(tǒng)機器層
- 編程語言是CPU指令集(機器指令)
- 編程語言和硬件是直接相關(guān)
- 不同架構(gòu)的CPU使用不同的CPU指令集
微指令 < 微程序 = 機器指令
- 一條機器指令對應一個微程序
- 一個微程序?qū)唤M微指令
2.4 操作系統(tǒng)層
- 向上提供了簡易的操作界面
- 向下對接了指令系統(tǒng)赘理,管理硬件資源
- 操作系統(tǒng)層是在軟件和硬件之間的適配層
2.5 匯編語言層
- 編程語言是匯編語言
- 匯編語言可以翻譯成可直接執(zhí)行的機器語言
- 完成翻譯的過程的程序就是匯編器
PUSH DS
PUSH AX
MOV AX,0040
MOV DS,AX
2.6 高級語言層
- 編程語言為廣大程序員所接受的高級語言
- 高級語言的類別非常多,由幾百種
- 常見的高級語言有:Python扇单、Java商模、C/C++、Golang等
2.7 應用層
- 滿足計算機針對某種用途而專門設(shè)計
六蜘澜、 計算機的速度單位
1. 容量單位
- 在物理層面施流,高低電平記錄信息
- 理論上只認識0/1兩種狀態(tài)
- 0/1能夠表示的內(nèi)容太少了,需要更大的容量表示方法
0/1稱為bit(比特位)
字節(jié):1Byte = 8 bit
bit | Byte | KB | MB | GB | TB | PB | EB | |
---|---|---|---|---|---|---|---|---|
名字 | 比特位 | 字節(jié) | 千字節(jié) | 兆字節(jié) | 吉字節(jié) | 太字節(jié) | 拍字節(jié) | 兆字節(jié) |
比例 | - | 8bits | 1024B | 1024KB | 1024MB | 1024GB | 1024TB | 1024PB |
常見設(shè)備 | 門電路 | - | 寄存器 | 高速緩存 | 內(nèi)存/硬盤 | 硬盤 | 云硬盤 | 數(shù)據(jù)倉庫 |
1024 = 2^10
1G內(nèi)存鄙信,可以存儲多少字節(jié)的數(shù)據(jù)瞪醋?可以存儲多少比特數(shù)據(jù)?
1G = 1024^3Bytes = 1024^3*8bits
為什么網(wǎng)上買的移動硬盤500G装诡,格式化之后就只剩465G了银受?
硬盤商一般用10進位標記容量
500 * 1000^3 / 1024^3 ≈ 465
2. 速度單位
2.1 網(wǎng)絡(luò)速度
這里的100M并不是指容量
100M= 100M/s
為什么電信拉的100M光纖,測試峰值速度只有10M每秒鸦采?
網(wǎng)絡(luò)常用單位為(Mbps)
100M/s = 100Mbps = 100Mbit/s
100Mbit/s = (100/8)MB/s = 12.5MB/s
2.2 CPU速度
- CPU的速度一般體現(xiàn)為CPU的時鐘頻率
- CPU的時鐘頻率的單位一般是赫茲(Hz)
- 主流CPU的時鐘頻率都在2GHz以上
HZ(它是每秒中的周期性變動重復次數(shù)的計量)
- Hz其實就是秒分之一
- 并不是描述計算機領(lǐng)域所專有的單位
2GHz = 2*1000^3Hz = 每秒20億次
七蚓土、 計算機的字符與編碼集
1. 字符編碼集的歷史
1.1 ASCII碼
- 使用7個bits就可以完全表示ASCII碼
- 包含95個可打印字符
- 33個不可打印字符(包括控制字符)
33+95 = 128 = 2^7
1.2 Extended ASCII碼
ASCII碼缺陷
- 很多應用或者國家中的符號都無法表示
- 數(shù)學符號:“÷≠ ≥ ≈ π”
- 第一次對ASCII碼進行擴充,7bits => 8bits
擴展后的ASCII碼
- 常見數(shù)學運算符
- 帶音標的歐洲字符
- 其他常用符赖淤、表格符等
1.3 字符編碼集的國際化
- 歐洲蜀漆、中亞、東亞咱旱、拉丁美洲國家的語言多樣性
- 語言體系不一樣确丢,不以有限字符組合的語言
- 中國绷耍、韓國、日本等的語言最為復雜
2. 中文編碼集
2.1 GB2312
- 《信息交換用漢字編碼字符集——基本集》
- 一共收錄了7445 個字符
- 包括6763 個漢字和682 個其它符號
2.2 GBK
- 《漢字內(nèi)碼擴展規(guī)范》
- 向下兼容GB2312鲜侥,向上支持國際ISO標準
- 收錄了21003個漢字褂始,支持全部中日韓漢字
2.3 Unicode(兼容全球的字符集)
- Unicode:統(tǒng)一碼、萬國碼描函、單一碼
- Unicode定義了世界通用的符號集崎苗,UTF-*實現(xiàn)了編碼
- UTF-8以字節(jié)為單位對Unicode進行編碼
2.4 注意
- Windows系統(tǒng)默認使用GBK編碼
- 編程推薦使用UTF-8編碼
八、 專項練習:17道習題
1.計算機的發(fā)展歷史大概可以分為幾個階段舀寓?每個階段的計算機分別有什么特點胆数?
四個階段:電子管計算機、晶體管計算機互墓、集成電路計算機必尼、超大規(guī)模集成電路計算機。
2.你了解“摩爾定律”嗎?“摩爾定律”對現(xiàn)代計算機產(chǎn)生了什么影響?
摩爾定律:摩爾定律是由英特爾(Intel)創(chuàng)始人之一戈登·摩爾(Gordon Moore)提出來的讨便。其內(nèi)容為:當價格不變時,集成電路上可容納的元器件的數(shù)目券盅,約每隔18-24個月便會增加一倍,性能也將提升一倍膛檀。換言之渗饮,每一美元所能買到的電腦性能,將每隔18-24個月翻一倍以上宿刮。這一定律揭示了信息技術(shù)進步的速度互站。盡管這種趨勢已經(jīng)持續(xù)了超過半個世紀,摩爾定律仍應該被認為是觀測或推測僵缺,而不是一個物理或自然法胡桃。
3.你了解馮諾依曼機嗎?你是否可以大概描述馮諾依曼機的基本組成和工作原理磕潮?馮諾依曼機相對于之前的計算機有什么重要改進翠胰?
馮諾依曼機有五大組成部分:輸入設(shè)備、輸出設(shè)備自脯、運算器之景、存儲器、控制器膏潮。馮諾依曼機把程序指令和運行數(shù)據(jù)存儲起來锻狗,使得計算機從專用電路計算機發(fā)展成為通用電路計算機。
- 什么是馮諾依曼瓶頸?馮諾依曼瓶頸對現(xiàn)代計算機產(chǎn)生了什么影響轻纪?
馮諾依曼瓶頸指的是存儲器和運算器之間的訪問速率差異巨大油额,使得計算機性能無法提升。現(xiàn)代計算機以存儲器為核心刻帚,根據(jù)局部性原理設(shè)計了存儲器的層次結(jié)構(gòu)潦嘶,大幅提升計算機性能。
5.你了解程序解釋和程序翻譯嗎崇众?什么是編譯型語言掂僵,什么是解釋型語言呢?
編程語言可以分為解釋型語言和編譯型語言顷歌,程序解釋指的是程序代碼在運行時锰蓬,逐行翻譯成較低層次的編程語言去執(zhí)行;程序翻譯指的是程序代碼在編譯階段提前翻譯成較低層次的編程語言邏輯衙吩,在運行時直接運行。
6.請你列舉十種以上的編程語言溪窒,并分別分類他們屬于什么類型的語言坤塞。
編譯型語言:C、C++澈蚌、Go摹芙、OC,解釋型語言:Php宛瞄、Python浮禾、Javascript、Perl份汗、Lua盈电,翻譯+解釋型語言:Java、C#杯活、Kotlin等匆帚。
7.你了解計算機的層次結(jié)構(gòu)嗎?今天的軟件和硬件是怎么界定的旁钧。
計算機的層次結(jié)構(gòu)劃分是為了方便理解計算機的整一個體系吸重,在不同書籍或領(lǐng)域會有不一樣的劃分,沒有絕對的正確歪今。今天的軟件嚎幸、硬件的劃分以硬件電路為界限,從涉及硬件電路邏輯往下的都歸為硬件寄猩,要注意軟件和硬件的劃分也是與時俱進的嫉晶,今天的軟件很可能明天就變成了硬件,比如以前編寫硬件邏輯代碼是軟件,而隨著高級編程語言的出現(xiàn)和成熟车遂,現(xiàn)在編寫硬件邏輯代碼已經(jīng)視為硬件部分了封断。
8.請你嘗試說明高級語言、匯編語言和機器語言的區(qū)別和聯(lián)系舶担?
高級語言是方便程序員描述程序邏輯的編程語言坡疼,與人類語言接近;匯編語言時方便程序員描述硬件邏輯的編程語言衣陶,與底層硬件接近柄瑰;機器語言時方便計算機理解和運行的編程語言,一般程序員無法理解剪况。
9.請完成常見的容量換算公式:
1). 1G = ( 10^3 )Bytes
2). 1Byte = ( 8 )bits
3). 一條內(nèi)存條的容量大約2( GB )
4). 一個磁盤的容量大約1( T )
5). 一個SSD的容量大約256( GB )
10.CPU的速度一般使用什么做單位教沾?它具有什么物理意義?
赫茲译断,是國際單位制中頻率的單位授翻,它是每秒中的周期性變動重復次數(shù)的計量。1Hz = 1/s孙咪,即在單位時間內(nèi)完成振動的次數(shù)堪唐,單位為赫茲(1赫茲=1次/秒)。
11.網(wǎng)絡(luò)的速度一般使用什么做單位翎蹈?
bps淮菠,比特率是指每秒傳送的比特(bit)數(shù)。單位為 bps(Bit Per Second)荤堪,比特率越高合陵,每秒傳送數(shù)據(jù)就越多。
12.20世紀80年代以前的計算機是不支持輸入中文的澄阳,當時的計算機使用的是什么編碼集拥知?
ASCII編碼集。
13.ASCII編碼集占用多少個字節(jié)碎赢?
ASCII有128個字符举庶,占用7個比特位,擴展ASCII編碼機占用8個比特位揩抡,一個字節(jié)户侥。
14.‘A’, ‘b’, 'C’對應的ASCII十進制數(shù)值分別是多少?
65峦嗤、98蕊唐、67。
15.你可以使用你熟悉的語言將 72烁设、96替梨、108轉(zhuǎn)換為ASCII碼嗎钓试?
String.fromCharCode
String.fromCharCode(72) "H" String.fromCharCode(96) "`" String.fromCharCode(108) "l"
16.你知道Unicode編碼和UTF-8編碼的區(qū)別和聯(lián)系嗎?
Unicode全名為:統(tǒng)一碼副瀑、萬國碼弓熏,是計算機科學領(lǐng)域里的一項業(yè)界標準。Unicode標準有不同的編碼實現(xiàn)糠睡,比如UTF-8挽鞠、UTF-16、UTF-32狈孔,也即是可以有多種規(guī)則來實現(xiàn)Unicode標準信认,比如UTF-8使用的是不定長字節(jié)表示Unicode字符,在表示高位Unicode字符時可以自動擴展均抽,UTF-32使用的是定長4個字節(jié)表示Unicode字符嫁赏。
17.假設(shè)有10000個漢字,6000個日本字油挥,3000個韓國字潦蝇,1000個特殊字符,如果讓你設(shè)計一套通用的編碼集深寥,請問每個字至少幾個比特位攘乒?
10000+6000+3000+1000=20000個字符,最起碼使用15個比特位翩迈,占2個字節(jié)持灰。
九盔夜、 十二個重要概念
- 摩爾定律
- 馮諾依曼機
- 馮諾依曼瓶頸
- 程序解釋
- 程序翻譯
- 高級語言
- 匯編語言
- 機器語言
- 計算機軟件
- 計算機硬件
- 計算機的層次結(jié)構(gòu)
- 計算機編碼集