更新於 2024/12/09閱讀時間約 6 分鐘

作業系統和 CPU 的學習文章統整(共六篇文章連結)

原以為我對硬體會很有興趣,而且摸得到得硬體應該不難,結果實際上寫筆記卡超久。難怪很少聽到文組轉硬體工程師😁 以下是 ChatGPT 重新幫我整理,針對作業系統和 CPU 發表文章的架構:

標題可以直接點,連結到我的細節文章q(≧▽≦q)

第一部分:操作系統的基礎觀念(OS 入門)

目標:理解操作系統是什麼,如何與硬體和使用者互動

  1. OS 觀念:什麼是操作系統?
    • 用手機或電腦系統當例子,解釋 OS 就像是「電腦的大總管」,負責管理硬體、軟體和應用程式的協作。
  2. Kernel & Shell(核心與介面)
    • 用「工廠」的比喻來解釋:Kernel 是工廠裡的主管,直接控制硬體。Shell 是工廠的接單業務,負責跟客戶溝通,傳遞工作指令。
  3. Interrupt(中斷)與 System Call(系統呼叫) & System Bus
    • 中斷(Interrupt):就像遊戲通知彈出視窗,強行打斷你正在做的事,迫使你立刻處理更重要的事情。
    • System Call:程式向 OS 請求幫忙,比如開啟檔案或網路連線。
    • System Bus:像電腦裡的「資料高速公路」,用來傳輸指令和資料。
  4. Processor, CPU, Core(處理器與核心)
    • 用多核心手機比喻:Processor(處理器):整個大腦,內含多個 Core(核心)。CPU(中央處理單元):特指運算核心的執行部分,負責處理指令。

第二部分:硬體運作的基本機制(資料處理流程)

目標:了解 CPU 如何處理指令,記憶體如何儲存資料

  1. Introduction to Memory (Big Picture)
    • 記憶體的角色:用臨時辦公桌比喻記憶體(RAM),用儲藏室比喻硬碟。
  2. Memory(RAM, SRAM, DRAM, ROM, Storage)
    • RAM 像辦公桌,SRAM 像 CPU 的快取,ROM 像手機的系統資料。
  3. Fetch-Execute Cycle of CPU(取指 - 解碼 - 執行)
    • 用遊戲技能釋放比喻:Fetch(取指):CPU 從記憶體中拿指令。Decode(解碼):分析要做什麼。Execute(執行):進行運算或執行指令。

第三部分:程式與執行緒(Process Management)

目標:了解作業系統如何管理程式

  1. Process & Thread & Process Control Block(PCB)
    • 遊戲副本比喻:Process(行程):每個遊戲房間就是一個程式。Thread(執行緒):遊戲中的每個角色就是一個執行緒。PCB(行程控制區塊):遊戲房間裡的狀態紀錄,儲存誰進來過、血量等資訊。
  2. Context Switch(上下文切換)
    • 被打電話打斷後繼續寫作業的比喻,解釋 CPU 在程式間切換的過程。
  3. Process State(行程狀態)
    • 遊戲排隊比喻:角色從「建立、準備、等待、執行、終止」的過程,強調 Ready 不會直接到 Running。

第四部分:CPU 調度與排程策略

目標:理解程式的排程策略,如何讓多個應用程式同時執行

  1. CPU Scheduling Criteria(CPU 調度準則)
    • 解釋到達時間、完成時間等指標,像排隊系統一樣。
  2. CPU Scheduling(Preemptive & Non-Preemptive)
    • 用比賽排程和搶座位比喻,解釋八種常見的 CPU 排程策略。

第五部分:多程式協調與通訊機制

目標:處理多個應用程式的競爭與協作

  1. Interprocess Communication(IPC, 行程間通訊)
    • 籃球比賽比喻:不同球員(行程)之間需要共享資料。
  2. Race Condition & Critical Section & Dekker's Algorithm
    • 同時有大量的人按讚,如何讓來自不同地方的程式依序更新資料?
  3. Deadlock 與形成的四個條件
    • 兩輛車在窄巷相遇的場景,說明「死結」的形成與解決方案。

第六部分:記憶體管理與虛擬化技術

目標:記憶體分配與虛擬化應用

  1. Logical Memory & Physical Address(邏輯與實體記憶體)
    • 電影位置系統比喻,說明記憶體管理的邏輯分配。
  2. Segmentation and Paging(分段與頁面管理)
    • 用書架和圖書館的比喻,解釋記憶體分段與頁面交換。
  3. Virtual Memory, Page In/Out, Disk Thrashing(虛擬記憶體管理)
    • 後台應用管理比喻,解釋程式暫存到硬碟的過程。
  4. Virtual Memory & Containers(虛擬記憶體與容器技術)
    • 雲端遊戲伺服器比喻,說明虛擬化技術如何分配資源給不同的應用程式。

總結:學習順序的邏輯與文章連結。

  1. 操作系統基礎(OS 入門)
  2. 硬體運作基礎(CPU 與記憶體)
  3. 程式執行流程(Process 與執行緒)
  4. CPU 資源管理(排程與調度)
  5. 多程式管理(Process 間的通信與死結)
  6. 記憶體管理與虛擬化(進階技術)
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.