python筆記:#006#程序執行原理

程序執行原理(科普)

目標

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

01. 計算機中的三大件

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

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

思考題

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

02. 程序執行的原理

程序執行示意圖

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

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

2.1 Python 程序執行原理

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. 程序的做用

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

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

3.1 思考 QQ 程序的啓動過程

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

QQ登錄界面

3.2 思考 QQ 程序的 登陸 過程

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

思考 1

在 QQ 這個程序將 QQ 號碼QQ 密碼 發送給服務器以前,是否須要先存儲一下 QQ 號碼 和 密碼?操作系統

答案翻譯

確定須要!—— 不然 QQ 這個程序就不知道把什麼內容發送給服務器了!code

思考 2

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

答案table

保存在 內存 中,由於 QQ 程序本身就在內存中電商

思考 3

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

答案

  1. 在內存中爲 QQ 號碼QQ 密碼 各自分配一塊空間
    • 在 QQ 程序結束以前,這兩塊空間是由 QQ 程序負責管理的,其餘任何程序都不容許使用
    • 在 QQ 本身使用完成以前,這兩塊空間始終都只負責保存 QQ 號碼QQ 密碼
  2. 使用一個 別名 標記 QQ 號碼QQ 密碼 在內存中的位置

QQ號碼和密碼內存示意圖

  • 在程序內部,爲 QQ 號碼QQ 密碼 在內存中分配的空間就叫作 變量
  • 程序就是用來處理數據的,而變量就是用來存儲數據的
相關文章
相關標籤/搜索