Linux系統之----馮諾依曼結構

1.簡要描述

馮·諾依曼體系結構是現代計算機的基本設計思想,其核心理念是將計算機的硬件和軟件統一為一個整體,通過存儲程序的方式實現計算。馮·諾依曼體系結構的核心思想是通過存儲程序實現自動計算,其五大部件協同工作,奠定了現代計算機的基本框架。

2.基本組成部分

馮·諾依曼體系結構由以下五大部件組成:

輸入設備:用于將外部數據輸入到計算機中(如鍵盤、鼠標、攝像頭等)。

存儲器:用于存儲程序和數據(包括內存和外存)。

運算器:負責執行算術運算和邏輯運算。

控制器:負責協調和控制計算機各部件的工作,執行程序指令。

輸出設備:用于將計算結果輸出到外部(如顯示器、打印機、揚聲器等)。

關于馮諾依曼,必須強調幾點:
1、 這里的存儲器指的是內存
2、 不考慮緩存情況,這里的CPU能且只能對內存進行讀寫,不能訪問外設(輸入或輸出設備)
3、 外設(輸入或輸出設備)要輸入或者輸出數據,也只能寫入內存或者從內存中讀取。
4、? ?句話,所有設備都只能直接和內存打交道。

3.示例說明

例如我想和我女朋友發一條消息,并且我們都約好了只在微信或者QQ上面聊,假設我在廣州,而她在長春,線下來回跑聊天是不可能的了,只能文字聊天,那么當我在微信上發送一條“早上好”的消息時,她是怎么收到的呢?為什么別人收不到我的消息呢?
首先我們要肯定一點,我的手機是一臺馮諾依曼結構,我女朋友也是,而之所以微信和QQ可以傳遞消息就是因為當我們打開他們時,他們就會在我們的內存中啟動,并且通過我這個內存,也就是馮諾依曼結構的核心傳遞消息。
首先我的消息(包括圖像,聲音文字等)要先進入輸入設備,例如鍵盤等等,之后進入存儲器,包括運算器以及控制器,在這里我的消息將進行加密運算,形成一種特定的編碼,之后在返回存儲器,并進入輸出設備,同時通過網卡進行網絡轉播,由于不同的消息所占據的信道不一樣,頻率也不一樣,具體的可以去學習一下信號與系統與現代通信原理這門課,這里我不是很了解就不在多說了。總之就是通過網絡就傳到了我對象的手機里,進入了她的馮諾依曼結構的輸入設備,(此時還是加密的某種編碼),在進入存儲器后,通過CPU進行解密操作,并傳到輸出設備:顯示器。如此我便將消息傳到了我對象的手機里。
那文件又是如何傳輸的呢?道理很相似,我們的文件是存儲在磁盤中的,一開始我的輸入設備通過文件路徑拿到了我的文件,之后還是在CPU中進行加密,之后通過輸出設備傳出,之后在接收端的輸入設備被捕獲,之后進行解密,存到磁盤中。
換句話說, 我們是在基于馮諾依曼結構,進行二者的磁盤文件數據的拷貝

? ? ?但是換句話講,在Linux中一切皆是文件,發送消息的本質就是基于馮諾依曼結構,從我的鍵盤文件拷貝數據到對方的顯示器文件!!!!!!!

4. 內存與外存

  • 內存:與CPU直接交互,速度快但容量有限。

  • 外存:如硬盤、SSD等,容量大但速度較慢。

  • 內存作為外存和CPU之間的緩存,確保數據能夠快速傳遞。

5. 性能瓶頸

馮·諾依曼體系結構的一個主要問題是“馮·諾依曼瓶頸”,即數據在存儲器和CPU之間的傳輸速度限制了整體性能。圖片中提到的“木桶理論”形象地說明了這一點:系統的性能由最慢的環節(如存儲器(內存)速度)決定。

6.操作系統

6.1 操作系統概述

操作系統是一種系統軟件,處于計算機硬件和其他軟件及用戶之間的中間層,它對軟硬件資源進行管理,為用戶和應用軟件提供良好的運行環境。

?從上圖可以看到,操作系統是分為俠義和廣義的,內核就是開發者所制造出來的(指的是祖師爺那幫人),外殼是給公司里的各種程序員使用的,諸位程序員在外殼上對操作系統進行開發,開發完成后形成廣義的操作系統,也就是大家都在用的安卓蘋果等等。


6.2 操作系統結構

用戶部分 :包含指令操作、開發操作和管理操作等,用戶通過這些操作與計算機系統進行交互。

用戶操作接口 :有 shell 外殼、lib 和部分指令,方便用戶進行各種操作,就像是用戶與操作系統之間的一座橋梁,讓用戶能夠按照自己的意圖操控計算機系統。

系統調用接口 :是操作系統提供給用戶程序調用的一組接口,用戶程序可以通過這些接口請求操作系統提供的各種服務,如文件操作、進程控制等,它是操作系統內核與應用程序之間的橋梁,使得應用程序能夠在受控的方式下訪問操作系統提供的功能和服務。

系統軟件部分 :包括內存管理、進程管理、文件管理和驅動管理等模塊。內存管理負責計算機內存的分配、回收等操作,確保各個進程能夠合理、高效地使用內存資源;進程管理則對進程的創建、撤銷、調度等進行控制和協調,使得多個進程能夠有序地運行,提高系統的并發執行能力;文件管理負責文件的存儲、讀取、寫入等操作,為用戶和應用程序提供方便的文件存儲和訪問服務;驅動管理則是對各類硬件設備的驅動程序進行管理和調度,使得硬件設備能夠正常工作并被操作系統及應用程序所使用。

驅動程序 :如網卡驅動、硬盤驅動和其他驅動,它們是操作系統與硬件設備之間的接口軟件,負責控制和管理特定的硬件設備,使得操作系統和應用程序能夠通過驅動程序與硬件設備進行通信和交互,完成各種硬件操作。

硬件部分 :是計算機系統的基礎,包括網卡、硬盤等硬件設備,它們為計算機系統的運行提供了物質基礎和計算、存儲、通信等能力。

6.3 操作系統的必要性

對下 :可以管理好軟硬件資源,對計算機系統的各類資源進行統一的管理和調度,確保資源的合理分配和高效利用,避免資源的浪費和沖突。

對上 :能給用戶提供便捷、穩定、安全、高效的運行環境,用戶和應用程序無需直接與硬件打交道,而是通過操作系統提供的接口和功能來使用計算機資源,大大降低了使用計算機的難度,提高了計算機的可用性和可靠性。

6.4 操作系統與管理

管理的本質 :管理的本質是通過數據來進行管理。在操作系統中,各種資源和對象都可以通過相應的數據結構和信息來進行描述和管理,例如通過進程控制塊來管理進程的狀態、信息等。

結構化管理 :可以采用鏈表、數組等結構來對管理對象進行組織和管理。比如使用鏈表來管理進程列表,方便對進程的增刪改查等操作,提高管理的效率和靈活性。

---------------------------------------------------------------------------------------------------------------------------------

上述內容看不懂沒關系,這里我在詳細解釋一下:

例子一:

首先我們要搞明白什么叫做管理者?舉個例子,學校里面有校長,老師和同學,同學自然而然便是被管理者那么老師是屬于什么?管理者還是被管理者呢?都不是,老師是屬于決策的執行者,而決策是由校長制定的,因此在這個例子中,校長是管理者。同理,對于我們的操作系統,驅動程序還有硬件,也符合這三者的關系,我們的操作系統就相當于是管理者,操作系統將命令下達后傳達給驅動程序,再由驅動程序傳遞給硬件。

我們再回到上述例子,管理者是如何知道我的相關數據的呢?管理者要管理被我們管理者,但是他們并沒有見過我的面,他是如何管理的我呢?

結論就是見面并不是本質,獲取你身上的有效信息才是管理的必要條件。在上述例子中,校長通過輔導員協助收集我們的有效信息,進而可以實現對我們的管理。打個比方,以分宿舍為例,校委會通過老師來收集我們的生源地,將生源地比較靠近的學生分到一起,避免分歧。這便是管理執行的一個例子。

因此我們得出一個結論,管理的本質就是對數據進行管理,管理的做法也就是先描述再組織。

描述可以理解為收集到我們的個人信息,在我們編程語言中便是結構體,這里的組織便是通過一系列的操作方式完成目的,這也就是為什么c++,Python,JAVA等語言為什么要提供類,為什么要提供容器技術,比如stl的原因。

這也就恰恰的解釋了我們當時在設計學生管理系統的時候,為什么要用一個結構體來封裝每一個學生單元。本質上就是要對數據進行描述!!!

因此對于我們操作系統而言,其內部一定存在著大量的數據結構,匹配著對應的算法,用于我們對數據的管理進行描述與組織。換句話說,如果想學習好操作系統,必須要先了解操作系統內的各種數據結構

例子二:

現在我們再舉個例子來論述底層硬件驅動程序和操作系統的關系。假設我現在有一個銀行系統,其分為了5個部分,分別為金庫,桌椅,宿舍,食堂還有電腦。這5個部分就像我們計算機的操作系統里面的不同數據結構或者函數,你要干什么就調用相應的函數就可以了。比如我來到了銀行想存錢,那我就去金庫部門,假如我想到銀行吃飯,那我就去食堂部門。但是林子大了什么鳥都有,人民群眾中可能會有壞人,我們可以直接讓人們直接把錢放到金庫,然后再去電腦端自己手動輸入去更新數據嗎?這個是顯然不現實的,因此我們的銀行系統中會有一個一個的窗口,窗戶里面有人來為我我們辦理業務。不允許外部的人直接訪問銀行系統內部的相關數據。這個可以類比為我們計算機系統里面的驅動程序,?然而有些老年人可能不會存錢,有可能這些人不會寫字,甚至不會整個操作流程,那如果讓這些老年人直接去窗口辦理業務的話會大大增加時間成本,因此大堂經理便發揮了重要作用。他們可以根據老年人的要求幫助老年人填寫好單子,預約好窗口,減少窗口使用的成本,這也就是程序員存在的意義所在,需要將操作系統開發到普通群眾可以拿來就能用!

倘若直接讓一個小白去使用我們的操作系統,他是不會用底層的語言來操作系統進而完成他想操作的東西。此時就需要程序員在操作系統進行各種庫的開發與調用,比如c標準庫,c++標準庫。那么在系統調用方面和庫函數調用又有什么關系呢?實際上這些庫和系統調用是屬于上下層之間的關系,使用者通過操縱庫函數來進行系統調用,而與操作系統進行交互的唯一方式也只能通過操作系統來調用!

想必到這里,讀者應該對操作系統有了初步的理解與認識,下一篇文章中我們將繼續講解進程的概念!

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

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

相關文章

【八股】計算機網絡

1 概述 1.1 網絡的網絡 網絡把主機連接起來,而互連網(internet)是把多種不同的網絡連接起來,因此互連網是網絡的網絡。而互聯網(Internet)是全球范圍的互連網。 1.2 ISP 互聯網服務提供商 ISP 可以從互聯網管理機構獲得許多 IP 地址,同時擁有通信線路以及路由器等聯…

基于VS Code 為核心平臺的python語言智能體開發平臺搭建

以下是基于 VS Code 為核心平臺,整合 Node-RED、Gradio、Docker Desktop 的智能體可視化開發平臺優化方案,聚焦工具鏈深度集成與開發效率提升: 一、核心架構設計 #mermaid-svg-f8l9kYPAlJ2TlpGF {font-family:"trebuchet ms",verd…

STM32G0單片機自帶RTC

STM32有個自帶RTC外設,外接32.768KHz的晶振后可得到相對精確的計時功能。 實測了一個一小時快個1秒多。 1 cubeMX設置了RTC后自動生成的初始化代碼如下 static void MX_RTC_Init(void) {/* USER CODE BEGIN RTC_Init 0 *//* USER CODE END RTC_Init 0 */RTC_TimeT…

細說STM32單片機FreeRTOS任務管理API函數及多任務編程的實現方法

目錄 一、FreeRTOS任務管理API函數 1、任務管理API函數 2、獲取任務的句柄 (1)函數xTaskGetCurrentTaskHandle() (2)函數xTaskGetIdleTaskHandle() (3)函數xTaskGetHandle() 3、單個任務的操作 &a…

星露谷物語 7000+ 大型MOD整合包

衣服美化、家具美化、地圖美化、人物肖像美化 全地圖裝修存檔、人物美化、擴展包、環境美化、家具、動植物、通用前置包、新增NPC、功能、服裝發飾妝 帽子發型農場小鎮美化大型玩法拓展實用功能mod 動漫人物形象MOD 地點/動物/地圖/功能/機械/家具/建筑/界面美化/擴展/農場/食譜…

C++ `unique_ptr` 多線程使用

C unique_ptr 多線程使用 一、核心結論 操作同一個 unique_ptr:必須加鎖(所有權轉移是非原子操作)訪問被管理對象:若對象非線程安全,仍需額外同步獨立 unique_ptr 實例:不同線程操作不同實例時無需加鎖 二…

Android audio系統六 AudioEffect音效加載

對于Android系統智能硬件設備,音效處理的實現方式有以下幾種: AudioEffect – android系統音效處理 優點:純軟件實現,移植調試簡單方便 缺點:cpu上運行,容易因為資源競爭而出現卡頓 DSP/ADSP – 數字信號處…

深度學習總結(21)

超越基于常識的基準 除了不同的評估方法,你還應該了解的是利用基于常識的基準。訓練深度學習模型,你聽不到也看不到。你無法觀察流形學習過程,它發生在數千維空間中,即使投影到三維空間中,你也無法解釋它。唯一的反饋…

接口自動化測試(二)

一、接口測試流程:接口文檔、用例編寫 拿到接口文檔——編寫接口用例以及評審——進行接口測試——工具/自動化框架進行自動化用例覆蓋(70%)——輸出測試報告 自動化的目的一般是為了回歸 第一件事情:理解需求,學會看接口文檔 只需要找到我…

Linux上位機開發實踐(以MCU小系統入門嵌入式電路)

【 聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing 163.com】 一直都主張嵌入式軟件工程師,也要會做一點電路設計的工作。哪怕自己做的是嵌入式linux上層開發,一個會硬件設計&#xff0c…

瀏覽器的存儲機制 - Storage

瀏覽器的存儲機制 - Storage 前言一、核心概念與區別二、常用 API1、存儲數據(setItem(key, value))2、 獲取數據(getItem(key))3、刪除單個數據(removeItem(key))4、清空所有數據(clear()&…

考研單詞筆記 2025.04.18

chance n機會,風險,冒險,可能性,巧合,意外a偶然的,意外的 opportunity n機會,時機 crisis n危機,危急關頭 the economic crisis 經濟危機 danger n危險,可能性&#…

第三方API——Spring Boot 集成阿里云短信發送功能

目錄 一. 創建阿里云OSS服務并獲取密鑰,開通短信服務 1.1 注冊阿里云服務器 1.2 開通短信服務 1.3 創建對象存儲OSS服務 1.4 RAM用戶授權短信權限 1.5 新增用戶并授權用戶短信權限 1.6 獲取 AccessKey ID 和 AccessKey Secret 二. 創建項目集成短信發送 2.1…

b站PC網頁版視頻播放頁油猴小插件制作

文章目錄 前言需求分析實施觀察頁面起始渲染編碼效果展示 總結 前言 新手上路,歡迎指導 需求分析 想要一個簡約干凈的界面,需要去除推薦欄和廣告部分. 想要自由調節視頻播放速率,需要在視頻控制欄加一個輸入框控制視頻倍速 實施 觀察頁面起始渲染 因為要使用MutationObse…

暢游Diffusion數字人(27):解讀字節跳動提出主題定制視頻生成技術Phantom

暢游Diffusion數字人(0):專欄文章導航 前言:主題定制視頻生成,特別是zero-shot主題定制視頻生成,一直是當前領域的一個難點,之前的方法效果很差。字節跳動提出了一個技術主題定制視頻生成技術Phantom,效果相比于之前的技術進步非常顯著。這篇博客詳細解讀一下這一工作。 …

ESP8266簡單介紹

ESP8266模塊圖如下 ESP8266的工作模式有三種 ESP8266支持STA、AP、STAAP三種工作模式 ①STA模式 (ESP充當設備與路由器相連) ②AP模式 (ESP充當路由器) ③APSTA(上述兩種模式兼具) AT指令介紹 使用安…

DeepSeek-R3、GPT-4o 與 Claude-3.5-Sonnet 全面對比:性能、應用場景與技術解析

隨著大模型技術的迅猛發展,國產模型正逐漸嶄露頭角,尤其是DeepSeek-R3的發布,更是在AI技術社區中引起廣泛關注。而與此同時,國際領先的GPT-4o和Claude-3.5-Sonnet也在不斷迭代升級,持續刷新業界對AI能力的認知。下文將…

城市街拍暗色電影膠片風格Lr調色教程,手機濾鏡PS+Lightroom預設下載!

調色介紹 城市街拍暗色電影膠片風格 Lr 調色,是借助 Adobe Lightroom 軟件,為城市街拍的人像或場景照片賦予獨特視覺風格的后期處理方式。旨在模擬電影膠片質感,營造出充滿故事感與藝術感的暗色氛圍,讓照片仿佛截取于某部充滿張力…

數字后端設計 (一):數字電路設計的「前后端」到底是什么?

—— 想象你在做一道菜——前端設計是寫菜譜,后端設計是進廚房真正炒菜。這篇文章幫你搞懂「芯片設計」里這兩個階段到底在干嘛。 1. 前端設計——寫一份「理想化」的菜譜 任務:用代碼描述芯片的功能。例子:你要做一個自動計算“112”的芯片…

網站301搬家后谷歌一直不收錄新頁面怎么辦?

當網站因更換域名或架構調整啟用301重定向后,許多站長發現谷歌遲遲不收錄新頁面,甚至流量大幅下滑。 例如,301跳轉設置錯誤可能導致權重傳遞失效,而新站內容與原站高度重復則可能被谷歌判定為“低價值頁面”。 即使技術層面無誤&a…