【linux】冯诺依曼体系与操作系统的理解

本篇文章是进程的预备知识,但也不仅仅是进程的预备知识,
也可以更好地帮助我们理解整个计算机体系。

目录

  • 冯诺依曼体系结构:
  • 进一步理解操作系统:

冯诺依曼体系结构:

在这里插入图片描述
关于这张图先进行一下必要的解释:

  1. 输入设备:包括键盘, 鼠标,扫描仪, 写板等
  2. 中央处理器(CPU):含有运算器和控制器等
  3. 输出设备:显示器,打印机等
  4. 对于存储器,计算机中很多硬件设备都有存储功能,但这里的存储器指的是内存

我们现在只谈数据层面的信号,我们发现所有的数据都是经过内存的,为什么呢?

如果没有内存的话
在这里插入图片描述
这就是我们没有内存的情况,由于输入设备与输出设备的速度是很慢的,根据木桶原理在这里插入图片描述
计算机的速度就慢下来了,这也就是内存为什么存在的原因。

他是作为一个巨大的缓存,是一个中转站,或许有人会说,他多经过一个路径,多拷贝了一次,速度岂不是更慢了,
答案是,就算CPU的计算速度再快,但是也需要计算时间,我们在CPU计算的时间内,由输入设备像内存中先存一大段数据,CPU直接从中拿取就会加快一个量级。

那我们知道这个有什么作用呢?
我们在学习C语言时大概率听到过一句话,我们写好的程序都是会先加载到内存中,再由CPU计算程序的数据。这就是冯诺依曼体系规定这么做的。


那么从你登录上qq开始和某位朋友聊天,从你打开窗口,给他发消息,到他的到消息之后的数据流动过程是怎样的呢?

首先我们要想到两台电脑就是两个冯诺依曼体系结构。
在这里插入图片描述

进一步理解操作系统:

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:

  • 内核(进程管理,内存管理,文件管理,驱动管理)
  • 其他程序(例如函数库,shell程序等等)

给操作系统下一个笼统的定义的话:就是一款管理硬件与软件的软件。

既然可以管理硬件,那我们可以得到如下示意图(不完整):
在这里插入图片描述

那么重点来了,是如何进行管理的呢?

就像一个学校的校长要管理学生,肯定不是每天一个一个的管理学生,毕竟那么多人。
于是肯定就会有一个管理系统,管理系统中有学生详细的数据,于是校长直接管理数据就好了。
到这里我们就会发觉教务系统与我们曾经实现的通讯录是很像的。我们先描述一个对象

struct stu
{char name[20];char telephone[15];int age;....
}

在将每一个对象进行连接,也就是组织起来,即多加一个指针,类似链表的感觉。

struct stu
{char name[20];char telephone[15];int age;....struct stu* next;
}

于是我们可以得到一个结论:

管理事物总是先描述,再组织

那么我们对于管理硬件同样的道理。
先描述再组织在这里插入图片描述
操作系统即是硬件的管理者,并不是直接对硬件进行管理,而是对硬件的链表进行增删查改


再来看一下完整的操作系统示意图:
在这里插入图片描述
我们管理硬件的目的是为了给用户提供好的体验,但是,用户可以直接对操作系统中的各种硬件数据进行修改吗?

答案是否定的,因为你可能改成不符合规定的数据最终造成崩溃,所以不能直接访问。
但是用户要如何使用操作系统呢?
操作系统给我们提供了一系列的系统调用接口在这里插入图片描述
我们也就可以进行一系列的操作了,但是这个是建立在对操作系统有一定理解的程序员才可以很好的使用,不了解的寸步难行,针对这种情况,于是又进行一层封装在这里插入图片描述
让我们更方便的进行使用。我们也经常在使用这些被封装过的接口,也就是各种各样的库。

系统调用和库函数概念

  • 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
  • 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

注意:
有了库,就算在不同的操作系统下编写代码,由于封装的库是一样的,比如我们在linux下printf,在windows下也是printf(即是他们的系统调用接口不同),于是就有了跨平台性!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎样通过IT服务台来增强IT项目管理?

当下,越来越多的企业和组织重视IT项目管理的重要性。而如何通过IT服务台来增强和提升IT项目管理效率,成为了许多企业领导和IT专业人员共同关注的话题。如何充分利用IT服务台,以促进IT项目管理水平的提升和项目成功率的增加变得至关重要。 1…

怎么免费下载无水印视频素材?赶快收藏这六个网站。

今天来教大家怎么下载无水印视频素材,其中一些是免费的,并且可以在商业项目中使用,这些网站都是无水印视频素材,可以放心使用。 蛙学网: 网站的内容非常丰富多彩,包括风景,夜景,食物…

论文阅读:Editing Large Language Models: Problems, Methods, and Opportunities

Editing Large Language Models: Problems, Methods, and Opportunities 论文链接 代码链接 摘要 由于大语言模型(LLM)中可能存在一些过时的、不适当的和错误的信息,所以有必要纠正模型中的相关信息。如何高效地修改模型中的相关信息而不影…

java学习(Arrays类和System类)

目录 目录 一.Arrays类 二.System常见方法 三、Biglnteger和BigDecimal(高精度) 1.Biglnter的常用方法 2.BigDecimal常见方法 3.日期类 1)第一代日期类 2)第二代日期类 3)第三代日期类 一.Arrays类 Arrays包含了一系 列静态方法&am…

11、Linux-安装和配置Redis

目录 第一步,传输文件和解压 第二步,安装gcc编译器 第三步,编译Redis 第四步,安装Redis服务 第五步,配置Redis ①开启后台启动 ②关闭保护模式(关闭之后才可以远程连接Redis) ③设置远程…

12双体系Java学习之局部变量和作用域

局部变量 局部变量的作用域 参数变量

在 Python 中从键盘读取用户输入

文章目录 如何在 Python 中从键盘读取用户输入input 函数使用input读取键盘输入使用input读取特定类型的数据处理错误从用户输入中读取多个值 getpass 模块使用 PyInputPlus 自动执行用户输入评估总结 如何在 Python 中从键盘读取用户输入 原文《How to Read User Input From t…

AI写真变现项目丨超级训练营SOP手册

出品方: 吴东子团队 x AI破局俱乐部 以下只是该SOP手册的部分介绍,AI写真变现项目上手到变现全流程,需要完整手册的可以dd我。 AI写真 首先什么是AI写真,顾名思义的话可以说成是用AI生成写真照,我们先暂且这么理解&am…

Java详解:单列 | 双列集合 | Collections类

○ 前言: 在开发实践中,我们需要一些能够动态增长长度的容器来保存我们的数据,java中为了解决数据存储单一的情况,java中就提供了不同结构的集合类,可以让我们根据不同的场景进行数据存储的选择,如Java中提…

【java数据结构】HashMap和HashSet

目录 一.认识哈希表: 1.1什么是哈希表? 1.2哈希表的表示: 1.3常见哈希函数: 二.认识HashMap和HashSet: 2.1关于Map.Entry的说明:,> 2.2Map常用方法说明: 2.3HashMap的使用案例: 2.4Set常见方法…

K 个一组翻转链表

题目: struct ListNode{int val;ListNode* next;ListNode(): val(0), next(nullptr) {}ListNode(int _val): val(_val), next(nullptr) {}ListNode(int _val, ListNode* _next): val(_val), next(_next) {} };class Solution { public:ListNode* reverseKGroup(Li…

555经典电路

1、555介绍: 555 定时器是一种模拟和数字功能相结合的中规模集成器件。一般用双极性工艺制作的称为 555,用 CMOS 工艺制作的称为 7555,除单定时器外,还有对应的双定时器 556/7556。555 定时器的电源电压范围宽,可在 4…

如何在Linux使用docker安装Plik并实现无公网ip上传下载内网存储的文件资源

文章目录 1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默&…

屏蔽百度热搜榜

步骤: 打开谷歌应用商店:https://chrome.google.com/webstore/category/extensions?hlzh-CN 安装Adblock Plus插件 然后,哪里不爽点哪里(N多次重复点)! 世界清净了!

机器学习--循环神经网络(RNN)3

本篇文章结合具体的例子来介绍一下LSTM运算方式以及原理。请结合上篇文章的介绍食用。 一、具体例子 如上图所示,网络里面只有一个 LSTM 的单元,输入都是三维的向量,输出都是一维的输出。 这三维的向量跟输出还有记忆元的关系是这样的。 假设…

深度学习:如何面对隐私和安全方面的挑战

深度学习技术的广泛应用推动了人工智能的快速发展,但同时也引发了关于隐私和安全的深层次担忧。如何在保护用户隐私的同时实现高效的模型训练和推理,是深度学习领域亟待解决的问题。差分隐私、联邦学习等技术的出现,为这一挑战提供了可能的解…

k8s-生产级的k8s高可用(2) 25

部署containerd k8s2、k8s3、k8s4在配置前需要重置节点(reset)在上一章已完成 禁用所有节点docker和cri-docker服务 所有节点清除iptables规则 重置后全部节点重启 由于之前部署过docker,因此containerd默认已安装 修改配置 启动containe…

嵌入式工资为啥比纯软工资低那么多?

嵌入式工资为啥比纯软工资低那么多? 在开始前我分享下我的经历,我刚入行时遇到一个好公司和师父,给了我机会,一年时间从3k薪资涨到18k的, 我师父给了一些 电气工程师学习方法和资料,让我不断提升自己&…

爬虫技术之正则提取静态页面数据

第一天 简单示例 在爬虫过程中,我们获取到了页面之后,通常需要做的就是解析数据,将数据持久化到数据库为我所用。如何又快又准确得提取有效数据?这是一门技术,看了我的博客之前可能略有难度,但各位大师看…