关于冯诺依曼体系结构 和 操作系统(Operator System)的概念讲解(冯诺依曼体系结构,操作系统的作用等)

目录

一、冯诺依曼体系结构

二、操作系统

1. 概念

2. 设计操作系统的目的

3.系统调用和库函数概念

4.总结

三、完结撒❀

 


一、冯诺依曼体系结构

我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。

截至目前,我们所认识的计算机,都是由一个个的硬件组件组成

输入设备:包括键盘, 鼠标,扫描仪, 写板等

中央处理器(CPU):含有运算器和控制器等

输出设备:显示器,打印机等

数据主要是在计算机结构中进行流动的,流动过程中进行数据的加工处理,而数据从一个设备到另一个设备本质上是一种拷贝

我们来谈谈存储器,我们为什么要有存储器呢?

按照上面所说,既然数据在内存中流动本质上是一种拷贝,那么设备间拷贝的效率即决定了计算机中整体的效率,可能有人会感到疑惑,既然如此那么直接从输入设备经过中央处理器(CPU)的运算到输出设备输出,这样减少了拷贝次数其效率不是应该更快吗?

实际并非如此,因为CUP的运算速度过快,而输入设备和输出设备进行数据处理的速度根本赶不上CUP的速度,这导致在处理一段数据的过程中CUP大部分时间并不是在处理数据,而是在等待数据的传输,这导致数据的处理效率由输入输出设备的效率所决定。

所以为了提高计算机的整体效率,我们加入了存储器,下图为存储金字塔模型图:

越靠上越接近CUP,处理数据的效率越快,造价也越昂贵。

加入了存储器我们就可以让输入设备提前往存储器中进行数据的输入储存供CUP处理,而输出设备也会接连不断的处理数据,大大提高了运行效率。

关于冯诺依曼,必须强调几点:

这里的存储器指的是内存

不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)

外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。

一句话,所有设备都只能直接和内存打交道。

对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上。
请解释下面问题:
从你登录上 qq 打开窗口给他发消息开始,到他收到消息之后的数据流动过程。如果是在qq上发送文件呢?

假设发送一个“你好”的消息数据流动过程如下:

网络并不是这里讲的重点,这里就不过多进行阐述。

二、操作系统

上面所谈的冯诺依曼体系为硬件方面的知识,操作系统属于软件方面的知识,之所以先讲一下硬件方面的知识是因为操作系统设计的目的之一是进行软硬件交互,管理所有的软硬件资源的一款软件

1. 概念

在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件

任何计算机系统都包含一个基本的程序集合,称为操作系统 (OS) 。笼统的理解,操作系统包括:
● 内核(进程管理,内存管理,文件管理,驱动管理)
● 其他程序(例如函数库, shell 程序等等)

2. 设计操作系统的目的

● 与硬件交互,管理所有的软硬件资源
● 为用户程序(应用程序,各种文件夹)提供一个良好(稳定,安全,高效)的执行环境

那么操作系统是如何对硬件进行交互的呢?

正如上图所示,操作系统与底层硬件之间还夹有一层驱动程序,该驱动程序是由生产厂商进行配置的,其目的就是实现操作系统与硬件之间的交互,并且每一个硬件都有对应的一个驱动程序,那么操作系统又是如何管理这么多驱动程序的呢?
在操作系统中一般是定义结构体,先对每一个驱动程序进行描述(类型,厂商,状态等等),再使用链表进行连接,那么对每一个硬件驱动的管理就变成了对每一个链表的增删查改操作。

所以,对于C++这种面向对象的开发模式,对于其对象的管控精髓就是:先描述,再组织

操作系统在管理好底层硬件的同时,也要向上层提供良好(稳定,高效,安全)的运行环境

用户是不能直接对底层硬件或者驱动程序进行操作的,必须通过操作系统进行访问,但是对于操作系统中的数据,用户是不能直接进行访问的,所以操作系统对于用户提供了许多系统调用接口,所以作为用户,我们都是要调用操作系统所设置的系统调用接口通过操作系统进行对外设的操作。

而这些设置的系统调用接口一般都会封装在函数库当中,比如:C,C++标准库,在C语言中我们平常所用的printf或者scanf函数,是来自stdio.h头文件当中,一个是向显示器上打印数据(外设),另一个是向显示器上输入数据,两个都对外设进行了使用,所以用户直接调用函数库中的函数接口,就可以完成对外设的访问。

3.系统调用和库函数概念

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

4.总结

操作系统管理硬件
1. 先描述,用 struct 结构体
2. 再组织,用链表或其他高效的数据结构

三、完结撒❀

如果以上内容对你有帮助不妨点赞支持一下,以后还会分享更多编程知识,我们一起进步。
最后我想讲的是,据说点赞的都能找到漂亮女朋友❤

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

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

相关文章

工业光源环形系列一平面无影光源特点

产品特点 ◆LED灯珠均匀排布经过漫射板特殊角度反射达到漫射效果: ◆光源均匀性高,漫射效果好。

Navicat for MySQL Mac:数据库管理与开发的理想工具

Navicat for MySQL Mac是一款功能强大的数据库管理与开发工具,专为Mac用户设计,旨在提供高效、便捷的数据库操作体验。 它支持创建、管理和维护MySQL和MariaDB数据库,通过直观的图形界面,用户可以轻松进行数据库连接、查询、编辑和…

20240507最新 ubuntu20.04安装ros noetic

ubuntu20.04安装ros 主要参考博客 【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程_ubuntu20.04安装ros-CSDN博客 出现问题 1.ubuntu20.04 更换清华源报错 ubuntu20.04 更换清华源报错_gvfs metadata is not supported. fallback to teplme-CSDN博客 ?&#xff1f…

基于Java.Web框架React、Vue.js技术开发的一套(C#医院体检系统成品源码、支持二开)

医院体检系统是一种专为体检中心/医院体检科等体检机构开发的全流程管理系统。该系统通过软件实现检测仪器数据的自动提取,内置多级医生工作台,细化工作并将体检检查结果汇总,生成体检报告登记到计算机系统中。此外,该系统还能进行…

Spring与AI结合-spring boot3整合AI组件

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 目录 写在前面 spring ai简介 单独整合al接口 整合Spring AI组件 起步条件 ​编辑 进行必要配置 写在最后 写在前面 本文介绍了springboot开发后端服务中,AI组件(Spring A…

Project Virtual Painter

先上实验效果: 画笔实验结果 实现画笔操作,提取颜色目标,绘制轮廓,显示画笔三步骤。 1、提取颜色目标 要实现画笔操作,首先要提取颜色目标,也就是画笔,我们需要得到int hmin , smin, vmin&…

cmake进阶:变量的作用域说明三(从函数作用域方面)

一. 简介 前一篇文章从函数作用域方面学习了 变量的作用域。文章如下: cmake进阶:变量的作用域说明一(从函数作用域方面)-CSDN博客cmake进阶:变量的作用域说明二(从函数作用域方面)-CSDN博客…

VTK —— 三、简单操作 - 示例3 - 将点投影到平面上(附完整源码)

代码效果 本代码编译运行均在如下链接文章生成的库执行成功,若无VTK库则请先参考如下链接编译vtk源码: VTK —— 一、Windows10下编译VTK源码,并用Vs2017代码测试(附编译流程、附编译好的库、vtk测试源码) 教程描述 本…

leetcode-没有重复项的全排列-97

题目要求 思路 1.递归,如果num和n的元素个数一样就可以插入res中了,这个作为递归的结束条件 2.因为这个题是属于排列,并非组合,两者的区别是排列需要把之前插入的元素在回退会去,而组合不需要,因此会存在一…

【操作指南】银河麒麟高级服务器操作系统内核升级——基于4.19.90-17升级

1. 升级清单 升级包及依赖包清单如下。 kernel ARM架构 kernel-core-4.19.90-23.18.v2101.ky10.aarch64.rpm kernel-modules-4.19.90-23.18.v2101.ky10.aarch64.rpm kernel-4.19.90-23.18.v2101.ky10.aarch64.rpm kernel-modules-extra-4.19.90-23.18.v2101.ky10.aarch64.r…

【docker】常用的把springboot打包为docker镜像的maven插件

Spring Boot Maven Plugin: Spring Boot 自带的 Maven 插件 (spring-boot-maven-plugin) 支持直接生成 Docker 镜像。通过配置,可以在 Maven 构建过程中自动构建 Docker 镜像,而无需单独编写 Dockerfile。这种方法简化了将应用打包为 Docker 镜像的过程。…

设备树与/sys/bus/platform/devices与/sys/devices目录关系

设备树与sys/bus/platform/devices sysfs文件系统中/sys/bus/platform/devices下的设备是由设备树生成, 根节点下有compatible的子节点都会在/bus/platform/devices生成节点 总线 I2C、SPI 等控制器会在/bus/platform/devices生成节点 总线 I2C、SPI 节点下的子节点…