python筆記:#006#程式執行原理
阿新 • • 發佈:2019-01-28
程式執行原理(科普)
目標
- 計算機中的 三大件
- 程式執行的原理
- 程式的作用
01. 計算機中的三大件
計算機中包含有較多的硬體,但是一個程式要執行,有 三個 核心的硬體,分別是:
- CPU
- 中央處理器,是一塊超大規模的積體電路
- 負責 處理資料/計算
- 記憶體
- 臨時 儲存資料(斷電之後,資料會消失)
- 速度快
- 空間小(單位價格高)
- 硬碟
- 永久 儲存資料
- 速度慢
- 空間大(單位價格低)
CPU | 記憶體 | 硬碟 |
---|---|---|
思考題
- 計算機中哪一個硬體裝置負責執行程式?
- CPU
- 記憶體 的速度快還是 硬碟 的速度快?
- 記憶體
- 我們的程式是安裝在記憶體中的,還是安裝在硬碟中的?
- 硬碟
- 我買了一個記憶體條,有 500G 的空間!!!,這句話對嗎?
- 不對,記憶體條通常只有
4G
/8G
/16G
/32G
- 不對,記憶體條通常只有
- 計算機關機之後,記憶體中的資料都會消失,這句話對嗎?
- 正確
02. 程式執行的原理
- 程式 執行之前,程式是 儲存在硬碟 中的
- 當要執行一個程式時
- 作業系統會首先讓 CPU 把程式複製到 記憶體 中
- CPU 執行 記憶體 中的 程式程式碼
程式要執行,首先要被載入到記憶體
2.1 Python 程式執行原理
- 作業系統會首先讓 CPU 把 Python 直譯器 的程式複製到 記憶體 中
- Python 直譯器 根據語法規則,從上向下 讓 CPU
- CPU 負責執行翻譯完成的程式碼
Python 的直譯器有多大?
- 執行以下終端命令可以檢視 Python 直譯器的大小
# 1. 確認直譯器所在位置
$ which python
# 2. 檢視 python 檔案大小(只是一個軟連結)
$ ls -lh /usr/bin/python
# 3. 檢視具體檔案大小
$ ls -lh /usr/bin/python2.7
提示:建立 軟連結 的目的,是為了方便使用者不用記住使用的直譯器是 哪一個具體版本
03. 程式的作用
程式就是 用來處理資料 的!
- 新聞軟體 提供的 新聞內容、評論……
- 電商軟體 提供的 商品資訊、配送資訊…… 是資料
- 運動類軟體 提供的 運動資料…… 是資料
- 地圖類軟體 提供的 地圖資訊、定位資訊、車輛資訊…… 是資料
- 即時通訊軟體 提供的 聊天資訊、好友資訊…… 是資料
- ……
3.1 思考 QQ 程式的啟動過程
- QQ 在執行之前,是儲存在 硬碟 中的
- 執行之後,QQ 程式就會被載入到 記憶體 中了
3.2 思考 QQ 程式的 登入 過程
- 讀取使用者輸入的 QQ 號碼
- 讀取使用者輸入的 QQ 密碼
- 將 QQ 號碼 和 QQ 密碼 傳送給騰訊的伺服器,等待伺服器確認使用者資訊
思考 1
在 QQ 這個程式將 QQ 號碼 和 QQ 密碼 傳送給伺服器之前,是否需要先儲存一下 QQ 號碼 和 密碼?
答案
肯定需要!—— 否則 QQ 這個程式就不知道把什麼內容傳送給伺服器了!
思考 2
QQ 這個程式把 QQ 號碼 和 QQ 密碼 儲存在哪裡?
答案
儲存在 記憶體 中,因為 QQ 程式自己就在記憶體中
思考 3
QQ 這個程式是怎麼儲存使用者的 QQ 號碼 和 QQ 密碼 的?
答案
- 在記憶體中為 QQ 號碼 和 QQ 密碼 各自分配一塊空間
- 在 QQ 程式結束之前,這兩塊空間是由 QQ 程式負責管理的,其他任何程式都不允許使用
- 在 QQ 自己使用完成之前,這兩塊空間始終都只負責儲存 QQ 號碼 和 QQ 密碼
- 使用一個 別名 標記 QQ 號碼 和 QQ 密碼 在記憶體中的位置
- 在程式內部,為 QQ 號碼 和 QQ 密碼 在記憶體中分配的空間就叫做 變數
- 程式就是用來處理資料的,而變數就是用來儲存資料的