多工作業系統就是能同時併發的互動執行多個程序的作業系統
多工作業系統分為:
程序可以被分為:
linux採用了兩種不同的優先順序範圍:
時間片:被搶占之前持續執行的時間
linux排程器是以模組方式提供的,其目的是為了允許不同型別的程序可以有針對性的選擇演算法
現代程序排程器有兩個通用的概念:程序優先順序和時間片
完全公平排程(cfs)的出發點基於乙個簡單的理論:程序排程的效果應如同系統擁有乙個完美的多工處理器,即在系統中,每個程序將獲得1/n的處理器時間---有n個可執行程序
完全公平排程(cfs)的做法是允許每個程序執行一段時間,迴圈輪轉,選擇執行最少的程序作為下個執行程序,而不是採用分配給每個程序時間片了
排程器實體結構:cfs使用排程器實體結構來追蹤程序執行記賬
虛擬實時:vruntime變數存放程序虛擬執行時間,cfs使用vruntime變數來記錄程式到底執行了多長時間以及還用執行多長時間
程序選擇:cfs排程演算法的核心----選擇具有最小vruntime的任務
程序排程的主要入口點是schedule(),他正是核心其他部分用於呼叫程序排程器的入口:選擇那個程序可以執行,何時將其投入執行
上下文切換:從乙個可執行程序切換到另乙個可執行程序,由context_switch()函式負責處理
該函式完成兩項基本工作:
使用者搶占發生的情況:
linux提供了兩種排程策略:
系統呼叫可以用來操作和處理程序優先順序,排程策略及處理器繫結,同時還提供了顯式的將處理器交給其他程序的機制
第四章 讀書筆記
源 包含了許多的東西,包括 android 應用程式的 android sdk 自帶的工具,android ndk 的源 等等,所以單從數量上來講,android linux 終端執行命令來配置 android12 repo 指令碼檔案 3 建立用於存放 android 源 的目錄 4 初始化 5a...
《C primer》第四章讀書筆記
第 章 陣列和指標 現代c 程式應使用vector和迭代器代替陣列和指標,除非前二者不滿足對效率的特殊要求 陣列 陣列是由型別說明符 識別符號和維度組成的復合型別,能儲存一組某種型別的未命名物件 定義和初始化 型別說明符規定了存放於陣列中元素的型別 可使用除引用外的任意型別,包括陣列本身 陣列的陣列...
組合語言讀書筆記 第四章
assume cs codesg codesg segment mov ax,0123h mov bx,0456h add ax,bx add ax,bx mov ax,4c00h int 21h codesg ends end定義乙個 段 segment endsend組合語言的結束標記 assu...