程序執行原理(科普)
目標
01. 計算機中的三大件
計算機中包含有較多的硬件,可是一個程序要運行,有 三個 核心的硬件,分別是:python
- CPU
- 中央處理器,是一塊超大規模的集成電路
- 負責 處理數據/計算
- 內存
- 臨時 存儲數據(斷電以後,數據會消失)
- 速度快
- 空間小(單位價格高)
- 硬盤
思考題
- 計算機中哪個硬件設備負責執行程序?
- 內存 的速度快仍是 硬盤 的速度快?
- 咱們的程序是安裝在內存中的,仍是安裝在硬盤中的?
- 我買了一個內存條,有 500G 的空間!!!,這句話對嗎?
- 不對,內存條一般只有
4G
/ 8G
/ 16G
/ 32G
- 計算機關機以後,內存中的數據都會消失,這句話對嗎?
02. 程序執行的原理
- 程序 運行以前,程序是 保存在硬盤 中的
- 當要運行一個程序時
- 操做系統會首先讓 CPU 把程序複製到 內存 中
- CPU 執行 內存 中的 程序代碼
程序要執行,首先要被加載到內存bash
2.1 Python 程序執行原理
- 操做系統會首先讓 CPU 把 Python 解釋器 的程序複製到 內存 中
- Python 解釋器 根據語法規則,從上向下 讓 CPU 翻譯 Python 程序中的代碼
- CPU 負責執行翻譯完成的代碼
Python 的解釋器有多大?
- 執行如下終端命令能夠查看 Python 解釋器的大小
# 1. 確認解釋器所在位置
$ which python
# 2. 查看 python 文件大小(只是一個軟連接)
$ ls -lh /usr/bin/python
# 3. 查看具體文件大小
$ ls -lh /usr/bin/python2.7
提示:創建 軟連接 的目的,是爲了方便使用者不用記住使用的解釋器是 哪個具體版本服務器
03. 程序的做用
程序就是 用來處理數據 的!python2.7
- 新聞軟件 提供的 新聞內容、評論…… 是數據
- 電商軟件 提供的 商品信息、配送信息…… 是數據
- 運動類軟件 提供的 運動數據…… 是數據
- 地圖類軟件 提供的 地圖信息、定位信息、車輛信息…… 是數據
- 即時通信軟件 提供的 聊天信息、好友信息…… 是數據
- ……
3.1 思考 QQ 程序的啓動過程
- QQ 在運行以前,是保存在 硬盤 中的
- 運行以後,QQ 程序就會被加載到 內存 中了
3.2 思考 QQ 程序的 登陸 過程
- 讀取用戶輸入的 QQ 號碼
- 讀取用戶輸入的 QQ 密碼
- 將 QQ 號碼 和 QQ 密碼 發送給騰訊的服務器,等待服務器確認用戶信息
思考 1
在 QQ 這個程序將 QQ 號碼 和 QQ 密碼 發送給服務器以前,是否須要先存儲一下 QQ 號碼 和 密碼?操作系統
答案翻譯
確定須要!—— 不然 QQ 這個程序就不知道把什麼內容發送給服務器了!code
思考 2
QQ 這個程序把 QQ 號碼 和 QQ 密碼 保存在哪裏?內存
答案table
保存在 內存 中,由於 QQ 程序本身就在內存中電商
思考 3
QQ 這個程序是怎麼保存用戶的 QQ 號碼 和 QQ 密碼 的?
答案
- 在內存中爲 QQ 號碼 和 QQ 密碼 各自分配一塊空間
- 在 QQ 程序結束以前,這兩塊空間是由 QQ 程序負責管理的,其餘任何程序都不容許使用
- 在 QQ 本身使用完成以前,這兩塊空間始終都只負責保存 QQ 號碼 和 QQ 密碼
- 使用一個 別名 標記 QQ 號碼 和 QQ 密碼 在內存中的位置
- 在程序內部,爲 QQ 號碼 和 QQ 密碼 在內存中分配的空間就叫作 變量
- 程序就是用來處理數據的,而變量就是用來存儲數據的