馮諾依曼體系結構與操作系統(Linux)

文章目錄

  • 前言
  • 馮諾依曼體系結構(硬件)
  • 操作系統(軟件)
  • 總結


前言

馮諾依曼體系結構(硬件)

在這里插入圖片描述
上圖就是馮諾依曼體系結構圖,主要包括輸入設備,輸出設備,存儲器,運算器,控制器。
每一個模塊都是獨立的。

我們分別詳細介紹一下這幾個模塊
CPU:運算器和控制器組成。
存儲器:本質就是內存。
輸入設備:主要用于輸入,包括鍵盤,鼠標等等
輸出設備:主要用于輸出,包括顯示器,話筒,聲卡等等。
對于這些硬件設備來說,有的只做輸入,有得只做輸出,有得二者兼顧。

這幾個模塊是通過一個叫做總線的東西連接起來的
在這里插入圖片描述
我們連接起來有什么用呢??
主要是為了數據的流動,也就是數據之間的來回拷貝。
數據之間拷貝的效率就成為計算機效率的一大指標

內存

我們詳細看一下內存。
如果我們沒有內存是否可以呢??
輸入輸出設備直接與CPU進行聯系,在早期的時候就是這么做的。
我們都知道CPU運行是非常快的,但是輸入輸出輸出設備是比較慢的,根據木桶效用。
這相關的速度就是按照輸入輸出的速度來的。

我們介紹一下CPU的緩存。
在這里插入圖片描述

距離CPU越近,單體容量越小,造價越高,效率越高。
距離CPU越遠,單體容量越大,造價越低,效率越低。

如果我們把電腦上配件都設計成寄存器的,那不就非常快了!!!
但是,這樣造價確實十分貴的。

如果我們在二者之間加入一個內存呢??
輸入輸出設備與內存相連,內存與CPU相連。
內存的速度介于二者之間,使二者盡量達到一種平衡。
最終的效率就以內存的效率為主了。
一切設備都只和內存打交道

內存可以把輸入的一些資源加載到內存,進行預先加載。CPU如果要用,就直接從內存讀取就可以。
CPU將讀取的數據放在內存中,進行緩存,最后交給輸出設備。
內存可以看作一個非常大的緩存,介于設備和CPU之間

操作系統(軟件)

我們在打開電腦的時候,首先需要進行加載一段時間,這個加載的軟件就叫做操作系統。
操作系統是一款進行軟硬件資源管理的軟件。

我們首先理解一下管理
管理的人叫做決策者,被管理的人叫做執行者,

我們通過這張圖片來理解一下相關概念。
在這里插入圖片描述

我們首先看一下操作系統以及一下部分。
底層硬件就是我們上面介紹的馮諾依曼體系。

每一款硬件都包括對應的驅動程序,驅動程序是控制底層硬件的,我們通過驅動程序就可以知道這個硬件是讀的還是寫的,還有相關狀態信息等等。驅動程序都是需要被安裝到計算機上的,比如我們的鼠標,需要先插入到電腦上,等待幾秒鐘才可以被使用。
電腦上很多驅動程序都已經進行內置了,比如顯示器,鍵盤等等。

相關系統會將驅動程序和底層硬件進行打包,交給操作系統,方便操作系統對硬件進行管理。

我們可以通過一個例子進一步理解一下這三層。
操作系統就是做決策的,學生就是進行執行的人。
我們在學校上學,我們幾乎沒有見過校長,但是校長卻把我的大學生活安排的明明白白的。
校長并不是對你這個人進行管理,而是對相關的數據做管理,比如你是幾年級的,學號是什么,上那些課程等等。
在相關計算機上也是同樣的,操作系統和底層硬件不需要見面,操作系統只需要知道相關硬件的相關數據就可以對硬件進行管理。

驅動程序就相當于輔導員,輔導員的任務就是保證校長的任務順利的執行。
但是學校有很多學生,就相當于計算機有很多硬件,校長如何快速,高效的管理好這些學生呢???
每個學生都有基本的屬性信息,建立一個結構體,把相關的數據填充上,用鏈表進行連接,我們之后就方便對這些學生進行管理了。在新增一些關于鏈表增刪查改的操作,我們對學生的管理就變成了對鏈表的增刪查改。
對于相關的硬件,也要有一個結構體,里面存放著這個硬件的信息等等,還包括一個指向下一個硬件的指針,方便操作系統就行管理。

我們把上面的過程稱為先描述,在組織

我們這種原理放到語言層面也是適用的,比如c++.
c++是面向對象的語言,每一個對象我們就要先進行描述它,再通過相關的STL容器進行管理。

先描述:struct結構體
在組織:相關的數據結構

我們再來看一下操作系統及以上

我們為什么要有操作系統呢??
操作系統要對軟硬件資源做管理,這樣就是為了向上提供良好的運行環境。
這個良好如何理解呢??高效,安全,穩定。

我們先看一下系統調用接口,我們為什么會存在這個呢??用戶為什么不能對操作系統的數據直接進行訪問呢??
我們出于安全的角度,不能讓用戶直接對操作系統數據進行訪問,這很不安全。這就像在銀行取錢,要取多少錢直接去金庫拿就行,誰知道這個人會不會多拿呢!!!這個系統調用接口就相當于銀行的柜臺,要取錢,通過銀行柜臺,再通過相關人員進行取錢。
系統調用接口是操作系統提供的,如何設計也是有操作系統進行設置的。這個本質就是相關的函數。

用戶操作接口
系統調用接口是不方便普通人進行使用的,所以為了方便用戶。把系統調用接口進行再一次封裝,方便使用,這也就是相關的庫。這就相當于老年人去銀行辦業務,用戶操作接口就相當于大堂經理,專門為這些人服務。我們可以認為每個人都是這個老年人,都不太熟悉流程。

我們也不能用戶直接繞過操作系統去訪問硬件資源,這樣操作系統的管理工作就會很難受。

我們使用這個用戶操作接口也可以屏蔽庫函數底層差異。
只要涉及相關硬件的使用,必須經過系統調用,比如scanf,printf。
我們使用printf在linux和wins等等各種平臺下都可以正常使用,這是因為在庫層面就屏蔽了底層差異,這也就是我們常說的語言的跨平臺性,可移植性。

在這里插入圖片描述

總結

以上就是今天要講的內容,本文僅僅詳細介紹了馮諾依曼體系結構以及操作系統相關的知識。希望對大家的學習有所幫助,僅供參考 如有錯誤請大佬指點我會盡快去改正 歡迎大家來評論~~ 😘 😘 😘

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

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

相關文章

Go高級庫存照片源碼v5.3

GoStock – 免費和付費庫存照片腳本這是一個免費和付費共享高質量庫存照片的平臺,用戶可以上傳照片與整個社區和訪客分享,并可以通過 PayPal 接收捐款。此外,用戶還可以點贊、評論、分享和收藏您最喜歡的照片。 下載 特征: 使用Laravel 10構建訂閱系統Stripe 連接漸進式網頁…

從零開始讀RocketMq源碼(一)生產者啟動

目錄 前言 獲取源碼 總概論 生產者實例 源碼 A-01:設置生產者組名稱 A-02:生產者服務啟動 B-01:初始化狀態 B-02:該方法再次對生產者組名稱進行校驗 B-03:判斷是否為默認生產者組名稱 B-04: 該方法是為了實例化MQClientInstance對…

白嫖A100-interLM大模型部署試用活動,親測有效-2.Git

申明 以下部分內容來源于活動教學文檔: Docs git 安裝 是一個開源的分布式版本控制系統,被廣泛用于軟件協同開發。程序員的必備基礎工具。 常用的 Git 操作 git init 初始化一個新的 Git 倉庫,在當前目錄創建一個 .git 隱藏文件夾來跟蹤…

Windows系統下載安裝ngnix

一 nginx下載安裝 nginx是HTTP服務器和反向代理服務器,功能非常豐富,在nginx官網首頁,點擊download 在download頁面下,可以選擇Stable version穩定版本,點擊下載 將下載完成的zip解壓即可,然乎在nginx所在…

SpringBoot新手快速入門系列教程五:基于JPA的一個Mysql簡單讀寫例子

現在我們來做一個簡單的讀寫Mysql的項目 1,先新建一個項目,我們叫它“HelloJPA”并且添加依賴 2,引入以下依賴: Spring Boot DevTools (可選,但推薦,用于開發時熱部署)Lombok(可選&#xff0c…

三相感應電機的建模仿真(2)基于ABC相坐標系S-Fun的仿真模型

1. 概述 2. 三相感應電動機狀態方程式 3. 基于S-Function的仿真模型建立 4. 瞬態分析實例 5. 總結 6. 參考文獻 1. 概述 前面建立的三相感應電機在ABC相坐標系下的數學模型是一組周期性變系數微分方程(其電感矩陣是轉子位置角的函數,轉子位置角隨時…

qt 開發筆記堆棧布局的應用

1.概要 畫面中有一處位置&#xff0c;有個按鈕點擊后&#xff0c;這片位置完全換成另一個畫面&#xff0c;這中情況特別適合用堆棧布局。 //堆棧布局的應用 #include <QStackedLayout> QStackedLayout *layout new QStackedLayout(this); layout->setCurrentIndex(…

Unity Scrollview的Scrollbar控制方法

備忘&#xff1a;碰到用scrollview自帶的scrollbar去控制滑動&#xff0c;結果發現用代碼控制scrollbar.value無效&#xff0c;搜了一下都是說用scrollRect.verticalNormalizedPosition和scrollRect.horizontalNormalizedPosition來控制的。我尋思著有關聯的scrollbar為什么用不…

【代碼隨想錄算法訓練營第六十天|并查集、卡碼網107.尋找可能存在的路徑】

文章目錄 卡碼網107.尋找可能存在的路徑 并查集基礎內容還是看代碼隨想錄 并查集 卡碼網107.尋找可能存在的路徑 純并查集的基礎應用&#xff0c;并查集只是看元素是否在同一個集合中&#xff0c;因此在加入的時候需要先查看兩個元素是否已經在一個并查集中&#xff0c;如果不…

Interview preparation--Https 工作流程

HTTP 傳輸的弊端 如上圖&#xff0c;Http進行數據傳輸的時候是明文傳輸&#xff0c;導致任何人都有可能截獲信息&#xff0c;篡改信息如果此時黑客冒充服務器&#xff0c;或者黑客竊取信息&#xff0c;則其可以返回任意信息給客戶端&#xff0c;而且不被客戶端察覺&#xff0c;…

2.3.2 主程序和外部IO交互 (文件映射方式)----C#調用范例

2.3.2 主程序和外部IO交互 &#xff08;文件映射方式&#xff09;----C#調用范例 效果顯示 1 說明 1 .1 Test_IOServer是64bit 程序&#xff0c; BD_SharedIOServerd.dll 在 /Debug文件夾中 1 .2 Test_IOServer是32bit 程序&#xff0c; BD_SharedIOClientd.dll (32bit&#…

[FreeRTOS 內部實現] 事件組

文章目錄 事件組結構體創建事件組事件組等待位事件組設置位 事件組結構體 // 路徑&#xff1a;Source/event_groups.c typedef struct xEventGroupDefinition {EventBits_t uxEventBits;List_t xTasksWaitingForBits; } EventGroup_t;uxEventBits 中的每一位表示某個事件是否…

適用于Mac和Windows的最佳iPhone恢復軟件

本文將指導您選擇一款出色的iPhone數據恢復軟件來檢索您的寶貴數據。 市場上有許多所謂的iPhone恢復程序。各種程序很難選擇并選擇其中之一。一旦您做出了錯誤的選擇&#xff0c;您的數據就會有風險。 最好的iPhone數據恢復軟件應包含以下功能。 1.安全可靠。 2.恢復成功率高…

java MultipartFile multipartFile 文件上傳重命名

java MultipartFile multipartFile 文件上傳重命名 我們在文件上傳的時候&#xff0c;需要考慮重名覆蓋問題&#xff0c;為邏輯嚴謹&#xff0c;需要在文件上傳的時候&#xff0c;將文件名前方拼接UUID或者時間戳&#xff0c;來區分同名文件&#xff0c;但因此引出如何修改前端…

Windows下Visual Studio 中配置第一個CUDA工程

今天整NVIDIA 的CUDA 安裝和第一個CUDA 代碼&#xff0c;順便添加一個有CUDA工程的空框架。 &#xff08;1&#xff09;首先確認自己的CUDA 已經安裝成功 >>cmd 進入命令窗&#xff0c;在窗口輸入查看cuda 是否安裝成功&#xff0c;能查到CUDA的版本號&#xff0c;表示安…

VitePress安裝部署

VitePress安裝部署 VitePress安裝步驟 安裝 Node環境 官網下載&#xff1a;https://nodejs.org/zh-cn 傻瓜式安裝到完成 npm環境 安裝完Node環境之后&#xff0c;可以直接運行下面的命令安裝npm npm install -g pnpm關于pnpm源&#xff1a; 有時候需要國內源&#xff0c…

0706_ARM8

練習1&#xff1a; PWM控制蜂鳴器&#xff0c;風扇&#xff0c;震動馬達 pwm.h #ifndef __UART4_H__ #define __UART4_H__ #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_tim.h"//蜂鳴器 PB6 TIME4_CH1 初…

基于python的數據分解-趨勢-季節性-波動變化

系列文章目錄 前言 時間序列數據的分解&#xff0c;一般分為趨勢項&#xff0c;季節變化項和隨機波動項。可以基于加法或者乘法模型。季節變化呈現出周期變化&#xff0c;因此也叫季節效應(周期&#xff09;。 一、數據分解步驟 &#xff08;1&#xff09;估計時間序列的長期…

儀器校準后出了校準證書后,是不是就代表儀器合格了?

儀器校準是一門技術活&#xff0c;對于從事生產制造的企業而言&#xff0c;是不可或缺的一環&#xff0c;因為這與產品質量密切相關。所以&#xff0c;了解儀器校準的相關知識也變得尤為重要。 在拿到校準證書后&#xff0c;是不是說明儀器合格了&#xff1f;相信不少企業品管人…

指針回顧.

指針的主要作用&#xff1a;提供一種間接訪問數據的方法 1.地址:區分不同內存空間的編號 2.指針:指針就是地址,地址就是指針 3.指針變量:存放指針的變量稱為指針變量,簡稱為指針 1.指針的定義 int *p NULL; int *q NULL; char *p NULL; double *p NUL…