鐵人賽
今天要介紹各個系統作業類別,透過了解系解的分類及概要的內容,會對於作業系統有更進一步的認識的~
那就開始吧!
系統內存在許多等待執行的Process,而透過CPU Scheduling讓CPU可以在不同Process中切換(Context Switch),讓CPU保持忙碌減少閒置。
為什麼需要切換,因為為了完成軟體需執行的動作,可能需要依賴除了CPU以外的硬體,若CPU的運算過程出現需等待其他硬體先完成後才能繼續執行的事件,就會造成閒置(idle)。
一般而言,Multiprogramming degree(註1)越高,CPU使用率越高,意思是指說越不會出現因為等待其他軟體操做其他硬體工作而造成閒置,除非遇到輾轉現象(Thrashing(註2))。
此系統容許多人同時使用,並對個別的請求盡可能快的產生反應,如果這個輪流使用資源的速度夠快,會看起來像是每個人都在同時與該系統互動,故也會被稱為交談式系統,像是遊戲。
可分成兩類:
支援Parallel Computing,可將Processes或單一Process上subtasks指派到不同CPU,平行直行。
優點:
問題:
n個CPU不等同於n倍效能,會因為前者提到在多工的通訊或共用的資源的競爭導致效能的消耗。
可以想像看看,公司的團隊人數增加兩倍時,就會有兩倍的產能出現嗎...
現代網路的運作模式可以視為是這樣的鬆散耦合,通過一些經過標準化的協定傳遞訊息做溝通。
圖片來自碁峯-作業系統理論與實務--第二版(雙色印刷)15-3
可分成兩類
狹義化的即時系統定義,並相對於柔性即時系統。
確保高優先權Process會先於低優先權被完成,且高優先權Process的優先權要維持到工作完成,對比硬性即時系統來看,此系統僅能保證高優先權最先,但不會限定什麼時間完成。
差異的話,相對於Tightly coupled,他不是多個CPU共用相同資源;而相對於loosely coupled,他也不是多個單獨系統作訊息溝通。
硬要想像跟理解的話,有點像是多個Tightly coupled系統作loosely coupled,不過每個Tightly coupled系統僅共享儲存裝置這樣。
不過回頭來看,我們要說Tightly coupled系統也是一種Clustered System,應該也是符合定義的吧。
系統內等待執行的Process數量
因為Context switch需要記憶體或虛擬記憶體作為資訊存放的地方,於是,當Multingprogramming degreee超過一定程度時,會讓所有Process忙於資訊在記憶體及虛擬記憶體(disk)轉換之中,CPU為了等待完成反而造成閒置。
每個Process有固定的配額時間,配額的時間沒完成目前的工作,Process會被迫放棄並讓出CPU的使用。
為了因應速度不相同的裝置,在兩者之間設置緩衝區(Buffering),以減少兩者速度傳輸造成的閒置或是順序錯誤。
常見的舉例像是: 印表機處理多個裝置的影印工作不會錯置順序。
指的是電腦組件之間交換資料的方式,我的理解就是主機板上連接著組件間的線路。
允許兩個不相關的Process進入讀取、寫入的邏輯記憶體。
高優先權Process在特定情況下,遭到低優先權阻擋而無法完成工作。
特定情況像是,雖然高優先權拿到了CPU的使用權,但低優先權霸佔了高優先權完成工作時需要的資源,造成CPU idle。
系統根據特定規則,將系統內很長時間未完成工作的process逐步提高其 Priority的技術。
在了解了這些不同的作業系統類別之後,我發現這些作業系統的設計其實都是跟著實務上使用的需求而專門誕生的,只是後續才被整理出這些類別才是。
在大概了解完OS之後,其實還是有很多大大小小的內容可以在深入了解一些,那接著就是在介紹時常常提到的行程Process囉!
此篇文章同步發表於部落格,歡迎逛逛~
如果沒有前面那是正常的,因為我從今天才決定要放部落格的XD