《現代作業系統》閱讀筆記——作業系統梗概
- 作業系統的主要功能
- 隐藏複雜的底層硬體操作,為使用者程式提供抽象
- 管理計算機資源
- 超線程
- 對于一般的CPU, 雖然有多線程的概念,但是實際上CPU中每一時刻還是隻有一個線程在執行的
- 我們知道現代CPU是流水線執行的,并且每個流水線階段有多個執行單元,比如專門執行浮點運算的,是以在不同任務重很有可能有些執行單元會不在工作。而超線程技術就是讓閑着的那些執行單元去做另一個線程的工作。這樣就實作了每一是個有多于一個線程在執行。
- 但是這樣需要多于的硬體去管理,線程越多管理越複雜,是以一般隻有2個線程
- 在核心本身就被充分利用的情況,超線程沒什麼用處
- CPU, 實體核心和邏輯核心
- CPU就是每台電腦一個的那東西
- 核心就是CPU中含有的核心數,現在一般是一個CPU8核心,他們公用一些cache
- 實體核心和邏輯核心一般來說是一樣的,但是由于超線程技術的存在,邏輯記憶體可能是實體核心的兩倍
- 作業系統五大組成部分
- 輸入輸出政策
- 最簡單的就是CPU阻塞等待輸出輸出完成
- 一般的方法是啟動裝置,待操作完成發出中斷
- 第三種是DMA,直接儲存器通路。和第二種方法不同之處在于,第二種是将資料讀入一個緩沖區。待緩沖區滿後,發出中斷,清空緩沖區。但是如果輸入資料量很大的時候會面臨頻繁中斷的問題。而DMA是直接讓記憶體與裝置連接配接,在完成所有輸入的時候才發出中斷,通知CPU。
- 核心模式和使用者模式
- PSW(使用者狀态字)寄存器内含了CPU優先級,溢出标志等來表示目前程式的狀态,核心和使用者模式也可以在此被設定
- 核心模式對計算機有全部操作權限,而使用者模式隻有有限權限,比如不能通路受保護的記憶體,不能修改目前模式等
- I/O指令等都需要從使用者模式轉移到核心模式再執行
- 程序擁有的資源
- 寄存器
- 打開的檔案清單
- 警報(alarm)
- 相關程序清單
- 運作程式所需要的其他資訊
- 位址空間
- 檔案系統
- 作業系統将底層複雜的各種I/O細節抽象成了統一的概念——檔案
- 特殊檔案
- 塊特殊檔案:磁盤等
- 字元特殊檔案: 列印機等
- 特殊檔案抽象使得這個裝置看起來像檔案一樣
- 一般存放在/dev目錄中
- 系統調用
- 微核心
- 把許多核心态的功能放到使用者态實作
- 代碼量較小
- 減少核心中的錯誤
- 為什麼C不支援自動垃圾回收機制呢?
- 因為作業系統是用C語言寫的,這樣直接管理效率更高
- 當發生中斷的時候,系統隻有很有限時間來處理,如果這個時候自動來及回收機制突然調用了,就有可能丢失關鍵資訊
- POXIS标準
- 一開始UNIX有不同的版本,各個版本之間不相容,後來為了統一标準,指定了POXIS标準,凡是符合這個标準的程式可以在任何版本的UNIX系統上運作。
100) ? false:true" x-data="topBtn" @click="scrolltoTop" x-cloak>