程序執行原理(科普)

程序執行原理(科普)

目標

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

01. 計算機中的三大件

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

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

思考題

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

02. 程序執行的原理

001_程序執行示意圖-w

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

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

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

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

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

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 這個程序就不知道把什麼內容發送給服務器了!code

思考 2

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

答案table

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

思考 3

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

答案

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

004_QQ號碼和密碼內存示意圖

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