Skip to content

OS Basic(依Neso Academy影片筆記)

基礎

簡介

OS是管理 hardware 的 program
並且提供Application program的基礎,達到中介(intermediray) 使用者 與 電腦硬體

  • 如上圖,分層可以分為
    User
    System/Application program (文字處理器、編譯器、瀏覽器 …)
    OS
    Hardware (* IO devices 比如麥克風、音響、螢幕、鍵盤 ….)

  • 比如打開一個word要編輯文件,word會和要disc的資料,並且輸出在螢幕上,改動後要存回disc , 這些都會用到Hardware。
    而OS,可以提供一個泛化的接口,避免我們需要為每一個任務寫一種source code

  • User可以簡單、抽象化的打開、使用應用程式,調用硬體會交給OS (比如要求資料、分配記憶體)

OS的目標與功能

目標: 追求方便 與 效率
比如windows偏重方便,linux偏重效率
功能:

  1. User 與 hardware 的中介
  2. 分配資源 (allocation of resources)
  3. 管理記憶體、安全 …

電腦硬體架構

理解OS之前,可以先了解電腦的硬體架構
現代的泛用(general-purpose)電腦由一或多個CPU、 device controller ,bus , shared memory 所組成
其中bus會連接CPU、device controller 到shared memory

重要名詞

  • Bootstrap program :
    在開機時最一開始被執行的程式,被儲存於ROM中
    必須要load OS 與執行OS系統
    需要載入OS kernel進入memory
  • Interrupt :
    Hardware 與 software 偵測到事件時,會傳送給OS的訊號
    (Hardware 會由bus傳送訊號)
    當CPU接受interrupt, 會終止手邊的工作,跳到handler的記憶體位址
  • system call : (參考 unix system call) software向OS kernel傳送interrupt,要求更高權限運行的服務

I/O structure

如上述,現代電腦架構由common bus 連結 device controller 、CPU 與 shared memory

其中每個device controller會負責特定種類的裝置,其工作是維護Local buffer storage 與一組特定目的的register

同時OS會有device driver對應每個device controller,其工作是管理controller與為使用者提供device抽象化的interface

IO架構圖

IO operation步驟

  1. CPU給device IO request

  2. device driver給特定的controller的register指令

  3. device controller解讀指令

  4. device controller開始透過local buffer 轉移資料

  5. device controller完成工作,會通知device driver並發出interrupt

  6. IO完成後,device driver將控制權還給OS

這套流程在小量資料時沒問題,但大量資料時(超過local buffer好幾倍),就會頻繁的發出interrupt,降低系統效能

此時DMA(Direct Memory Access)就是為了改善此問題,不需要經由CPU,也就不會降低效能 (此時只有完成工作需通知CPU,也就只需一次interrupt)

參考資料

Introduction to Operating System