<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 程序執行原理(科普) ## 目標 * 計算機中的 **三大件** * 程序執行的原理 * 程序的作用 ## 01. 計算機中的三大件 計算機中包含有較多的硬件,但是一個程序要運行,有 **三個** 核心的硬件,分別是: 1. **CPU** * 中央處理器,是一塊超大規模的集成電路 * 負責 **處理數據**/**計算** 2. **內存** * **臨時** 存儲數據(斷電之后,數據會消失) * 速度快 * 空間小(單位價格高) 3. **硬盤** * **永久** 存儲數據 * 速度慢 * 空間大(單位價格低) | CPU | 內存 | 硬盤 | | :---: | :---: | :---: | ![](https://pic.downk.cc/item/5e7f17c3504f4bcb0459da03.jpg) |![](https://pic.downk.cc/item/5e7f182e504f4bcb045a3973.jpg) |![](https://pic.downk.cc/item/5e7f17d0504f4bcb0459e40f.jpg) | ### 思考題 1. 計算機中哪一個硬件設備負責執行程序? * **CPU** 2. **內存** 的速度快還是 **硬盤** 的速度快? * **內存** 3. 我們的程序是安裝在內存中的,還是安裝在硬盤中的? * 硬盤 4. **我買了一個內存條,有 500G 的空間!!!**,這句話對嗎? * 不對,內存條通常只有 `4G` / `8G` / `16G` / `32G` 5. **計算機關機之后,內存中的數據都會消失**,這句話對嗎? * 正確 ## 02. 程序執行的原理 ![](https://pic.downk.cc/item/5e7f17fa504f4bcb045a09be.jpg) 1. 程序 **運行之前**,程序是 **保存在硬盤** 中的 2. 當要運行一個程序時 * 操作系統會首先讓 **CPU** 把程序復制到 **內存** 中 * **CPU** 執行 **內存** 中的 **程序代碼** > **程序要執行,首先要被加載到內存** ### 2.1 Python 程序執行原理 ![](https://pic.downk.cc/item/5e7f180c504f4bcb045a1c9e.jpg) 1. 操作系統會首先讓 **CPU** 把 **Python 解釋器** 的程序復制到 **內存** 中 2. **Python 解釋器** 根據語法規則,**從上向下** 讓 **CPU** 翻譯 **Python 程序中的代碼** 3. **CPU** 負責執行翻譯完成的代碼 #### Python 的解釋器有多大? * 執行以下終端命令可以查看 Python 解釋器的大小 ```bash # 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 程序就會被加載到 **內存** 中了 ![](https://pic.downk.cc/item/5e7f181e504f4bcb045a2aea.jpg) ### 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 密碼** 在內存中分配的空間就叫做 **變量** > * **程序就是用來處理數據的,而變量就是用來存儲數據的**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看