排序
Linux 進程調度之schdule主調度器
考慮到文章篇幅,在這里我只討論普通進程,其調度算法采用的是cfs(完全公平)調度算法。 至于cfs調度算法的實現后面后專門寫一篇文章,這里只要記住調度時選擇一個優先級最高的任務執行一、調...
Linux系統編程:進程地址空間
一,內存地址空間1.1,棧區存儲變量:普通局部變量、指針變量、函數參數、函數返回地址、臨時變量、寄存器變量; 函數參數:函數的參數是從右到左依次入棧的; 在vs2022上棧區并不是'向下生長的',而是...
【Linux進程通信】二、匿名管道
Ⅰ. 管道一、管道的概念 ? 管道是 unix 中最古老的進程間基于文件系統通信的形式。我們把從一個進程連接到另一個進程的一個數據流稱為一個 “管道”。注意管道是單向連通的,不存在說雙向管道...
父子進程的故事:解讀Linux中的fork機制
前言 在linux系統中,進程是操作系統最重要的執行單元,而父子進程的創建與管理更是系統資源分配和任務并行的關鍵。通過fork函數,linux能夠快速高效地復制一個進程,使得父子進程協同工作成為...
【Linux進程】初悉進程
進程調度簡介 在linux中,進程是最基本的執行單位。進程調度在整個操作系統中屬于核心地位,是操作系統實現多任務處理的關鍵操作,確保每個進程在有限的cpu資源下有序的完成相應操作。 在Linux...
C語言如何延遲代碼執行若干微秒
本文將深入探討C語言中如何實現代碼執行的微秒級延遲。筆者認為此內容頗為實用,因此特此分享,希望讀者能從中有所收益。 C語言中的微秒級代碼延遲 前言 在特定情境下,開發者可能需要在C語言程...
【Linux篇】進程狀態(僵尸進程,孤兒進程),優先級與調度機制
1. 前文鋪墊 進程狀態是task_struct內的一個整數;進行:進程在調度隊列中,進程的狀態都是running,阻塞:等待某種設備或者資源就緒。進程是一個隊列,設備也是一個隊列,當我們讀磁盤,讀網卡...
c++ 聯合體怎么使用
聯合體在 c++++ 中允許在同一內存位置存儲不同類型的數據。其優點包括節省內存,缺點是可能導致不可預測的值。使用時應注意初始化和類型安全。聯合體允許在同一內存位置存儲不同類型的數據,如...
使用copendir讀取目錄內容的步驟
本文將逐步講解如何使用 copendir 函數(應為 opendir 函數)讀取目錄內容。 請注意,copendir并非標準C函數,正確的函數是opendir。 步驟一:包含頭文件 首先,需要包含必要的頭文件 和 。 提...
c++ 結構體怎么定義和使用
c++++ 結構體通過 struct 關鍵字定義,用于組合不同類型的數據。1) 定義結構體,如 struct person { std::string name; int age; double height;}; 2) 創建實例并訪問成員,如 person.name = 'a...
Linux中copendir函數與readdir的區別
Linux系統中,opendir和readdir是目錄操作的兩個核心函數,通常配合使用,實現對目錄內容的遍歷。 下面詳細闡述兩者的區別和用法: opendir 函數 功能: 打開一個目錄,返回一個指向目錄流的指針...