Linux——進程優先級/切換/調度

1.進程優先級

1.進程優先級是什么:進程獲取CPU資源的先后順序

2.為什么要有進程優先級:因為一般CPU只有一塊,資源短缺,所以就需要優先級來確定誰先誰后的問題

3.值越低 進程的優先級越高? ?ps -l進行查看

UID:user id

RPI 進程可被執行的優先級 值越小越早被執行 默認值80

NI 進程優先級的修正數據?我們在后面想要修改進程的優先級就需要使用這個nice值

優先級修改? 建議不要隨便修改 會限制次數 進程真實優先級 = PRI (默認)+ NI? top? r + pid 進行修改,頻繁的修改可能會破壞公平性

?

?nice值范圍[-20,19] ? ?Linux優先級范圍[60,99]??? 幅度不能太大 考慮公平性

優先級設計不合理 會導致優先級低的進程,長時間得不到CPU資源,導致進程饑餓

2.進程切換

一個進程在CPU上跑,一般不會直接跑完,會跑一個時間段,這個時間段就是一個時間片,每個進程跑完一個時間片,就需要繼續去排隊

相信大家都寫過死循環的代碼,我們的系統會卡死嗎?不會的,是因為這個代碼跑完一個時間片,然后就需要去排隊等待,排到這個進程再去跑一個時間片,所以這也是為什么我們寫死循環系統不會卡死 ,也證明了一個進程不會一直占有CPU

2.1CPU 寄存器

寄存器:CPU中有很多的寄存器 寄存器有很多功能 這里我們先不做詳細了解,只需要知道寄存器是CPU的一個臨時空間,用來存儲正在調度進程的臨時信息,只是一個空間,并不等于寄存器里面的內容

當一個進程跑完一個時間片,就將寄存器的對應的上下文數據拷貝一份,給進程讓其保存起來,保存到task_struct中 有一個tss結構體 里面保存的就是上下文數據,保證下次進程執行可以將上下文數據恢復到寄存器中,這個時候寄存器就可以在上次的歷史位置繼續運行了?

?進程切換本質核心就是保存和恢復當前硬件的上下文數據,就是CPU寄存器的內容?

Linux內核進程O(1)調度隊列

選擇進程

調度和切換共同構成調度器

我們可以通過下面的圖片來看,一個CPU有一個運行隊列,就是我們的runqueue,我們來理解一下為什么要這樣設計,active指向活躍隊列,expired指向過期隊列,nr_active來確定隊列中的進程總數,如果是0證明隊列中沒有進程,bitmap是位圖,來判斷140個優先級隊列是否為空,因為他們是一一映射的,所以可以提高運行效率,下面有為什么是bitmap[5]的解釋,queue,其中100個優先級隊列是實時調度,40個優先級隊列是分時調度,當進程被CPU調度,按照進程的優先級,進入到對應的優先級隊列進行排隊,當這個進程被調度完以后,就會進到過期隊列當中,并且更新它的優先級,這樣活躍隊列的進程就會越來越少,當活躍隊列里沒有進程了,過期隊列就會和活躍隊列進行交換,然后再去調用活躍隊列的進程,直到所有的進程都跑完

結語?

進調度器由切換和調度組成,我們學習了要選擇哪個進程讓CPU調度,如何去切換,了解Linux切換調度是如何實現的,增強自己的知識儲備!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/77947.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/77947.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/77947.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鑄鐵劃線平板:多行業的精密測量工具(北重十字滑臺加工廠家)

鑄鐵劃線平板是一種用于精密測量和校準的工具,廣泛應用于各個行業。它通常由鑄鐵制成,表面經過精密加工,能夠保證較高的平整度和準確度。鑄鐵劃線平板的主要作用是用來檢驗工件的平整度和垂直度,也常用于劃線、校準和測量工件的平…

Excel/WPS表格中圖片鏈接轉換成對應的實際圖片

Excel 超鏈圖變助手(點擊下載可免費試用) 是一款將鏈接轉換成實際圖片,批量下載表格中所有圖片的轉換工具,無需安裝,雙擊打開即可使用。 表格中鏈接如下圖所示: 操作方法: 1、雙擊以下圖標&a…

STM32---串口通信USART

目錄 一、串口通信協議 二、USART模塊介紹 (1)移位寄存器 (2)控制電路 (3)波特率 (4)C語言接口 三、串口的引腳初始化 (1)引腳分布表 &…

流程架構是什么?為什么要構建流程架構,以及如何構建流程結構?

本文從:流程架構是什么?為什么要構建流程架構?如何構建流程結構三個方面來介紹。 一、首先,我們來了解流程架構是什么? 流程架構是人體的骨架,是大樓的砌筑,是課本的目錄,是流程管理…

網絡結構及安全科普

文章目錄 終端聯網網絡硬件基礎網絡協議示例:用戶訪問網頁 OSI七層模型網絡攻擊(Hack)網絡攻擊的主要類別(一)按攻擊目標分類(二)按攻擊技術分類 網絡安全防御 典型攻擊案例相關名詞介紹網絡連接…

同z科技面經

同z科技-2025-4-23 1.自我介紹 個人信息 校園經歷 實習經歷 項目經歷 個人技能掌握 目前學習技術 2.封裝緩存工具類怎么封裝的 先介紹使用緩存的問題 解決的邏輯 封裝的邏輯 應用 緩存穿透: 緩存雪崩: 緩存擊穿: https://www…

基于LoRA的Llama 2二次預訓練實踐:高效低成本的大模型領域適配

引言 近年來,大語言模型(LLM)如Meta的Llama 2系列憑借其強大的生成和理解能力成為NLP領域的核心工具。然而,直接將通用預訓練模型應用于垂直領域(如醫療、法律、金融)時,常面臨領域知識不足的問…

Python爬蟲(2)Python爬蟲入門:從HTTP協議解析到豆瓣電影數據抓取實戰

目錄 一、背景與需求?二、 Web基礎與HTTP協議核心解析?2.1 HTTP協議:數據交互的基石?2.2 為何爬蟲需理解HTTP協議?? 三、 Python爬蟲實戰:Requests庫核心用法?3.1 安裝與環境配置?3.2 案例1:GET請求抓取豆瓣電影Top250?3.3…

深度學習--ResNet殘差神經網絡解析

文章目錄 前言一、什么是ResNet網絡二、傳統卷積神經網絡存在的問題1、梯度消失和梯度爆炸2、退化問題 三、如何解決問題四、殘差結構五、18層殘差網絡1、解釋2、隔層相加優點3、隔層相加數值增大問題 六、18層殘差網絡以外的表格示例七、BN層(Batch Normalization&…

【go】go run-gcflags常用參數歸納,go逃逸分析執行語句,go返回局部變量指針是安全的

go官方參考文檔&#xff1a; https://pkg.go.dev/cmd/compile 基本語法 go run 命令用來編譯并運行Go程序&#xff0c;-gcflags 后面可以跟一系列的編譯選項&#xff0c;多個選項之間用空格分隔。基本語法如下&#xff1a; go run -gcflags "<flags>" main.…

K8S探針的應用

目錄&#xff1a; 1、探針的簡介2、啟用探針2.1、啟用就緒探針2.2、啟用存活探針2.3、啟用啟動探針&#xff08;可選&#xff09; 1、探針的簡介 在Kubernetes中&#xff0c;探針&#xff08;Probes&#xff09;是用來檢查容器健康狀況的工具&#xff0c;它們幫助Kubernetes了…

體積小巧的 Word 轉 PDF 批量工具

軟件介紹 今天給大家介紹一款能批量把 Word 文檔轉換成 PDF 的實用小工具。 軟件特點 這款 Word 批量轉 PDF 軟件&#xff0c;身材小巧&#xff0c;體積不到 1M&#xff0c;還沒界面呢&#xff01;使用時&#xff0c;只要把軟件和要轉換的 Word 文檔放在一個文件夾&#xff…

JMeter介紹

文章目錄 1. JMeter簡介2. JMeter 下載3. JMeter修改編碼集4. 啟動并運行JMeter 1. JMeter簡介 JMeter 是 Apache 組織使用 Java 開發的一款測試工具&#xff1a; 1、可以用于對服務器、網絡或對象模擬巨大的負載 2、通過創建帶有斷言的腳本來驗證程序是否能返回期望的結果 優…

URP-UGUI相關知識

一、UGUI的基本組成部分 Canvas &#xff08;畫布&#xff09;所有UI都需要放在Canvas畫布下面&#xff0c;不然無法顯示EventSystem 所有的事件響應系統都需要依賴于EventSystem,若刪除該組件&#xff0c;交互效果就 不會顯示 1.Canvas(畫…

ShenNiusModularity項目源碼學習(20:ShenNius.Admin.Mvc項目分析-5)

ShenNiusModularity項目的系統管理模塊主要用于配置系統的用戶、角色、權限、基礎數據等信息&#xff0c;上篇文章中學習的日志列表頁面相對獨立&#xff0c;而后面幾個頁面之間存在依賴關系&#xff0c;如角色頁面依賴菜單頁面定義菜單列表以便配置角色的權限&#xff0c;用戶…

JavaFX 實戰:從零打造一個功能豐富的英文“劊子手”(Hangman)游戲

大家好&#xff01;今天我們要挑戰一個經典的單詞猜謎游戲——“劊子手”&#xff08;Hangman&#xff09;&#xff0c;并使用 JavaFX 這個強大的 GUI 工具包來賦予它現代化的交互體驗。這個項目不僅有趣&#xff0c;而且是學習和實踐 JavaFX 核心概念的絕佳途徑&#xff0c;涵…

【自我介紹前端界面分享】附源碼

我用夸克網盤分享了「800套HTML模板」&#xff0c;鏈接&#xff1a;https://pan.quark.cn/s/a205a794552c <!DOCTYPE HTML> <html> <head> <title>Miniport</title> <meta http-equiv"content-type" content&q…

安寶特分享|AR智能裝備賦能企業效率躍升

AR裝備開啟智能培訓新時代 在智能制造與數字化轉型浪潮下&#xff0c;傳統培訓體系正面臨深度重構。安寶特基于工業級AR智能終端打造的培訓系統&#xff0c;可助力企業構建智慧培訓新生態。 AR技術在不同領域的助力 01遠程指導方面 相較于傳統視頻教學的單向輸出模式&#x…

今日html筆記

原手寫筆記 ------------------------------------------------------------------------------------------------------- 關于超鏈接的使用 <a href"https://www.luogu.com.cn/" target"_blank">//href屬性指定了超鏈接的目標地址,即當用戶點擊超…

【人工智能】Ollama 負載均衡革命:多用戶大模型服務的高效調度與優化

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 在 多用戶大模型推理 場景下,負載均衡 是確保高并發、低延遲的關鍵挑戰。本文以 Ollama(一個流行的本地大模型運行框架)為例,深入探討 …