Linux: 進程認識(組織進程)

進程認識

  • (一)馮諾依曼體系結構
    • 1.概念
    • 從數據流向上理解馮諾依曼
  • (二)操作系統(OS)
    • 1.概念
    • 2.設計目的
    • 3. 如何理解操作系統的 "管理"
    • 4.操作系統調用接口
  • (三) 進程
    • 1.概念
    • 2.描述進程-PCB
    • 3.如何對PCB進行管理?

(一)馮諾依曼體系結構

1.概念

???????
????在這里插入圖片描述

輸入設備:包括鍵盤, 鼠標,掃描儀, 寫板等
輸出設備:顯示器,打印機等,硬盤,網卡等
存儲器: 指內存
中央處理器(CPU): 含有運算器(對數據進行計算任務)和控制器(對計算硬件流程進行一定的控制)等。在不考慮緩存情況,這里的CPU能且只能對內存進行讀寫,不能訪問外設(輸入或輸出設備)。

外設(輸入或輸出設備)要輸入或者輸出數據,也只能寫入內存或者從內存中讀取。
在不考慮緩存情況,這里的CPU能且只能對內存進行讀寫,不能訪問外設(輸入或輸出設備)。所有設備都只能直接和內存打交道。

從數據流向上理解馮諾依曼

對馮諾依曼的理解,不能停留在概念上,要深入到對軟件數據流理解上。
在這里插入圖片描述
這一段的描述來自這位博主的博客,點我~

(二)操作系統(OS)

在整個計算機軟硬件架構中,操作系統的定位是:一款純正的“搞管理”的軟件(操作系統是一個對軟硬件進行管理的軟件!)

1.概念

任何計算機系統都包含一個基本的程序集合,稱為操作系統(OS)。籠統的理解,操作系統包括:

內核(進程管理,內存管理,文件管理,驅動管理)
其他程序(例如函數庫,shell程序等等)

2.設計目的

  • 與硬件交互,管理所有的軟硬件資源為用戶程序(應用程序)提供一個良好的執行環境。
  • 在整個計算機軟硬件架構中,操作系統的定位是:一款純正的“搞管理”的軟件(操作系統是一個對軟硬件進行管理的軟件!)

3. 如何理解操作系統的 “管理”

先描述再組織 是操作系統管理的核心。管理是通過對數據的管理

  • 先描述,那怎么描述?

在操作系統中,管理任何對象,首先要對 對象的特征進行描述。描述便是對軟硬件資源的各種特征通過結構體對每一個對象的特征進行描述。
struct PCB
{
//各種信息等等
struct PCB* next;
};

描述表示描述被管理的對象。

  • 再組織

在操作系統中,管理任何對象,最終都可以轉化為對某種數據結構的增刪改查。可以理解為對象之間通過鏈表(不一定是鏈表)的結構進行管理。
在這里插入圖片描述

總結
計算機如何管理硬件?

  1. 描述起來,用struct結構體
  2. 組織起來,用鏈表或其他高效的數據結構
    (即先描述,在組織)

4.操作系統調用接口

操作系統為了保證自己的數據安全,也為了保證給用戶提供服務,操作系統以接口的方式給用戶提供調用的入口。用戶以此來獲取操作系統內部的數據。

  • 所以系統調用接口是什么???
    是操作系統提供的用c語言實現的,自己內部的接口,所有訪問操作系統的行為,都只能通過系統調用來完成。
    而在系統調用接口之上我們又封裝了用戶操作接口(簡單的理解就是我們編程時提供的庫等),而又在此之上,我們用戶(程序員)才是算是進行軟件開發。

1.在開發角度,操作系統對外會表現為一個整體,但是會暴露自己的部分接口,供上層開發使用,這部分由操作系統提供的接口,叫做系統調用。
2.系統調用在使用上,功能比較基礎,對用戶的要求相對也比較高,所以,有心的開發者可以對部分系統 調用進行適度封裝,從而形成庫,有了庫,就很有利于更上層用戶或者開發者進行二次開發。

????????在這里插入圖片描述

(三) 進程

1.概念

  • 課本概念: 程序的一個執行實例,正在執行的程序等(一個加載到內存的程序或者正在運行的程序)
  • 內核觀點: 擔當分配系統資源(CPU時間,內存)的實體

當我們雙擊打開這個可執行程序的時候,將其運行起來的時候,本質來講也就是將這個可執行進程加載到內存中了,CPU才能對其程序進行逐語句的執行,而當這個程序加載到內存了以后,我們稱之為進程。

2.描述進程-PCB

  • 進程信息被放在一個叫做進程控制塊的數據結構中,可以理解為進程屬性的集合
  • 課本上稱之為PCB(process control block)Linux操作系統下的PCB是: task_struct

實際上描述進程的過程就是**先描述再組織**。

進程 = 內核PCB數據結構對象(描述進程的所有屬性) + 代碼數據

3.如何對PCB進行管理?

任何一個進程,再加載到內存的時候,形成真正的進程時,操作系統要先創造描述進程的結構體對象----PCB(進程控制塊)

在這里插入圖片描述
根據進程PCB的類型,為該進程創建對應的PCB對象。
對進程的管理,并不是對一整個進程做管理,而是對進程里面的PCB進行管理,
對PCB對象用雙向鏈表的數據結構進行鏈接,變成了對某種數據結構的增刪改查。

那么只對PCB進行管理,我們如何得到進程里面的代碼數據呢???
可以理解為,PCB存放有該對應的代碼數據的地址,當我們想要訪問該代碼和數據時,從PCB里面找到該地址即可。

這里只是對進程的管理方式的認識,后面博客中會對PCB屬性進行更深的理解。

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

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

相關文章

回文日期1

#include <iostream> using namespace std;bool isLeap(int y){return (y%40&&y%100!0)||(y%4000); }bool check(int year,int month,int day){//判斷是否為合法日期if(month>12||month0) return false;if(day>31) return false;if(month2){if(isLeap(year…

安寶特案例 | 某戶外機房制造企業應用AR+作業流,規范制造過程,記錄施工節點,保障交付質量

行業特點&#xff1a;產品客制化、依賴人工&#xff0c;工程量大、細節多&#xff0c;驗收困難 戶外通訊機房無疑是現代工業社會的“信息心臟”&#xff0c;承載著信息交換、傳輸與處理的重任。建設一座質量過關的戶外通訊機房是保障通信穩定運行的基石。 通常建設一個戶外通信…

deepseek熱度已過?

DeepSeek的熱度并沒有消退&#xff0c;以下是具體表現&#xff1a; 用戶使用量和下載量方面 ? 日活躍用戶量增長&#xff1a;DeepSeek已經成為目前最快突破3000萬日活躍用戶量的應用程序。 ? 應用商店下載量&#xff1a;1月26日&#xff0c;DeepSeek最新推出的AI聊天機器人…

藍橋杯單片機刷題——通過按鍵觸發串口傳輸電壓值

設計要求 通過內部ADC完成電位器RB2的輸出電壓檢測&#xff0c;并顯示在數碼管上&#xff1b; 通過串口向PC端返回當前檢測的電壓值。 按鍵“S4”定義為發送按鍵&#xff0c;按下按鍵S4&#xff0c;串口向PC端發送當前檢測的電壓值。 串口發送格式&#xff1a; U:1.25V\r\…

DeepSeek 都開源了哪些技術?

DeepSeek作為中國領先的人工智能企業,通過開源策略推動了全球AI技術的普及與創新。以下是其官方公布的主要開源項目及其技術內容、應用場景和社區反饋的詳細分析: 1. FlashMLA 技術描述:專為Hopper架構GPU優化的高效MLA(Multi-Layer Attention)解碼內核,針對可變長度序列…

【北京市小客車調控網站-注冊/登錄安全分析報告】

前言 由于網站注冊入口容易被黑客攻擊&#xff0c;存在如下安全問題&#xff1a; 暴力破解密碼&#xff0c;造成用戶信息泄露短信盜刷的安全問題&#xff0c;影響業務及導致用戶投訴帶來經濟損失&#xff0c;尤其是后付費客戶&#xff0c;風險巨大&#xff0c;造成虧損無底洞…

【SQL Server 2017】封閉網絡下,數據調研所有數據表實戰(提效400%)

?? 點擊關注不迷路 ?? 點擊關注不迷路 ?? 點擊關注不迷路 文章大綱 一、Microsoft SQL Server-2017,環境搭建命令二、借助 @@VERSION 函數來查看當前版本三、查詢Microsoft SQL Server數據庫、表名、表注釋四、所有數據表取樣(SQL生成),查詢前2條數據,數據取樣五、執…

【網絡協議】WebSocket講解

目錄 webSocket簡介 連接原理解析: 客戶端API 服務端API&#xff08;java&#xff09; 實戰案例 &#xff08;1&#xff09;引入依賴 &#xff08;2&#xff09;編寫服務端邏輯 &#xff08;3&#xff09;注冊配置類 &#xff08;4&#xff09;前端連接 WebSocket 示例…

路由器端口映射設置方法教程,和無公網IP內網穿透實現外網訪問方案步驟

隨著網絡技術的不斷發展&#xff0c;越來越多的個人和企業需要將自己的內部服務器或設備暴露給外部網絡訪問。這時&#xff0c;內網端口映射公網技術就顯得尤為重要。下面&#xff0c;我們將分別詳細介紹&#xff0c;有公網IP時如何設置路由器端口映射&#xff0c;和無公網IP內…

Linux 系統中從源碼編譯安裝軟件

以下是 Linux 系統中 從源碼編譯安裝軟件 的詳細步驟和注意事項&#xff0c;幫助你掌握這一高級操作技能&#xff1a; 一、編譯安裝的核心流程 1. 下載源碼包&#xff08;通常為 .tar.gz/.tar.bz2/.tar.xz&#xff09; 2. 解壓源碼包 3. 進入源碼目錄 4. 配置編譯參數&#xf…

HTTP:二.URI及相關術語

HTTP相關技術和術語 WEB開發語言 **http:**Hyper Text Transfer Protocol 應用層協議,默認端口: 80/tcp WEB前端開發語言: htmlcssjavascripthtml Hyper Text Markup Language 超文本標記語言,編程語言,主要負責實現頁面的結構 范例:html 語言 <html> <h…

Java網絡編程干貨

1.網絡編程是什么 了解 在Java語言中&#xff0c;我們可以使用java.net包下的技術輕松開發出常見的網絡應用程序&#xff0c;從而把分布在不同地理區域的計算機與專門的外部設備用通信線路互連成一個規模大、功能強的網絡系統&#x…

Java—HTML:CSS選擇器

今天我要介紹的知識點內容是Java HTML中的CSS選擇器&#xff1b; CSS選擇器用于定位HTML元素并為其添加樣式。它允許我們控制網頁的顏色、字體、布局和其他視覺元素。通過分離內容與樣式。 下面我將介紹CSS中選擇器的使用&#xff0c;并作舉例說明&#xff1b; 選擇器基本語…

【2025藍橋杯】賽前2小時考點梳理C++版

【2025藍橋杯】賽前2小時考點梳理 1. &#x1f9e9; STL&#xff08;優先級最高&#xff09; 核心容器/函數 vector push_back() / pop_back() / size()string substr(pos, len) / find(str) / queue push() / front() / pop()priority_queue 默認大根堆&#xff0c;小根堆&…

汽車性能的幕后保障:慧通測控電動尾翼綜合力學測試淺析

在汽車性能不斷追求極致的當下&#xff0c;電動尾翼已成為眾多高性能車型以及部分新能源汽車提升空氣動力學表現與操控穩定性的關鍵配置。從炫酷的超跑到注重續航與駕駛體驗的新能源車&#xff0c;電動尾翼正逐漸嶄露頭角。它絕非僅僅是外觀上的裝飾&#xff0c;而是能在車輛行…

2、文件上傳漏洞的防范

原文地址:文件上傳漏洞的防范 更多內容請關注&#xff1a;代碼安全 PHP安全編碼——書寫安全的代碼 文件上傳漏洞的防范 提問 問題1&#xff1a;上傳漏洞是怎么產生的&#xff1f; 問題2&#xff1a;是否可以只用js判斷文件類型而php不判斷&#xff1f; 問題3&#…

06軟件測試需求分析案例-添加用戶

給職業顧問部的老師添加用戶密碼后&#xff0c;他們才能登錄使用該軟件。只有admin賬戶具有添加用戶、修改用戶信息、刪除用戶的權利。admin是經理或團隊的第一個人的賬號&#xff0c;后面招一個教師就添加一個賬號。 通讀需求是提取信息&#xff0c;提出問題&#xff0c;輸出…

Ex-Human:在DigitalOcean云平臺之上,構建下一代 AI 數字人

Ex-Human 正在通過創造極具吸引力和富有同理心的人工智能角色&#xff0c;重新定義人們與人工智能的互動方式。該公司由 Artem Rodichev 創立&#xff0c;讓用戶能夠通過文本、圖像、視頻和音頻創建能互動的獨一無二的數字人物。憑借每月超過一百萬的活躍用戶和五百萬個定制創建…

從零實現HTTP服務器

響應&#xff1a; 第一部分測試代碼&#xff0c;讀取請求 Makefile binhttpserver #生成的可執行程序 ccg #編譯器名稱 LD_FLAGS-stdc11 -lpthread #-DDEBUG1 #鏈接選項 srcmain.cc$(bin):$(src)$(cc) -o $ $^ $(LD_FLAGS).PHONY:clean clean:rm -f $(bin) 1111111 main.cc…

構建高可靠C++服務框架:從日志系統到任務調度器的完整實現

構建高可靠C服務框架&#xff1a;從日志系統到任務調度器的完整實現 一、深度解析示例代碼技術體系 1.1 日志系統的進階應用 示例代碼中的ZRY_LOG_XXX宏展示了基礎日志功能&#xff0c;但在生產環境中我們需要更完善的日志系統&#xff1a; 推薦技術棧組合&#xff1a; sp…