python運行原理

程序執行原理(科普)

目標

  • 計算機中的 三大件
  • 程序執行的原理
  • 程序的作用

01. 計算機中的三大件

計算機中包含有較多的硬件,但是一個程序要運行,有 三個 核心的硬件,分別是:

  1. CPU
    • 中央處理器,是一塊超大規模的集成電路
    • 負責 處理數據計算
  2. 內存
    • 臨時 存儲數據(斷電之後,數據會消失)
    • 速度快
    • 空間小(單位價格高)
  3. 硬盤
    • 永久 存儲數據
    • 速度慢
    • 空間大(單位價格低)
CPU 內存 硬盤
CPU-w200 內存條-w200 硬盤-w200

思考題

  1. 計算機中哪一個硬件設備負責執行程序?
    • CPU
  2. 內存 的速度快還是 硬盤 的速度快?
    • 內存
  3. 我們的程序是安裝在內存中的,還是安裝在硬盤中的?
    • 硬盤
  4. 我買了一個內存條,有 500G 的空間!!!,這句話對嗎?
    • 不對,內存條通常只有 4G / 8G / 16G / 32G
  5. 計算機關機之後,內存中的數據都會消失,這句話對嗎?
    • 正確

02. 程序執行的原理

  1. 程序 運行之前,程序是 保存在硬盤 中的
  2. 當要運行一個程序時
    • 操作系統會首先讓 CPU 把程序複製到 內存
    • CPU 執行 內存 中的 程序代碼

程序要執行,首先要被加載到內存

2.1 Python 程序執行原理

003_Python程序執行示意圖

  1. 操作系統會首先讓 CPUPython 解釋器 的程序複製到 內存
  2. Python 解釋器 根據語法規則,從上向下CPU 翻譯 Python 程序中的代碼
  3. CPU 負責執行翻譯完成的代碼

Python 的解釋器有多大?

  • 執行以下終端命令可以查看 Python 解釋器的大小
# 1. 確認解釋器所在位置
$ which python

# 2. 查看 python 文件大小(只是一個軟鏈接)
$ ls -lh /usr/bin/python

# 3. 查看具體文件大小
$ ls -lh /usr/bin/python2.7

提示:建立 軟鏈接 的目的,是爲了方便使用者不用記住使用的解釋器是 哪一個具體版本

03. 程序的作用

程序就是 用來處理數據 的!

  • 新聞軟件 提供的 新聞內容、評論…… 是數據
  • 電商軟件 提供的 商品信息、配送信息…… 是數據
  • 運動類軟件 提供的 運動數據…… 是數據
  • 地圖類軟件 提供的 地圖信息、定位信息、車輛信息…… 是數據
  • 即時通訊軟件 提供的 聊天信息、好友信息…… 是數據
  • ……

3.1 思考 QQ 程序的啓動過程

  1. QQ 在運行之前,是保存在 硬盤 中的
  2. 運行之後,QQ 程序就會被加載到 內存 中了

003_QQ登陸界面-w248

3.2 思考 QQ 程序的 登錄 過程

  1. 讀取用戶輸入的 QQ 號碼
  2. 讀取用戶輸入的 QQ 密碼
  3. QQ 號碼QQ 密碼 發送給騰訊的服務器,等待服務器確認用戶信息

思考 1

在 QQ 這個程序將 QQ 號碼QQ 密碼 發送給服務器之前,是否需要先存儲一下 QQ 號碼 和 密碼?

答案

肯定需要!—— 否則 QQ 這個程序就不知道把什麼內容發送給服務器了!

思考 2

QQ 這個程序把 QQ 號碼QQ 密碼 保存在哪裏?

答案

保存在 內存 中,因爲 QQ 程序自己就在內存中

思考 3

QQ 這個程序是怎麼保存用戶的 QQ 號碼QQ 密碼 的?

答案

  1. 在內存中爲 QQ 號碼QQ 密碼 各自分配一塊空間
    • 在 QQ 程序結束之前,這兩塊空間是由 QQ 程序負責管理的,其他任何程序都不允許使用
    • 在 QQ 自己使用完成之前,這兩塊空間始終都只負責保存 QQ 號碼QQ 密碼
  2. 使用一個 別名 標記 QQ 號碼QQ 密碼 在內存中的位置
  • 在程序內部,爲 QQ 號碼QQ 密碼 在內存中分配的空間就叫做 變量
  • 程序就是用來處理數據的,而變量就是用來存儲數據的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章