iT邦幫忙

2021 iThome 鐵人賽

DAY 7
0
自我挑戰組

30天 從0開始的 Python 全方面應用系列 第 7

[day-7] 在正式開始寫程式之前,先來認識電腦本身吧!(Part .2)

前情提要

昨天 [day-6] 大致介紹了,電腦的起源與相關發展史,相信各位讀資訊或是商業領域的人應該多少都讀過(吧W
今天要來繼續介紹電腦啦~但是重點不在歷史ㄌ啦 @@#


1-1 電腦的硬體架構(五大單元)

電腦的五大單元有這些

  • 算數邏輯單元(Arithmetic & Logic Unit)
  • 控制單元(Control Unit)
  • 記憶單元(Memory Unit)
  • 輸入單元(Input Unit)
  • 輸出單元(Output Unit)

電腦的五大單元
▲ 附圖 1 - 電腦的五大單元 關係圖 [資料來源]

我們常說的 中央處理單元(Central Processing Unit, CPU) ,其內部含有 算數邏輯單元(Arithmetic & Logic Unit)控制單元(Control Unit)

  1. 控制單元負責程式指令的取得和解釋,並指揮電腦各部分協調運作
  2. 算術邏輯單元 是邏輯與運算的實際運作單元,其內部含 暫存器(Register)
    暫存器存在的目的是為了暫存運算中的資料,避免多次調用記憶體中的內容導致高延遲
  3. CPU 內部各單元間的聯繫是透過 匯流排(Bus)的方式傳輸

由於近年來科技的發展,各大科技巨頭每年都想著該怎麼提升自家硬體效能

隨著時間的推移,迎面而來的問題越來越多。舉例來說:匯流排的頻寬、零件間的延遲、散熱的面積、零時差漏洞 等多種問題將同時被考慮。
受這次新冠病毒COVID-19的影響,有許多工廠關閉導致原物料跟著漲價,半導體產業也因此面臨供不應求的狀況,許多廠商看準商機打算藉此機會向多個國家布局。


1-2 軟體

我們常使用的 應用程式(application program) 大多都是建構在作業系統之上

你可能會問甚麼是作業系統(Operating System)? (這裡礙於篇幅長度快速帶過)
  簡單來說,作業系統是讓應用程式與硬體之間 "溝通的橋樑"
作業系統負責提供應用程式執行的環境,與基礎的資源分配,而現在普遍消費者所使用的作業系統,甚至會內建 圖形化桌面環境(Desktop environment) 使消費者能更快速上手。

據說當年微軟為了拚Windows10的市占率,除了免費升級之外,甚至與OEM廠商達成共識
聯手出售一些低規格的筆電,其內部的Windows家用版授權為免費贈送
難道這就是那些32g容量筆電的由來(?
(以上言論純屬玩笑,如有雷同純屬巧合oxo)


1-2.1 程式語言的分類與執行

廣義的程式語言 可大致區分為 低階語言高階語言
『低階語言』通常是 較為貼近硬體所呈現的語言,其不易閱讀,且難度偏高,但是運作快速。
『高階語言』與低階語言相較之下,能更接近人類的日常用法,可讀性較高,學習所需的時間較短。

高階語言 在執行程式時,需要翻譯回機器可讀的語言 機器語言(machine language) ,因此需要一個轉換工具來協助我們的程式正常運作!主流採用的為 "直譯" 與 "編譯" 兩種,各有優缺點。

  1. 直譯器(interpreter)的功能是將程式碼依照邏輯順序逐行轉為機器語言指令並立即執行。
    優點:所需的記憶體較小,原始碼暫用較小的空間,容易除錯(電腦執行到某一行出錯了可以快速了解是哪個出現問題),方便初學者使用。
    缺點:當程式碼過於龐大其效率會顯著降低。
    直譯器
  2. 編譯器(compiler)的功能是將程式碼一次翻譯成機器語言。
    優點:日後執行大型程式的速度會相對直譯來的快。
    缺點:編譯所需的時間較長,每一次都修改都必須重新編譯。
    編譯器

Python被執行的流程
▲ 附圖 2 Python被執行的過程 對照組為C語言 [資料來源]
註解:Python 是運作在PVM (Python Virtual Machine)上


上一篇
[day-6] 在正式開始寫程式之前,先來認識電腦本身吧!(Part .1)
下一篇
[day-8] 凡事都有第一次,撰寫程式前的必要步驟!
系列文
30天 從0開始的 Python 全方面應用28

尚未有邦友留言

立即登入留言