一、計算機之編程
1.1 什么是編程語言
編程語言是人與計算機交流的介質
1.2 什么是編程
編程就是使用編程語言編寫一個個文件
1.3 為什么要編程
為了奴隸計算機,解放勞動力,幫人類完成一個個具體的任務
二、計算機組成原理
2.1 計算機五大組成
2.1.1 CPU
2.1.1.1 控制器
控制硬件
2.1.1.2 運算器
進行邏輯運算+算術運算
2.1.2 內存
臨時存儲數據的硬件
- 優點(相比較於外存):速度快
- 缺點(相比較於外存):臨時存儲/斷電即消失
2.1.3 外存
永久存儲數據的硬件
- 優點(相比較於內存):永久存儲
- 缺點(相比較於內存):速度慢
2.1.4 輸入設備
輸入信息的硬件,如鍵盤/鼠標/u盤
2.1.5 輸出設備
輸出信息的硬件,如顯示器/打印機/u盤
2.1.6 I/O設備
即可輸入信息,又可以輸出信息的硬件,稱為I/O設備
2.2 32位和64位
2.2.1 32位
一次性能讀取32個二進制位的操作系統
2.2.2 64位
一次性能讀取64個二進制位的操作系統
2.3 多核CPU
可以同時完成多件事的CPU,如4核CPU則一個大的CPU集成了4個小的CPU
2.4 硬盤工作原理
2.4.1 機械硬盤工作原理
- 機械手臂:尋找數據
- 磁道:存儲數據
- 扇區:划分磁道
- 平均尋道時間:由於工業水平的限制,為5ms
- 平均延遲時間:以7200r/min的硬盤為例,為4.15ms
\[7200(r/min) / 60 = 120(r/s) \\ 1/120(r/s) = 0.0083s = 8.3ms \\ 8.3 / 2 = 4.15ms \\ \]
- 平均尋找數據時間:5+4.15=9.15ms
2.4.2 固態硬盤工作原理
- 基於算法和電存儲的外存
三、計算機操作系統
3.1 文件是什么?
操作系統提供的一個虛擬的單位
3.2 應用程序是什么?
應用程序其實就是一堆文件,用來完成具體的某個任務
3.3 操作系統能干什么?
接受應用程序/人的外部指令,然后控制硬件
3.4 計算機三大組成?
3.4.1 應用程序
應用程序其實就是一堆文件,用來完成具體的某個任務,與人/操作系統交互
3.4.2 操作系統
接受應用程序/人的外部指令,然后控制硬件,與人/應用程序/硬件交互
3.4.3 硬件
最終的目的是用來存儲數據,與操作系統交互
3.4.4 應用程序的啟動和操作系統的啟動?
3.4.4.1 應用程序的啟動
- 雙擊qq(發送指令給操作系統)
- 操作系統接收指令,將指令轉化成0和1發送給CPU
- CPU接收指令,發送給內存
- 內存從硬盤中取出qq的程序,執行,打開qq
3.4.4.2 操作系統的啟動
- 按下開機鍵(啟動一個臨時操作系統)
- 臨時操作系統喚醒真正的操作系統
四、編程語言分類
4.1 機器語言
- 優點(匯編語言):執行效率高
- 缺點(匯編語言):開發效率低
4.2 匯編語言
- 優點(機器語言):開發效率高
- 缺點(機器語言):執行效率低
4.3 高級語言
4.3.1 解釋型語言
類似於同聲傳譯,寫一句翻譯一句
- 優點(編譯型語言):開發效率高
- 缺點(編譯型語言):執行效率低
4.3.2 編譯型語言
類似於谷歌翻譯,寫完所有的代碼,一次性編譯后得到結果,並且結果可以保存,無法得到及時的報錯反饋
- 優點(解釋型語言):執行效率高
- 缺點(解釋型語言):開發效率低
五、網絡的瓶頸效應
由於網絡傳輸的數據可能為10ms,而Python的代碼運行時間為1ms,機器語言的代碼運行時間為0.001ms,在你上一段數據運輸成功之前,無論你的代碼運行時間是1ms,還是0.0000001ms,還是9ms,本質上沒啥區別,這就是互聯網中的網絡的瓶頸效應。