歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux內核

Linux內核分析第四章讀書筆記

Linux內核分析第四章讀書筆記

調度程序:在可運行態進程之間分配有限處理器時間資源的內核子系統

多任務

多任務操作系統:同時並發地交互執行多個進程的操作系統

Linux提供了搶占式的多任務模式,對進程強制的掛起動作即搶占

策略

進程可分為:I/O消耗型 和 處理器消耗型

I/O消耗型指進程的大多數時間用來提交I/O請求或等待I/O請求

處理器消費型進程把時間大多數用在執行代碼上,其調度策略往往是盡量降低它們的調度頻率,延長其運行時間

策略兩大矛盾中的平等:進程響應迅速(響應時間短)和最大系統利用率(高吞吐量)

Linux基於優先級的調度算法CFS:搶占時機取決於新的可運行程序消耗了多少處理器使用比

公平調度:每個進程都將能獲得1/n的處理器時間(n指可運行進程的數量)

Linux調度的實現

時間記賬:通過vruntime變量來記錄一個程序到底運行了多長時間以及他還應該再運行多久

進程選擇:挑選一個具有最小vruntime的進程作為下一個運行進程

調度器入口:函數schedule()

睡眠和喚醒

內核搶占

Linux完整地支持內核搶占,只要重新調度是安全的,它的內核可以在任何時間搶占正在執行的任務

由於內核支持SMP,只要進程沒有持有鎖,內核就可以搶占

內核搶占發生在:

中斷處理程序正在執行,且返回內核空間之前

內核代碼再一次具有可搶占性

內核中的任務顯式地調用schedule()

內核中的任務阻塞

實時調度策略

Linux的兩種實時調度策略:SCHED_FIFO和SCHED_RR

普通的非實時調度:SCHED_NORMAL

Linux的實時調度提供了一種軟實時工作模式

Copyright © Linux教程網 All Rights Reserved