Linux進程1.0--task_struct

1.硬件馮諾依曼體系結構:

單個分析:

數據流向:數據必須先進入輸入設備,再到存儲器,然后由存儲器給控制器,控制器收到以后進行相應的處理后,再傳回存儲器,存儲器最終傳給輸出設備!

?

存儲效率:一般情況下在存儲的生態中,距離cpu越遠的設備,它所對應的容量會越來越大,效率會越來越低!

存儲器是馮諾依曼體系結構中的核心地位

問題:1.一個程序要運行,必須要先加載到內存中運行?為什么?

答:正是因為馮諾依曼體系結構規定!(所有軟件設計都必須遵守硬件結構。硬件是計算機的底線和邊界)

2.為什么寫的進度條,默認顯示的數據,是可能會緩存起來的?在哪里緩存?

答:緩存在內存,遵守了體系結構,緩存是正常的。

2.軟件:操作系統:

操作系統是一款進行管理的軟件!它管理著硬件和軟件

問題:·?操作系統為什么管理?

計算機是一個層狀結構,所有硬件要和軟件配合的使用,要存在對應的驅動程序!

操作系統要幫助用戶,管理好西面的軟硬件資源!

給用戶提供一個穩定、高效、安全的運行環境。

所以核心作用:操作系統通過管理好底層的軟硬件資源(手段),為用戶提供一個良好的執行環境(目的)

· 操作系統是什么?

作為一名用戶平時用的都是程序員開發的客戶端,并不是操作系統。但是用戶并不可以直接繞過操作系統去使用其他app客戶端。

操作系統里面,會有各種數據。可是,操作系統不相信任何的用戶!因此操作系統為了保證自己的數據安全,也為了保證給用戶能夠提供服務,操作系統以接口的方式給用戶提供調用的入口。來獲取操作系統內部的數據。

這里提到的接口,其實就是操作系統提供的用“c語言”實現的,自己內部函數調用---系統調用!所有訪問操作系統的行為,都只能通過系統調用完成!這種接口實現就叫系統編程!

·操作系統如何管理好軟硬件資源?

先描述再組織!!!

3.進程:

一個已經加載到內存的程序就叫做進程(任務)--也可以說是正在運行的程序叫做進程。

下圖可以看得出來,一個操作系統,不僅僅只能運行一個進程,可以同時運行多個進程。

這里的屬性值:是進程編號、進程狀態、優先級、相關指針信息....

各個pcb之間的連接用指針進行穿行的連接起來,所以可以形成一個單鏈表。一個進程如果是先后的,它在系統中進行排隊是進程的PCB再進行排隊,等排到了,PCB會調出相應的數據和代碼。

Linux操作系統下的PCB是:task_struct

task_struct 內容分類

  • 標識符:描述本進程的唯一標識符,用來區別其他進程。
  • 狀態:任務狀態,退出代碼,退出信號等。
  • 優先級:相對于其他進程的優先級。
  • 程序計數器:程序中即將被執行的下一條指令的地址。
  • 內存指針:包括程序代碼和進程相關數據的指針,還有和其他進程共享的內存塊的指針。
  • 上下文數據:進程執行時處理器的寄存器中的數據 [休學例子,要加圖 CPU,寄存器]。
  • I/O 狀態信息:包括顯示的 I/O 請求,分配給進程的 I/O 設備和被進程使用的文件列表。
  • 記賬信息:可能包括處理器時間總和,使用的時鐘數總和,時間限制,記賬號等。
  • 其他信息

在Linux當中:用指令ls /proc可以看見會有很多的藍色文件,這些都為目錄,基本都是數字命名,這些數字其實就是屬性里面的PID(標識符),這中目錄里面包含著進程的基本所有屬性

知識點:進程和線程的區別?

???????進程是程序執行活動,是資源分配和調度基本單位,有獨立資源,調度開銷大,多個進程可并發或并行執行。線程是進程內執行單元,是CPU調度基本單位,共享進程資源,調度開銷小,同一進程的多個線程能并發或并行執行,協作更高效。

(未完結)

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

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

相關文章

本地部署Jina AI Reader:用Docker打造你的智能解析引擎

本地部署Jina AI Reader:用Docker打造你的智能解析引擎 🌟 引言:為什么需要本地部署?📌 場景應用圖譜🔧 部署指南(Linux環境)1. 環境準備2. Docker部署3. 驗證服務狀態 &#x1f680…

貪心算法簡介(greed)

前言: 貪心算法(Greedy Algorithm)是一種在每個決策階段都選擇當前最優解的算法策略,通過局部最優的累積來尋求全局最優解。其本質是"短視"策略,不回溯已做選擇。 什么是貪心、如何來理解貪心(個人對貪心的…

代碼隨想錄day17 二叉樹part05

654.最大二叉樹 給定一個不重復的整數數組 nums 。 最大二叉樹 可以用下面的算法從 nums 遞歸地構建: 創建一個根節點,其值為 nums 中的最大值。 遞歸地在最大值 左邊 的 子數組前綴上 構建左子樹。 遞歸地在最大值 右邊 的 子數組后綴上 構建右子樹。 返回 nums …

宇樹人形機器人開源模型

1. 下載源碼 https://github.com/unitreerobotics/unitree_ros.git2. 啟動Gazebo roslaunch h1_description gazebo.launch3. 仿真效果 H1 GO2 B2 Laikago Z1 4. VMware: vmw_ioctl_command error Invalid argument 這個錯誤通常出現在虛擬機環境中運行需要OpenGL支持的應用…

通過特征值和特征向量實現的圖像壓縮和特征提取

前文,我們在學習人工智能的線性代數基礎的時候,就了解到,矩陣在人工智能中被廣泛使用,接下來我們就從大家非常常見的圖像開始,深度理解矩陣在人工智能中的應用。有關線性代數基礎的文章可以看的我CSDN:人工智能中的線性…

藍橋杯2023年第十四屆省賽真題-整數刪除 暴力-->鏈表+小根堆

題目來自DOTCPP: 思路: ①每次找到數列中的最小值下標,然后用狀態數組st標記它,相當與刪除它,之后就不會訪問它。 ②對最小值下標左邊和右邊判斷一下,看有沒有數字,如果有就把最小值加到兩邊第…

springboot438-基于SpringBoot的數字化教學資源管理系統(源碼+數據庫+純前后端分離+部署講解等)

💕💕作者: 愛笑學姐 💕💕個人簡介:十年Java,Python美女程序員一枚,精通計算機專業前后端各類框架。 💕💕各類成品Java畢設 。javaweb,ssm&#xf…

藍橋杯刷題——第十五屆藍橋杯大賽軟件賽省賽C/C++ 大學 B 組

一、0握手問題 - 藍橋云課 算法代碼&#xff1a; #include <iostream> using namespace std; int main() {int sum0;for(int i49;i>7;i--)sumi;cout<<sum<<endl;return 0; } 直接暴力&#xff0c;題意很清晰&#xff0c;累加即可。 二、0小球反彈 - 藍…

跨境衛士跟vps哪個更好用?跨境衛士為賣家提供固定IP環境

跨境衛士是通過為賣家提供固定的環境 i p來隔離本地電腦環境&#xff0c;為賣家創造一個真實獨立的物理環境&#xff0c;讓買家再任意電腦&#xff0c;任意網絡下都能夠安全的管理賬號。跨境衛士和紫鳥原理一樣&#xff0c;是通過為賣家提供固定的環境 i p來隔離本地電腦環境&a…

coding ability 展開第四幕(滑動指針——鞏固篇)超詳細!!!!

文章目錄 前言水果成籃思路 找到字符串中所有字母異位詞思路 串聯所有單詞的子串思路 最小覆蓋子串思路 總結 前言 本專欄上一篇博客&#xff0c;帶著大家從認識滑動窗口到慢慢熟悉 相信大家對滑動窗口已經有了大概的認識 其實主要就是抓住——一段連續的區間 今天來學習一些滑…

圖解AUTOSAR_CP_BSW_General

AUTOSAR BSW通用規范詳解 AUTOSAR基礎軟件模塊通用規范與架構解析 目錄 1. 概述 1.1. AUTOSAR BSW通用規范簡介1.2. 文檔目的與范圍2. BSW模塊文件結構 2.1. 標準文件組織2.2. 命名規范3. BSW模塊接口 3.1. 接口類型3.2. 模塊API3.3. 配置參數4. BSW通用架構 4.1. 分層架構4.2.…

如何在Futter開發中做性能優化?

目錄 1. 避免不必要的Widget重建 問題&#xff1a;頻繁調用setState()導致整個Widget樹重建。 優化策略&#xff1a; 2. 高效處理長列表 問題&#xff1a;ListView一次性加載所有子項導致內存暴漲。 優化策略&#xff1a; 3. 圖片加載優化 問題&#xff1a;加載高分辨率…

組件通信框架ARouter原理剖析

組件通信框架ARouter原理剖析 一、前言 隨著Android應用規模的不斷擴大&#xff0c;模塊化和組件化開發變得越來越重要。ARouter作為一個用于幫助Android應用進行組件化改造的框架&#xff0c;提供了一套完整的路由解決方案。本文將深入分析ARouter的核心原理和實現機制。 二…

Netty啟動源碼NioEventLoop剖析accept剖析read剖析write剖析

學習鏈接 NIO&Netty - 專欄 Netty核心技術十–Netty 核心源碼剖析Netty核心技術九–TCP 粘包和拆包及解決方案Netty核心技術七–Google ProtobufNetty核心技術六–Netty核心模塊組件Netty核心技術五–Netty高性能架構設計 聊聊Netty那些事兒 - 專欄 一文搞懂Netty發送數…

2024年12月CCF-GESP編程能力等級認證C++編程一級真題解析

一級真題的難度: ? CCF-GESP編程能力等級認證C++編程一級真題的難度適中?。這些真題主要考察的是C++編程的基礎知識、基本語法以及簡單的算法邏輯。從搜索結果中可以看到,真題內容包括了選擇題、編程題等題型,涉及的內容如C++表達式的計算、基本輸入輸出語句的理解…

73.HarmonyOS NEXT PicturePreviewImage組件深度剖析:高級功能擴展與性能優化策略(三)

溫馨提示&#xff1a;本篇博客的詳細代碼已發布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下載運行哦&#xff01; HarmonyOS NEXT PicturePreviewImage組件深度剖析&#xff1a;高級功能擴展與性能優化策略(三) 文章目錄 HarmonyOS NEXT PicturePreviewImage組件…

Spark 中創建 DataFrame 的2種方式對比

spark.createDataFrame(data).toDF("name", "age") 和 spark.createDataFrame(spark.sparkContext.parallelize(data), schema) 創建df的方式有什么區別&#xff1f; 在 Spark 中&#xff0c;創建 DataFrame 的方式有多種&#xff0c;其中兩種常見的方式…

六十天前端強化訓練之第十七天React Hooks 入門:useState 深度解析

歡迎來到編程星辰海的博客講解 看完可以給一個免費的三連嗎&#xff0c;謝謝大佬&#xff01; 目錄 一、知識講解 1. Hooks 是什么&#xff1f; 2. useState 的作用 3. 基本語法解析 4. 工作原理 5. 參數詳解 a) 初始值設置方式 b) 更新函數特性 6. 注意事項 7. 類組…

IEC61850標準下MMS 緩存報告控制塊 ResvTms詳細解析

IEC61850標準是電力系統自動化領域唯一的全球通用標準。IEC61850通過標準的實現&#xff0c;使得智能變電站的工程實施變得規范、統一和透明&#xff0c;這大大提高了變電站自動化系統的技術水平和安全穩定運行水平。 在 IEC61850 標準體系中&#xff0c;ResvTms&#xff08;r…

【JVM】GC 常見問題

GC 常見問題 哪些情況新生代會進入老年代 新生代 GC 后幸存區&#xff08;survivor&#xff09;不夠存放存活下來的對象&#xff0c;會通過內存擔保機制晉升到老年代。大對象直接進入老年代&#xff0c;因為大對象再新生代之間來會復制會影響 GC 性能。由 -XX:PretenureSizeT…