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

news2024/11/27 23:41:46

目录

一、冯诺依曼体系结构

二、操作系统

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.coloradmin.cn/o/1659405.html

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

相关文章

酷开科技AI技术支持,酷开系统根据你的喜好量身定制节目

在当今数字化时代,个性化推荐已成为提升消费者体验的关键因素。酷开科技的智慧AI,为消费者提供了精彩的内容推荐服务,更大地丰富了消费者的娱乐生活。 酷开系统中的AI推荐引擎通过学习消费者的观看习惯和偏好,能够快速识别其兴趣…

idea java 后缀补全

ArrayList<$EXPR$> enters new ArrayList<>();for (int i 0; i < enters.size(); i) {$EXPR$ enter enters.get(i);enter$END$} 让编程效率翻倍的IDEA快捷键—自定义后缀补全_哔哩哔哩_bilibili

Navicat 干货 | 探索 PostgreSQL 中不同类型的约束

PostgreSQL 的一个重要特性之一是能够对数据实施各种约束&#xff0c;以确保数据完整性和可靠性。今天的文章中&#xff0c;我们将概述 PostgreSQL 的各种约束类型并结合免费的 "dvdrental" 示例数据库 中的例子探索他们的使用方法。 1. 检查约束&#xff1a; 检查…

winform图书销售管理系统+mysql

winform图书销售管理系统mysql数据库说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 功能模块&#xff1a; 管理员:ttt 123 登陆可以操作我的 个人信息 修改密码 用户信息 添加删除用户 图书 添加删除图书信息 购物车 购买订单信息 充值 退出账户 …

JavaScript中的深拷贝与浅拷贝详解

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 &#x1f4da; 引言❓什么是拷贝&#x1f31f; 浅拷贝&#xff1a;表面功夫浅拷贝常用方法1. 扩展运算符 (...)2. Object.assign()3. 手动遍历对象属性 &#x1f320; 深拷贝&#xff1a;彻底分离深拷贝常用方法1. Lodash 的…

windows 10安装 docker desktop

升级 windows 10 windows 10 升级到 20H2&#xff0c;如 20H2 19045.4291。 注意&#xff1a;需返回更新&#xff0c;重启计算机&#xff0c;确保更新完整。 bios 开启虚拟化 开启cpu虚拟化功能。 windows 启用功能 启用hyper-v 启用 wsl 安装 wsl https://learn.microso…

大模型背后的秘密公式: Q*?

这麽说好像我是James Bond后面那个厉害的Q先生&#xff0c;Q是英文Quartermaster&#xff08;軍需官&#xff09;第1個英文字大寫&#xff0c;是007系列英國祕勤局虛構部門Q部門的領導。 Stanford大学的研究者最近发表了一篇名为"From r to Q*: Your Language Model is S…

react18【系列实用教程】JSX (2024最新版)

为什么要用 JSX&#xff1f; JSX 给 HTML 赋予了 JS 的编程能力 JSX 的本质 JSX 是 JavaScript 的语法扩展&#xff0c;浏览器本身不能识别&#xff0c;需要通过解析工具&#xff08;如babel&#xff09;解析之后才能在浏览器中运行。 bable 官网可以查看解析过程 JSX 的语法 …

(动画详解)LeetCode225.用队列实现栈

. - 力扣&#xff08;LeetCode&#xff09; 题目描述 解题思路 这道题的思路就是使用两个队列来实现 入栈就是入队列 出栈就是将非空队列的前n-1个元素移动到新的队列中去 再将最后一个元素弹出 动画详解 代码实现 #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.…

Mock.js 问题记录

文章目录 Mock.js 问题记录1. 浮点数范围限制对小数不起效2. increment 全局共用 Mock.js 问题记录 最新写网页的时候引入了 Mock.js 来生成模拟数据&#xff1b; Mock使用起来很方便&#xff0c;具体可以参考 官网 很快就能上手&#xff0c; 但是这个项目最近一次提交还是在2…

Android 开机启动模式源码分析

在机器关机情况下&#xff0c;长按Power键启动机器&#xff0c;如果这时机器低电&#xff0c;会提示低电&#xff0c;机器不会正常启动&#xff1a; 而代码如下&#xff1a; 如果不是低电&#xff0c;正常情况是可以启动的。 在关机情况下&#xff0c;插入USB&#xff0c;机…

Spark云计算平台Databricks使用,上传文件

Databricks&#xff0c;是属于 Spark 的商业化公司&#xff0c;由美国加州大学伯克利 AMP 实验室的 Spark 大数据处理系统多位创始人联合创立。Databricks 致力于提供基于 Spark 的云服务&#xff0c;可用于数据集成&#xff0c;数据管道等任务。 创建workspace&#xff1a;Spa…

AUS GLOBAL 再次荣登皇家贝蒂斯俱乐部官网

AUS GLOBAL 作为一家备受信赖的金融服务领导者&#xff0c;一直以来都在致力于为客户提供卓越的交易体验和专业的服务。再次登上皇家贝蒂斯俱乐部官网Banner&#xff0c;不仅是对我们过去合作的肯定&#xff0c;更是对未来合作的信心和期待。这标志着我们之间的合作更加稳固和成…

雷森托尔环保科技有限公司见证2024杭州数字供应链装备展潮流

参展企业介绍 青岛雷森托尔环保科技有限公司创建于2018年&#xff0c;位于山东青岛&#xff0c;现注册资本3000万。公司主营生产模压木托盘、化工木托盘、大型设备木包装、出口木托盘、酒柜木酒架等&#xff0c;公司拥有技术人员6人&#xff0c;均为包装设计专业毕业&#xff0…

计算机科学类SSCI期刊,高效录用,检索稳定!

今天老毕给大家分享一本偏向系统理论实践方向SSCI&#xff0c;JCR2 区&#xff0c;中科院大类社会学 4区&#xff0c;2022年的影响因子为1.9&#xff0c;五年影响因子为2.5。编辑有好&#xff0c;响应迅速。 &#x1f4d8; 基本信息 &#x1f4d6; ISSN 2079-8954 &#x…

美国商务部公布数字孪生技术投资计划

文章目录 前言一、主要内容二、相关背景‍‍‍‍前言 5月6日,美国商务部公布了一项价值2.85亿美元的投资计划,这项名为《美国芯片制造研究竞标》(CHIPS Manufacturing USA Institute Competition)的投资计划旨在向符合条件的申请者进行征求招标,协调建立和运营美国芯片制…

springboot整合websocket,超简单入门

springBoot整合webSocket&#xff0c;超简单入门 webSocket简洁 WebSocket 是一种基于 TCP 协议的全双工通信协议&#xff0c;它允许客户端和服务器之间建立持久的、双向的通信连接。相比传统的 HTTP 请求 - 响应模式&#xff0c;WebSocket 提供了实时、低延迟的数据传输能力。…

【JavaEE】博客系统(前端页面设计)

文章目录 一、预期效果二、实现博客列表页 一、预期效果 二、实现博客列表页 实现导航栏 编辑 blog_list.html, 创建导航栏的 html 代码. 导航栏里面包含 logo, 标题, 以及一些按钮(跳转链接). 为了实现左右排列, 在 logo 和 按钮 之间加一个 spacer 作为占位器. <!-- 导航…

FPGA采集卡,可实现CVBS/HDMI/SDI三种信号转换

可实现CVBS/HDMI/SDI三种信号转换&#xff0c; 客户应用:电视台&#xff0c;舞台&#xff0c;会议室 主要性能: 1:标准CVBS信号输入,标准HDMI信号输入,标准SDI信号输入,输入信号自适应. 2:3G/HD/SDSDI信号输出可选 2:1080P/10801/720P/4801/5761常用分辩率可选 1080PSF/720P30/…

SSC369G 双4K高性价比AI IPC方案

一、方案描述 SSC369G 双4K高性价比AI IPC方案采用主芯片SSC369G&#xff0c;内核为CA55四核最高主频为1.5Ghz处理器。SOC内置集成一个64位的四核RISC处理器&#xff0c;先进的图像信号处理器&#xff08;ISP&#xff09;&#xff0c;高性能的H.265/H.264/MJPEG视频编解码器&a…