👋 歡迎來到軟體與系統控制的世界!
你好!這一章的重點是認識計算機背後的無名英雄:那些讓你的裝置運作的程式,以及讓系統在不崩潰的前提下平穩運作的巧妙機制。我們將拆解你每天使用的軟體類型,並學習 CPU 如何利用一種稱為中斷 (Interrupts) 的機制來處理緊急請求。
理解這部分至關重要,因為它解釋了用戶、程式與電腦硬體之間的基本關係。讓我們開始吧!
1. 軟體類型(系統軟體 vs. 應用軟體)
根據用途的不同,所有軟體都可以歸類為兩大類:系統軟體 (System Software) 或 應用軟體 (Application Software)。
1.1 系統軟體:電腦的經理
系統軟體是用於管理、控制和操作電腦硬體,並為應用軟體提供運行平台的基礎軟體。
- 它專注於電腦本身的運作。
- 如果沒有系統軟體,電腦連開機都無法完成!
系統軟體的例子:
1. 作業系統 (Operating System, OS):(我們稍後會詳細介紹!)例如:Windows、macOS、Android。
2. 公用程式 (Utility Software):執行維護任務的程式。例如:防毒軟體、磁碟重組工具、檔案壓縮工具。
1.2 應用軟體:用戶的工具
應用軟體是為了讓用戶執行特定任務或功能而設計的。
- 它專注於協助用戶完成工作、娛樂或溝通。
- 應用軟體必須依賴作業系統才能運作。
應用軟體的例子:
1. 生產力工具:文書處理軟體、試算表、簡報軟體。
2. 娛樂:電子遊戲、媒體播放器。
3. 通訊:網頁瀏覽器、電子郵件客戶端。
4. 專業工具:CAD(電腦輔助設計)軟體、會計軟體。
💡 快速複習:如何分辨兩者
如果程式是在幫助電腦本身管理資源(例如記憶體或檔案),它就是系統軟體。
如果程式是在幫助人類用戶執行任務(例如撰寫報告或播放歌曲),它就是應用軟體。
2. 作業系統 (OS) 的角色與功能
作業系統 (OS) 是最重要的系統軟體。你可以把它想像成一位總經理,負責協調電腦系統內的一切活動。
類比時間:餐廳經理
想像你的電腦是一家忙碌的餐廳。作業系統就是經理。它不會親自下廚(應用軟體),但它確保廚房 (CPU)、侍應生 (周邊設備) 和儲藏室 (記憶體/磁碟) 都能高效地協作。
課程大綱要求你了解作業系統的基本功能。它有九個主要職責:
作業系統的核心功能:
- 檔案管理:在儲存裝置上組織、儲存、檢索、刪除和重新命名檔案與資料夾。
- 處理中斷:回應來自硬體或軟體、需要立即關注的訊號(稍後會深入討論!)。
- 提供介面:讓用戶能與電腦互動(例如:圖形使用者介面 (GUI),如圖示和視窗;或命令列介面 (CLI))。
- 管理周邊設備與驅動程式:控制所有連接的裝置(印表機、滑鼠等)。驅動程式 (Drivers) 是特殊的程式,讓作業系統能夠與特定的周邊設備進行溝通。
- 記憶體管理:將隨機存取記憶體 (RAM) 的區段分配給需要運行的應用程式,並在程式結束時回收記憶體。
- 管理多工處理:透過在程式間快速切換 CPU(時間分割,Time Slicing),讓多個程式看起來像是同時在運行。
- 為應用程式提供平台:確保應用軟體擁有啟動和運行所需的所有必要元件與資源。
- 提供系統安全性:管理存取權限並確保系統完整性(例如:密碼保護和防火牆)。
- 管理用戶帳戶:允許不同用戶登入,設定權限,並將其數據分開管理。
重點總結:作業系統是用戶、應用程式與實體硬體之間不可或缺的連結,確保系統運作的高效性與可控性。
3. 軟體層級:硬體、韌體與作業系統
要運行一個應用程式(如你最愛的遊戲或試算表),三種不同層級的軟體與硬體必須按特定順序協作。
3.1 理解各個層級
- 硬體 (Hardware):實體元件。這是能量啟動的地方。
- 韌體 (Firmware):這是一種低階、永久性的軟體,儲存在電腦主機板上的晶片中(通常是 ROM 或 Flash 記憶體)。
- 它的主要工作是執行啟動載入程式 (Bootloader)。
- 啟動載入程式 (韌體) 是電腦開啟時執行的第一組指令。它的工作很簡單,就是檢查基本硬體,然後載入作業系統。
- 作業系統 (OS):一旦韌體完成任務,作業系統就會接手並載入到 RAM 中。作業系統負責控制整體環境。
- 應用軟體:應用程式運行在作業系統之上。它們完全依賴作業系統來處理 CPU、記憶體和螢幕等資源。
你知道嗎?舊型電腦中的 BIOS (基本輸出入系統) 是韌體的經典例子。現在,許多系統使用 UEFI (統一可延伸韌體介面),執行同樣的初始載入工作。
流程總結:
電源開啟 -> 硬體啟動韌體 (Bootloader) -> 韌體載入作業系統 -> 作業系統開始運行應用程式。
4. 中斷 (Interrupts) 的角色與運作
想像一下,CPU 正在忙於執行複雜的運算。突然,用戶按下了鍵盤上的一個鍵,或者發生了嚴重的錯誤。CPU 是如何停下手中工作去處理這個緊急請求的呢?
它使用中斷 (Interrupt)。
4.1 定義中斷
中斷是一個發送給 CPU 的訊號,促使它停止當前的程序,並立即切換去處理緊急事件。本質上,這是一個禮貌但堅定的請求,要求 CPU 立即給予關注。
作業系統負責處理這些中斷。
4.2 中斷是如何產生的
中斷來源於兩種途徑:
A. 硬體中斷 (Hardware Interrupts):
- 由周邊設備觸發。
- 例子:按下鍵盤按鍵、移動滑鼠、磁碟機完成資料傳輸,或計時器時間到。
B. 軟體中斷 (Software Interrupts):
- 由運行中的程式所產生的錯誤或請求觸發。
- 例子:程式嘗試進行除以零的運算(在數學上是不可能的),或是兩個處理程序同時嘗試存取同一個記憶體位址。
4.3 中斷處理程序 (ISR)
當發生中斷時,CPU 會遵循一個特定的步驟來處理它。這個程序通常會使用中斷服務常式 (Interrupt Service Routine, ISR)——這是作業系統中專門處理特定類型中斷的一小段程式。
運作步驟:
- 中斷訊號:一個裝置(例如鍵盤)產生中斷訊號並發送給 CPU。
- 儲存當前程序:CPU 完成當前的「擷取-解碼-執行」(Fetch-Decode-Execute) 循環。在開始新任務前,CPU 會保存當前正在運行程式的精確狀態(包括暫存器如程式計數器 (Program Counter)),以便稍後能回到完全相同的位置。
- 優先權檢查:CPU 檢查傳入中斷的優先權。斷電訊號的優先權高於滑鼠點擊。如果新中斷的優先權高於當前正在處理的任務,CPU 會先處理新的中斷。
- 定位 ISR:CPU 使用中斷向量表(由作業系統管理)來找到對應中斷服務常式 (ISR) 的記憶體起始位址。
- 執行:CPU 執行 ISR(例如:鍵盤按鍵的 ISR 會將字元讀入記憶體)。
- 狀態還原:一旦 ISR 完成,CPU 會取回原始程式的已儲存狀態。
- 繼續執行:CPU 還原已儲存的暫存器,並繼續執行原始程式,就像什麼都沒發生過一樣。
常見錯誤:
學生有時會以為 CPU 會在指令執行到一半時立刻停止。不對!CPU 總是會完成當前的 FDE 循環,才會停止、儲存狀態並處理中斷。
重點總結:中斷是作業系統與 CPU 確保緊急且具時間敏感性的事件(如用戶輸入或錯誤)能被即時處理,同時又不遺失主任務進度的方式。