【Linux】冯诺依曼体系结构-操作系统

一.冯诺依曼体系结构

我们所使用的计算机,如笔记本等都是按照冯诺依曼来设计的:

截止目前,我们所知道的计算机都是由一个一个的硬件组装起来的,这些硬件又由于功能的不同被分为了输入设备,输出设备,存储器和cpu。

输入设备有:键盘,鼠标,话筒,摄像头,网卡,磁盘等等……

输出设备有:显示器,网卡,磁盘,打印机等等……

而存储器其实就是我们所说的内存,而CPU是由运算器和控制器组成的。

下面我们在谈的时候先不管控制器,只观察运算器:

1.cpu只与内存打交道

软件其实就是一个二进制程序,而软件被运行前必须加载到内存中,那没被加载到内存中在哪呢?就在磁盘中。就比如QQ这个软件它在没有运行的时候就在磁盘中,我们双击即使将其加载到内存的动作。

那为什么必须要将软件加载到内存中呢?因为体系结构规定!因为在冯诺依曼体系结构中,cpu只能与内存交互,无法直接与外设交互,所以我们必须得将程序先加载到内存中,才可以被cpu执行。

在加载的过程中,数据(代码和数据)就发生了流动,但是流动这个概念很模糊,简单来说,就是将数据从一个设备拷贝到另一个设备的过程。

所以一个体系结构的效率也就体现在了拷贝的效率上。

综上,在数据层面上,cpu只与内存打交道,内存只与外设打交道。

2.理解数据流动 

比如我们要打印一个字符串到到屏幕上,此时当我们运行程序,程序就会等待外设——键盘输入,输入一个字符串之后,加载到该程序中,然后通过cpu的处理,最后返回到内存中,最后转交给输出设备——屏幕。这样就达到了我们打印信息的目的。

下面举一个发送qq消息的例子:你和你的同学放寒假在家使用电脑qq聊天,你发送了一个你好,同时在对方屏幕上也出了一个你好,这也是是一个数据流动,那么这到底是怎么实现的呢?

其实利用电脑聊天本质上就是两台冯诺依曼体系通过网络在进行数据流动:

你首先双击qq将其加载到内存中,然后通过输入设备键盘将你好输入到聊天框中,此时点击发送,你好这条消息首先交到了qq中,也相当于交到了内存中,再交到cpu中,进行加密等一系列操作,最后返回到内存中,交给输出设备网卡,网卡通过网络,将其发送到你朋友的机器上。而对于你朋友来说,他的输入设备就是网卡,接着网卡将数据交给内存,内存交给cpu,cpu进行解码等操作,返给内存,最后内存将数据通过输出设备屏幕将信息你好显示出来。

当然,这条你好不仅他能看见,你也能看见,这就说明对你来说,你的输出设备不仅有网卡,也有显示器。

二.操作系统

操作系统其实是一款进行软硬件管理的一款软件。

不论是Linux还是Windows还是macos都是操作系统,它们的功能都是类似的,都是要进行管理软硬件。

但是狭义上的操作系统指的是操作系统内核,但是内核不允许任何人直接访问,所以一些大佬就对操作系统进行了封装,设计出了一些外壳程序——shell等,这样就可以帮助用户与内核建立联系。

1.设计OS的目的

我们先前说了,操作系统是一个进行软硬件管理的软件,所以它是处在软件层和硬件层的中间,一遍向下与硬件交互,管理所有的软硬件资源,向上,为用户提供一个良好的执行环境。

我们看,计算机上面的硬件和软件都是层状分布的,这样符合高内聚低耦合的设计思路。即同一模块之间的联系紧密,但不同模块之间的影响很小,一个产生问题不会对另一个产生影响。

而操作系统的位置是一个承上启下的位置。当我们需要访问硬件时,操作系统会调用驱动系统,驱动程序让硬件处于工作状态,这样就能保证与硬件的交互,但与硬件的交互不是目的,而是手段。

当用户需要访问操作系统时,不可以直接访问,而是要通过系统调用,系统调用其实就是系统提供的一系列函数。

而在系统调用层上面还有一层用户操作接口,这些接口一些在底层封装了系统调用,这下开发者在实际开发过程中,便不需要亲自进行系统调用,而是借助已有的库进行开发。

例如我们在C语言学到的printf函数,该函数在底层就有可能封装了系统调用,因为其向硬件——显示器打印了内容。我们可以简单的认为,如果一个程序访问了硬件,那么这个程序必须贯穿整个软硬件体系结构。

综上所述,设计OS的目的其实就是为了给用户开发者一个舒适简单的开发环境。

2.理解操作系统如何进行管理

我们已经知道,操作系统是一个进行软硬件管理的软件,所以我们自然要明白操作系统是如何进行管理的。

先描述,在组织。

下面举一个简单的例子,比如大学校园,现在只有三类人:学生、导员和校长。校长要对学生进行管理,校长就是管理者,而我们学生就是被管理者。那么我们要怎么进行管理呢? 我们对学生管理到底是在管理什么呢?

其实校长对学生进行管理只需要对学生的数据进行管理,这个学生叫什么,多大,什么专业,家是哪的等等……所以校长就可以设计一个excel表格,表头就是学生的信息。但是校长需要去每一个学生的宿舍让学生填表么?当然不用了,这时候就需要导员出场了,导员就好比驱动程序,校长发布决策,导员执行决策——让学生填表。

但是这样虽然有了学生的信息,但是人一多的话,校长管理起来依旧麻烦,校长需要遍历excel表格来获取信息,这样太耗时了。

所以我们可以借助计算机来进行管理,我们学过结构体的概念,我们可以将学生的信息用结构体来表示。这下如果我们要新增一个学生,就可以新增一个该类的对象,开除一个学生就删除一个变量。这就是描述的过程:

struct student
{
    string _name;
    int _age;
    string _id;
    string _adderss;
    // ...
};

但是如果有1万个学生就有1万个变量,这样很难维护,所以我们可以给类中加一个struct student* next指针,使一个一个的学生成为一个节点,用链表的方式连接起来,这就是组织的过程。

 这样,校长之前翻看excel表格的行为,就转变成了对链表的增删查改。

3.理解系统调用 

系统调用时用户与操作系统进行交互的桥梁。因为操作系统本质上不相信任何人,所以它干脆不允许任何人访问。但是它又不得不让人访问,所以就做出了一系列的系统调用让用户使用。

这样的情形很像银行这一角色。银行本质上就不相信任何人,所以它不允许任何人去直接访问它的系统与金库。但是它又得提供它的一些服务,所以设计出了窗口这样的东西。这些窗口就像是系统调用。

虽然有了窗口,但是去银行的难免有人不会知道操作顺序,所以银行一般还有大堂经理这一角色。

当我们不知道怎么操作时,就可以寻求大堂经理的帮助,大堂经理就会帮助我们去往窗口进行操作。他的角色就好像系统调用上一层的用户调用层,比如一些库,指令,shell外壳等等。它们可以帮助我们去进行系统调用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/981388.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[liorf_localization_imuPreintegration-2] process has died

使用liorf,编译没报错,但是roslaunch报错如下: 解决方法: step1: 如果你之前没有安装 GTSAM,可以尝试安装它 step2: 检查是否缺少依赖库 ldd /home/zz/1210/devel/lib/liorf_localization/liorf_localization_imuPr…

模块11_面向对象

文章目录 模块11_面向对象模块十回顾&&模块十一重点 第一章.接口1.接口的介绍2.接口的定义以及使用3.接口中的成员3.1抽象方法3.2默认方法3.3静态方法3.4成员变量3.4成员变量 4.接口的特点5.接口和抽象类的区别 第二章.多态1.多态的介绍2.多态的基本使用3.多态的条件下…

常见webshell工具的流量特征

1、蚁剑 1.1、蚁剑webshell静态特征 蚁剑中php使用assert、eval执行;asp只有eval执行;在jsp使用的是Java类加载(ClassLoader),同时会带有base64编码解码等字符特征。 1.2、蚁剑webshell动态特征 查看流量分析会发现…

03标准IO接口

一、系统与标准IO的区别 相同点:系统IO与标准IO都可以操作linux系统下的文件。 ⭐不同点: 系统IO:打开文件得到的是一个整数,称为文件描述符。 标准IO:打开文件得到的是一个指针,称为文件指针。系统IO:可以访问linux…

Axure高保真Element框架元件库

点击下载《Axure高保真Element框架元件库》 原型效果:https://axhub.im/ax9/9da2109b9c68749a/#g1 摘要 本文详细阐述了在 Axure 环境下打造的一套高度还原 Element 框架的组件元件集。通过对 Element 框架组件的深入剖析,结合 Axure 的强大功能&#…

【Linux】进程信号——信号保存和信号捕捉

文章目录 信号保存信号相关的概念信号是如何保存的呢?有关信号保存的系统调用sigprocmask信号的增删查改查看pending表验证接口 信号捕捉用户态与内核态信号捕捉流程 总结 信号保存 信号相关的概念 信号递达:指 操作系统 将一个信号(Signal…

【FL0090】基于SSM和微信小程序的球馆预约系统

🧑‍💻博主介绍🧑‍💻 全网粉丝10W,CSDN全栈领域优质创作者,博客之星、掘金/知乎/b站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战,以及程序定制化开发…

因子分析讲解

一、定义 因子分析(Factor Analysis)是一种常用于多变量统计分析的方法,主要用于数据降维、识别潜在的结构、理解变量间的关系。它通过将一组观察变量(通常是高度相关的变量)转化为一组较少的、互不相关的因子&#x…

从 JVM 源码(HotSpot)看 synchronized 原理

大家好,我是此林。 不知道大家有没有这样一种感觉,网上对于一些 Java 框架和类的原理实现众说纷纭,看了总是不明白、不透彻。常常会想:真的是这样吗? 今天我们就从 HotSpot 源码级别去看 synchronized 的实现原理。全…

DeepSeek搭配Excel,制作自定义按钮,实现办公自动化!

今天跟大家分享下我们如何将DeepSeek生成的VBA代码,做成按钮,将其永久保存在我们的Excel表格中,下次遇到类似的问题,直接在Excel中点击按钮,就能10秒搞定,操作也非常的简单. 一、代码准备 代码可以直接询问…

Metal学习笔记十一:贴图和材质

在上一章中,您设置了一个简单的 Phong 光照模型。近年来,研究人员在基于物理的渲染 (PBR) 方面取得了长足的进步。PBR 尝试准确表示真实世界的着色,真实世界中离开表面的光量小于表面接收的光量。在现实世界中&#xf…

zabbix“专家坐诊”第277期问答

在线答疑:乐维社区 问题一 Q:这个怎么解决呢? A:缺少这个依赖。 Q:就一直装不上。 A:装 zabbix-agent2-7.0.0-releasel.el7.x86 64 需要前面提示的那个依赖才可以装。 问题二 Q:大佬,如果agen…

让单链表不再云里雾里

一日不见,如三月兮!接下来与我一起创建单链表吧! 目录 单链表的结构: 创建单链表: 增加结点: 插入结点: 删除结点: 打印单链表: 单链表查找: 单链表…

图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image

图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image 文章目录 图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image主要创新点模型架构图生成器生成器源码 判别器判别器源码 损失函数需要源码讲解的私信我 S…

指纹细节提取(Matlab实现)

指纹细节提取概述指纹作为人体生物特征识别领域中应用最为广泛的特征之一,具有独特性、稳定性和便利性。指纹细节特征对于指纹识别的准确性和可靠性起着关键作用。指纹细节提取,即从指纹图像中精确地提取出能够表征指纹唯一性的关键特征点,是…

泵吸式激光可燃气体监测仪:快速精准守护燃气管网安全

在城市化进程加速的今天,燃气泄漏、地下管网老化等问题时刻威胁着城市安全。如何实现精准、高效的可燃气体监测,守护“城市生命线”,成为新型基础设施建设的核心课题。泵吸式激光可燃气体监测仪,以创新科技赋能安全监测&#xff0…

HTML label 标签使用

点击 <label> 标签通常会使与之关联的表单控件获得焦点或被激活。 通过正确使用 <label> 标签&#xff0c;可以使表单更加友好和易于使用&#xff0c;同时提高整体的可访问性。 基本用法 <label> 标签通过 for 属性与 id 为 username 的 <input> 元素…

数字万用表的使用教程

福禄克经济型数字万用表前面板按键功能介绍示意图 1. 万用表简单介绍 万用表是一种带有整流器的、可以测量交、直流电流、电压及电阻等多种电学参量的磁电式仪表。分为数字万用表&#xff0c;钳形万用表&#xff0c; &#xff08;1&#xff09;表笔分为红、黑二只。使用时黑色…

Python 爬取唐诗宋词三百首

你可以使用 requests 和 BeautifulSoup 来爬取《唐诗三百首》和《宋词三百首》的数据。以下是一个基本的 Python 爬虫示例&#xff0c;它从 中华诗词网 或类似的网站获取数据并保存为 JSON 文件。 import requests from bs4 import BeautifulSoup import json import time# 爬取…

2025年AI PPT工具精选:让演示文稿更智能、更高效

&#x1f4a1; 做PPT太难&#xff1f;没灵感&#xff1f;排版不好看&#xff1f;别怕&#xff0c;AI已经帮你安排好了&#xff01; 想知道2025年最值得推荐的AI PPT工具是哪款&#xff1f;答案就是——秒出PPT&#xff01;&#x1f680; 不仅能一键生成PPT&#xff0c;还能自…