高效計算的源泉:深入淺出馮諾依曼模型與操作系統的管理藝術 —— 構建穩定、高效的應用基石 【底層邏輯/性能優化】


???~~~~~~歡迎光臨知星小度博客空間~~~~~~???

???零星地變得優秀~也能拼湊出星河~???

???我們一起努力成為更好的自己~???

???如果這一篇博客對你有幫助~別忘了點贊分享哦~???

???如果有什么問題可以評論區留言或者私信我哦~???

??????個人主頁??????

? ? ? ? 前面我們已經學習了Linux的基礎指令和基礎開發工具,這一篇博客我們從宏觀上來看看計算機——馮諾依曼模型與操作系統的管理藝術 !準備好了嗎~我們發車去探索計算機的奧秘啦~🚗🚗🚗🚗🚗🚗

目錄

馮諾依曼體系結構😜

概念😀

🖥? 五大組成部分

🔁 兩大核心特點

? 數據流動原則

實例說明:QQ聊天與文件發送🙃

操作系統😝

操作系統是什么?😁

操作系統的設計目的😄

操作系統的核心功能(內核負責)😋

操作系統如何實現“管理”?😍

操作系統如何提供服務?—— 系統調用與庫函數?

總結?


馮諾依曼體系結構😜

概念😀

????????馮諾依曼體系結構(Von Neumann Architecture)是現代計算機系統的理論基礎,由數學家約翰·馮·諾依曼于1945年提出。我們常用的計算機如筆記本,我們不常用的計算機如服務器,大部分都遵守了馮諾依曼體系結構。該體系結構明確了計算機的基本組成和工作方式~

🖥? 五大組成部分

? ? 輸入設備(Input Unit)

? ? ? ? 例如:鍵盤、鼠標、掃描儀、攝像頭、麥克風、網卡等。

? ? ? ? 功能將外部數據或指令輸入到計算機中

? ? 存儲器(Memory)

? ? ? ? 特指內存(RAM),是CPU直接訪問的存儲區域

? ? ? ? 所有輸入/輸出設備的數據必須通過內存進行中轉

? ? 運算器(Arithmetic Logic Unit, ALU)

? ? ? ? 負責執行所有的算術運算(如加減乘除)和邏輯運算(如與或非)。

? ? 控制器(Control Unit)

? ? ? ? 指揮協調各部件工作,解析并執行指令(如程序代碼),進行邏輯控制。?

運算器與控制器合稱為中央處理器(CPU)

? ? 輸出設備(Output Unit)

? ? ? ? 例如:顯示器、打印機、音響、網卡等。

? ? ? ? 功能將處理結果輸出給用戶或外部設備

🔁 兩大核心特點

? ? 1、存儲程序原理

? ? ? ? 程序和數據都以二進制形式存儲在內存中,CPU按順序讀取并執行指令

? ? 2、以運算器為中心

? ? ? ? 所有設備通過內存與CPU交互,CPU不直接訪問外設,外設也不和CPU直接打交道

? 數據流動原則

????????所有設備只能直接與內存交換數據,CPU不直接操作外設~外設輸入數據時,先寫入內存;CPU從內存讀取數據運算,結果寫回內存;輸出設備從內存讀取結果并輸出~

? ? ? ? 換言之,內存的本質是CPU和外設的緩存,數據流動的本質就是拷貝,計算機整體效率本質上就是設備間拷貝的效率~

????????內存是核心中轉站,協調高速CPU與低速外設之間的速度差異~

????????效率層次:CPU > 內存 > 外設(如硬盤、鍵盤等)~

????????內存的引入使得計算機在成本和效率之間取得了良好的平衡,讓用戶能夠以相對較低的成本獲得一臺性能不錯的計算機,從而提升了計算機的“性價比”。

實例說明:QQ聊天與文件發送🙃

1. 發送文字消息:

? ? 輸入:鍵盤輸入字符 → 數據存入內存。

? ? CPU處理:從內存讀取數據,進行編碼、打包等操作。

? ? 輸出:數據從內存經網卡發送到網絡 → 對方接收后存入其內存 → 對方CPU處理 → 結果顯示在對方屏幕上。

2. 發送文件:

? ? 輸入:文件從硬盤讀入內存(外設→內存)。

? ? CPU處理:對文件數據分包、加密等。

? ? 輸出:數據包經網卡發送 → 對方接收后存入內存 → 寫入硬盤(內存→外設)。

????????馮諾依曼體系結構通過“存儲程序”和“集中式內存訪問”機制,奠定了現代計算機的基礎。通過理解這一模型有助于深入理解軟件與硬件的交互方式,尤其是數據流如何在不同設備間通過內存進行協調與傳輸。

操作系統😝

操作系統是什么?😁

操作系統是計算機系統中最基本、最核心的系統軟件

從組成上看

? ? ? ? 狹義的操作系統:特指其內核(Kernel),這是操作系統的核心部分,直接負責管理硬件和核心資源。

? ? ? ? 廣義的操作系統:除了內核外,還包括一系列必要的程序集合,例如:外殼(Shell):提供用戶與內核交互的界面(命令行或圖形界面);函數庫(如glibc):將復雜的系統調用封裝成更易用的函數;其他系統級軟件。

從定位上看

? ? ? ? 它是一款純正的 “搞管理”的軟件【軟硬件管理】。在整個計算機軟硬件架構中,它處于承上啟下的關鍵位置。

操作系統的設計目的😄

? ? 對下(管理硬件)與硬件交互,統籌管理所有的軟硬件資源(如CPU、內存、硬盤、網卡等),這是它實現的手段

? ? 對上(服務應用/用戶)為用戶程序(應用程序)提供一個穩定、安全、高效的執行環境,這是它追求的目的

????????用戶通過應用程序使用計算機硬件,而這些資源是有限的。操作系統的必要性就在于它作為公正的“管理者”,避免了應用程序對資源的無序爭搶,保證了整個系統的有序和高效。

操作系統的核心功能(內核負責)😋

內核主要包含四大管理功能

? ? 進程管理:管理正在運行的程序(進程/任務/線程),負責CPU資源的分配和調度。

? ? 內存管理:負責內存的分配、回收、以及虛擬內存等,保證各個進程能安全地使用內存。

? ? 文件管理:管理硬盤上的文件和目錄,提供文件系統供用戶和程序讀寫數據。

? ? 驅動管理:管理和控制所有的硬件設備(如鍵盤、顯示器),為上層提供統一的接口。

操作系統如何實現“管理”?😍

操作系統管理方法可以概括為:“先描述,再組織”~管理本質上是對被管理對象有效數據的管理~

先描述(Description)

? ? ? ? 做法:使用數據結構(在C語言中主要是 struct 結構體) 來抽象一個被管理對象的所有關鍵信息

? ? ? ? 例子:

? ? ? ? ? ?管理進程?就定義一個 struct task_struct,包含進程ID、狀態、優先級、內存指針等。

? ? ? ? ? ? 管理文件?就定義一個 struct file,包含文件大小、路徑、權限等。

? ? ? ? ? ? 管理硬件?就定義一個 struct hard_device,包含設備類型、狀態、容量等。

? ? ? ? 結論:管理的本質不是管理實體本身,而是管理描述這些實體的數據操作系統內核中充滿了大量的數據結構

再組織(Organization)

? ? ? ? 做法:將這些描述好的結構體實例,通過高效的數據結構(如鏈表、樹、隊列等) 組織起來

? ? ? ? 例子:所有進程的 task_struct 通過指針連接成各種隊列(就緒隊列、等待隊列);所有設備結構體被鏈成一個 device_list。

? ? ? ? 目的:管理者(OS)要執行操作(如分配CPU、查找文件),就變成了對這些數據結構進行增刪改查,這就是為什么學習數據結構和算法對理解OS至關重要。

通俗類比:校長【操作系統】管理學生【硬件】,不需要認識每個學生,他只需要一份包含所有學生信息(學號、成績、班級)的花名冊【有效信息】(描述),并將這些信息按班級或成績排序(組織)。管理學校,其實就是管理這份花名冊,同時還有輔導員【驅動程序】的存在進行分學院管理~

操作系統如何提供服務?—— 系統調用與庫函數?

? ? 系統調用(System Call):操作系統會將部分內核功能以接口形式暴露給上層開發者,這些接口稱為系統調用,它們功能基礎但強大,是用戶程序訪問硬件和內核服務的唯一入口

? ? 庫函數(Library Function):系統調用使用復雜,因此開發者會對它們進行封裝,形成更易用的庫(如C標準庫)。我們日常編程使用的 printf()、fopen() 等函數,其底層最終都會調用相應的系統調用,所以庫函數和系統調用也是上下層的關系

????????

總結?

????????操作系統是計算機系統的“大管家”。它位于硬件之上,應用之下,通過“先描述(用struct),再組織(用鏈表等數據結構)”的科學方法,將對CPU、內存、磁盤、設備等物理資源的管理,轉化為對數據的管理。它通過系統調用對外提供服務,并最終為用戶提供一個穩定、高效、安全的計算環境。


???本篇博客內容結束,期待與各位優秀程序員交流,有什么問題請私信???

???如果這一篇博客對你有幫助~別忘了點贊分享哦~???

??????個人主頁??????


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

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

相關文章

性能測試-jmeter9-邏輯控制器、定時器壓力并發

課程:B站大學 記錄軟件測試-性能測試學習歷程、掌握前端性能測試、后端性能測試、服務端性能測試的你才是一個專業的軟件測試工程師 性能測試-jmeter邏輯控制器、定時器妙用IF控制器**IF 控制器的作用**循環控制器循環控制器的作用ForEach控制器ForEach 控制器的作用…

T:線段樹入門(無區間更新)

線段樹.線段樹介紹.線段樹框架.理解線段樹.圖式整個過程.線段樹代碼逐層解析.代碼匯總.leetcode練習.線段樹介紹 線段樹(SegmentTree)\;\;\;\;\;\;\;\;線段樹(SegmentTree)線段樹(SegmentTree) is 用于高效處理區間查詢和單點修改的數據結構,和樹狀數組很像&#xf…

【ISP】Charlite工具實操

實習一周了&#xff0c;參與了客觀拍攝和測試&#xff0c;復習一下nv工具 BLACK LEVEL&#xff08;黑電平&#xff09; eg&#xff1a; $ nv_ob 0 in_dir <input directory> out_name <ob file> nv_ob 0 in_dir D:\study\nvraw\ob1 out_name D:\study\nvraw\my_out…

普藍機器人 AutoTrack-IR-DR200 外設配置全指南

為什么外設配置對機器人研究如此重要&#xff1f;在當今機器人技術飛速發展的時代&#xff0c;高校學生研究團隊正成為創新的重要力量。無論是參加機器人競賽、開展畢業設計&#xff0c;還是進行學術研究&#xff0c;正確配置和使用外設設備都是成功的關鍵。尤其學生組裝一個服…

8、Python性能優化與代碼工程化

學習目標&#xff1a;掌握Python程序性能分析和優化的通用方法&#xff0c;建立工程化開發的規范意識&#xff0c;為后續AI項目開發奠定堅實的編程基礎在數據科學和AI開發中&#xff0c;代碼性能往往決定了項目的可行性。一個處理時間從幾小時縮短到幾分鐘的優化&#xff0c;可…

【算法--鏈表】117.填充每個節點的下一個右側節點指針Ⅱ--通俗講解

通俗算法講解推薦閱讀: 【算法–鏈表】83.刪除排序鏈表中的重復元素–通俗講解 【算法–鏈表】刪除排序鏈表中的重復元素 II–通俗講解 【算法–鏈表】86.分割鏈表–通俗講解 【算法】92.翻轉鏈表Ⅱ–通俗講解 【算法–鏈表】109.有序鏈表轉換二叉搜索樹–通俗講解 【算法–鏈…

分詞器(Tokenizer)總結(89)

分詞器(Tokenizer)總結 分詞器(Tokenizer) 分詞器的詞表(vocabulary)長度通常短于模型嵌入層(embedding layer)的長度。 結束標記(EOS token)應僅用于標記文本結尾,不可用于其他用途。 填充標記(PAD token)通常未預先定義,但你仍可能需要用到它: 對于生成式模型…

19 webUI應用中 Controlnet精講(05)-圖像修復與編輯

前面的篇章已經詳細講解了線條約束、三維關系與空間深度、人體姿態等幾類controlnet的功能與應用&#xff0c;本節內容將對通過controlnet對圖像修復與編輯進行講解。 通過controlnet也可以對圖片進行編輯、重繪及放大等操作&#xff0c;具體包括Recolor、Inpaint、Tile等&…

消息推送的三種常見方式:輪詢、SSE、WebSocket

摘要&#xff1a;本文介紹消息推送的三種常見方式&#xff1a;輪詢&#xff08;定時請求&#xff0c;易增負擔&#xff09;與長輪詢&#xff08;阻塞請求至有數據 / 超時&#xff0c;減少請求&#xff09;、SSE&#xff08;HTTP 單向實時傳輸&#xff0c;純文本、自動重連&…

論文閱讀:ACL 2024 Stealthy Attack on Large Language Model based Recommendation

總目錄 大模型相關研究&#xff1a;https://blog.csdn.net/WhiffeYF/article/details/142132328 https://arxiv.org/pdf/2402.14836 https://www.doubao.com/chat/19815566713551106 文章目錄速覽攻擊方法速覽一、攻擊核心目標與前提1. 核心目標2. 攻擊前提二、模型無關的簡單…

自動駕駛中的傳感器技術43——Radar(4)

本文對目前毫米波雷達中的天線設計進行比較全面的羅列&#xff0c;并進行簡單的設計評述 1、實際設計案例 圖1 涵蓋能寬窄覆蓋的天線設計&#xff08;無俯仰分辨率&#xff09;圖2 Bosch前雷達的天線設計&#xff08;有俯仰的分辨率但比較弱&#xff0c;也涵蓋了擴展覆蓋&…

使用反轉法線材質球,實現切換天空盒相同的功能,優點:包體變小

切換天空盒第一步先把SKY 天空球資源導入到工程里&#xff0c; 第二步&#xff1a;天空球文件下的SKY預制件拖入到場景里 第三步 選著SKY材質球&#xff0c;拖入自己的全景圖片(圖片分辨率不能超過5000*5000&#xff0c;否則手機無法顯示) 如果并沒有效果&#xff0c;看看圖…

真正有效的數據指標體系應該長什么樣?

真正有效的數據指標體系應該長什么樣&#xff1f;為什么大多數企業的指標體系都是"花架子"&#xff1f;真正有效的指標體系應該長什么樣&#xff1f;從數據到洞察&#xff1a;讓指標真正"活"起來結語在這個人人都在談數字化轉型的時代&#xff0c;企業就像…

分布式專題——6 Redis緩存設計與性能優化

1 多級緩存架構2 緩存設計 2.1 緩存穿透 2.1.1 簡介緩存穿透是什么&#xff1f;當查詢一個根本不存在的數據時&#xff0c;緩存層和存儲層都不會命中。正常邏輯下&#xff0c;存儲層查不到數據就不會寫入緩存層。這會導致&#xff1a;每次請求這個不存在的數據&#xff0c;都要…

一文了解大模型壓縮與部署

一文了解大模型壓縮與部署&#xff1a;從 INT4 量化到 MoE&#xff0c;讓大模型跑在手機、邊緣設備和云端&#x1f3af; 為什么需要模型壓縮與部署&#xff1f;你訓練了一個強大的大模型&#xff08;如 Qwen-72B、LLaMA-3-70B&#xff09;&#xff0c;但在部署時發現&#xff1…

新手向:中文語言識別的進化之路

自然語言處理&#xff08;NLP&#xff09;技術正在以前所未有的速度改變我們與機器的交互方式。根據Gartner最新報告顯示&#xff0c;全球NLP市場規模預計在2025年將達到430億美元&#xff0c;年復合增長率高達21%。而中文作為世界上使用人數最多的語言&#xff08;全球約15億使…

LeetCode100-206反轉鏈表

本文基于各個大佬的文章上點關注下點贊&#xff0c;明天一定更燦爛&#xff01;前言Python基礎好像會了又好像沒會&#xff0c;所有我直接開始刷leetcode一邊抄樣例代碼一邊學習吧。本系列文章用來記錄學習中的思考&#xff0c;寫給自己看的&#xff0c;也歡迎大家在評論區指導…

uniapp開源多商戶小程序商城平臺源碼 支持二次開發+永久免費升級

在電商行業競爭日益激烈的今天&#xff0c;擁有一個功能強大、靈活可拓展的多商戶小程序商城至關重要。今天給大家分享一款 uniapp 開源多商戶小程序商城平臺源碼&#xff0c;它不僅具備豐富的基礎功能&#xff0c;還支持二次開發&#xff0c;更能享受永久免費升級服務&#xf…

使用腳本一鍵更新NTP服務器地址為自定義地址

【使用場景】 在銀河麒麟桌面操作系統V10SP1-2303版本中使用腳本一鍵修改NTP服務器地址為自定義地址。 【操作步驟】 步驟1. 編寫shell腳本 ```bash desktop2303@desktop2303-pc:~$ vim setntptimeserver.sh #!/bin/bashfunction modifykylinconf() { # 檢查是否已存在目標配置…

linux內核 - 內核架構概覽

當 Linux 系統啟動時,內核會在啟動過程的早期階段接管控制——緊跟在固件(BIOS 或 UEFI)和引導加載程序完成任務之后。此時,壓縮的 Linux 內核鏡像會被加載到內存中,通常會附帶一個稱為 initramfs 的最小臨時根文件系統,它用于在切換到真實根文件系統并繼續系統初始化之前…