在學習資料結構和作業系統的有關知識,系統呼叫的基本原理是在系統的中斷列表中指定了各個中斷人入口位址,給出中斷號
後作業系統在中斷
向量表裡面找到入口執行,現代的計算機為了保證核心的穩定性對任務區分狀態即user mode(0)kernel mode(1),
當使用者態的任務請求執行系統呼叫的
時候進入trap轉換狀態。系統為了避免使用者程序進入無限迴圈和長時間等待i/o時系統癱瘓,在
作業系統將系統控制許可權轉讓給使用者時一般會設定乙個
timer,timer時間到了以後就會將控制權給系統,系統進行重新
cpu scheduling。在學習的同時我在虛擬機器上進行試驗,給linux系統加上自己新增進內
核的系統呼叫。
同時學習到了如系統程序排程的各種演算法,如fcfs,sjf,rr,preemptive priority等。為了理解作業系統程序排程的原理我嘗試
在我的電腦上自己
寫乙個程式,使各個cpu(雙核四執行緒模擬四核)的使用率穩定在50%,目前只能
達到如下效果:
即四核系統,我指定程式執行在的第乙個cpu上使第乙個cpu的使用率即空閒比達到峰值附近,具體的做法是計算出cpu1秒鐘能
夠執行指令數,然後
在乙個迴圈裡面不停的執行乙個自增語句(轉換成組合語言大概需要5個指令週期),然後讓執行緒掛起相應的時
間,使得執行指令的時間和掛起的時間大
致相當,然後由於windows的排程時間片大概是10ms,然後按比例縮小得到如下**
:
while (true)
CPU排程演算法總結
重要指標 吞吐量,周轉時間,cpu利用率,公平平衡 非搶占式的最短作業優先 sjf 具有最短完成時間的程序優先執行 最短剩餘時間優先 srtn sjf搶占式版本,即當乙個新就緒的程序比當前執行程序具有更短完成時間時,系統搶占當前程序,選擇新就緒的程序執行。最高相應比優先演算法 hrrn 是乙個綜合演...
CPU排程學習筆記
排程的基礎 cpu與i o操作並行執行 由硬體決定 任何程序中都是cpu與i o交替執行 使得進行i o操作時,cpu可以讓其它程序先執行 i o操作完成之後,一定需要核心處理一下,才可以產生下乙個i o操作 所有陷入到作業系統以後的工作,都可能發生排程 從核心返回時 不可搶占型排程,合作型 都處於...
CPU程序排程分類
1 高階排程i高階排程又稱為作業排程。它是批處理系統中使用的一種排程。其主要任務是按照某種演算法從外存的後備佇列上選擇乙個或多個作業調入記憶體,並為其建立程序 分配必要的資源,然後再將所建立的程序控制塊插入就緒佇列中 2 低階排程低階排程又稱程序排程。它是距離硬體最近的一級排程。其主要任務是按照某種...