介绍冯诺依曼体系结构和操作系统

news2024/12/23 15:34:29

🌈个人主页:Yui_
🌈Linux专栏:Linux
🌈C语言笔记专栏:C语言笔记
🌈数据结构专栏:数据结构
🌈C++专栏:C++

文章目录

  • 1. 冯诺依曼体系结构
  • 2. 操作系统(Operator System)
    • 2.1 如何理解管理
    • 2.2 为什么要有操作系统

1. 冯诺依曼体系结构

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

冯诺依曼体系结构

截止目前,我们所认识的计算机,都是由一个个的硬件组成的。各个硬件相互独立存在。

  • CPU:运算器&&控制器
  • 输入设备:话筒,摄像头,键盘,鼠标,磁盘,网卡等
  • 输出设备:声卡,显卡,磁盘,显示器,打印机等
    根据冯诺依曼体系,必须要强调的几点:
  • 这里的存储器指的是内存,具有掉电易失的特点
  • 不考虑缓存的情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  • 外设(输入或输出设备)要在输入或者输出数据,也只能写入内存或者从内存读取。
  • 所有设备都只能直接和内存打交道。
    考虑到设备中的数据流动,设备间是连接的,通过总线将彼此独立的个体连接,可能有人会说现在电脑中那来那么多线啊,现在的总线都集成在主板中当然就不容易发现,但它们是存在的,本质也是为了让设备间进行数据的来回拷贝。

提问为什么体系结构中要存在内存,直接简化为输入->CPU->输出不是更好吗?
回答:

  1. CPU的处理速度是非常快的,而直接输入数据的速度取决你输入的速度,不可能比CPU的处理速度的,根据"木桶效应"(一只水桶能盛多少水,并不取决于最长的那块木板,而是取决于最短的那块木板。也可称为短板效应。一个水桶无论有多高,它盛水的高度取决于其中最低的那块木板。),输入数据的速度严重拖累的CPU,为了充分发挥CPU的性能,计算机在存储内有一个金字塔的结构:
    计算机存储金字塔:越往下读取速度越慢,价格越便宜。
    计算机存储金字塔

因为存储金字塔的缘故,可以同时处理多条信息,将需要先处理的信息的给CPU处理,其他信息存储在CPU的下级芯片内,等待处理。如此一来处理速度就变快了。
冯诺依曼体系结构

  1. 为了让计算机的价格降下来,因为CPU的存储又小又贵,如果内存也用CPU来处理,计算机的价格将变得十分高昂。体系结构存在内存,计算机整体的效率就变成了以内存的访问效率为主。内存的引入把效率问题,转化为了软件问题,它可以让我们的计算机效率还不错,且较便宜,我们才能买的起电脑。
    对冯诺依曼得理解,不能停留在概念上,要深入到软件数据流理解上
    问题:解释你在qq上和朋友聊天过程中,开始你发信息到对面接受到信息时数据得流动过程。
    回答:数据从输出设备(键盘)经过内存到输出设备(网卡)发送到对方设备由输入设备(网卡)接受经过内存到输出设备(显示屏)。

2. 操作系统(Operator System)

概念
任何一台计算机系统都包含一个基本的程序集合,被称为操作系统(Operator System),笼统的理解,操作系统包括:

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

操作系统是一个进行着软硬件资源管理的软件。

设计OS的目的

  1. 与硬件交互,管理所有的软硬件资源。
  2. 为用户程序(应用程序)提供一个良好的执行环境。

定位

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

2.1 如何理解管理

操作系统是一个进行着软硬件资源管理的软件。如何理解管理呢?
管理就是做决策和做执行
以校园背景为例:

校长 — 管理者
辅导员 — 保证决策落地
学生 — 被管理者

管理者和被管理者,并不需要见面。
学生和校长也不需要见面。
管理一个人的本质不在于对人做管理,而在于对人的信息(数据)做管理,管理者的核心工作是做决策,根据数据做决策。
就像校长想要开除一个学生,先要根据学生的挂科情况来选择开除谁,也就是根据学生的挂科信息来做决策,如果校长突然想要派一名同学参加程序设计大赛,也需要根据同学的学习成绩来做决策。

管理者在面对大量的被管理者的时候,数据量必然非常大,对人的管理实质是对数据的管理。
那么当数据量大的时候,校长要在怎么管理呢?
因为实质是对信息的管理,为此要先描述,再组织
对学生,我们要知道,学生的姓名、年级、基本信息、成绩信息、表现数据等等,这就是描述过程。

struct student
{
	char name[10];
	int age;
	char level;
	char number[20];
	int height;
	//...
};

这样校长的决策工作就变成了对链表的增删查改,对学生的管理工作也变成了对链表的增删查改。这就是管理的建模过程。

面向对象的语言也是如此。
先描述的过程:就是面向对象的过程 —— class 、struct ;再组织的过程:数据结构 —— STL,如vector、list、stack、map等。
以后只要是进行管理,都要做以下两件事:先描述(class、struct)、再组织(STL容器,数据结构) -》将具体问题,进行计算机级别的建模过程,转换为计算机能够认识的问题。
- 数据结构的本质是对数据进行管理。

2.2 为什么要有操作系统

为了对软硬件进行更好的管理(手段)
对用户提供一个稳定、高效、安全的运行环境(目的)。
操作系统

系统调用和库函数概念

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

在还没有学习进程前,操作系统是怎么管理进行进行进程管理的呢?当然也是先把进程描述起来,再把进程组织起来。

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

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

相关文章

【数据结构取经之路】位图全解

目录 前言 C标准库里的位图 位图的设计及实现 位图几个关键接口的实现 set() reset() test() 完整代码 位图的使用场景 位图的优缺点 位图的使用演示 —— 几道面试题的讲解 前言 位图(Bitmap)是一种非常高效的数据结构,主要用于处…

Claude Enterprise:Anthropic 推出企业级AI助手挑战OpenAI

Anthropic公司推出了Claude Enterprise,这是一项新的企业级AI服务,旨在提供更安全、更可控的AI聊天机器人体验。通过这个服务,企业可以将内部知识库与Claude机器人连接,使其能够访问和分析公司数据,从而回答员工的查询…

【MySQL】MySQL Workbench下载安装、环境变量配置、基本MySQL语句、新建Connection

1.MySQL Workbench 下载安装: 进入网址:MySQL :: MySQL Workbench Manual :: 2 Installation (1)点击“MySQL Workbench on Windows”(下载Windows版本)(2)点击“Installing” &…

前端Vue框架,本地数据库nedb

封装 db.js(文章nedb版本^1.8.0) // db.js// 导入 NeDB 模块 const Datastore require(nedb)// 创建数据库实例,最大600M或100W行 const db new Datastore({ filename: ./database.db, autoload: true, inMemoryOnly: false, maxFileSize: 600 * 1024…

如何将 Redshift Cryptomatte AOV 与 teamrender 结合使用,成都渲染101云渲染

这篇文章将讨论在 Cinema 4D 中将 cryptomatte AOV 与 teamrender 结合使用时常见的问题和解决方案。在 Cinema 4D 中使用 AOV 时,用户希望它们的工作方式与其他 AOV 完全相同。但事实并非如此,尤其是与 teamrender 结合使用时。 在 Cinema 4D 中&#x…

【JAVA高级】并发同步工具CyclicBarrier 的使用介绍

📝个人主页🌹:个人主页 ⏩收录专栏⏪:JAVA进阶 🌹🌹期待您的关注 🌹🌹,让我们共同进步! 文章目录 CyclicBarrier 简介CyclicBarrier 的场景示意图&#xff1…

AI绘画时代的自媒体引流攻略:如何实现粉丝暴涨与盈利

一、AI绘画在自媒体引流和赚钱中的应用 创作独特视觉内容,吸引粉丝关注 AI绘画技术可以帮助自媒体从业者创作出独一无二的视觉内容,这些内容在社交媒体上具有很高的辨识度和吸引力。通过以下方式,AI绘画助力引流和赚钱: &#xf…

软件厂商与集成平台协同--打造无缝企业解决方案

引言 在现在的众多项目当中,很多企业面临着日益复杂的业务需求和不断变化的市场环境。为了保持竞争力,企业会选择采用高效的工具和系统来管理和运营。CRM(客户关系管理)软件和ERP(企业资源规划)系统是企业…

PMF源解析软件下载、安装、运行;Fpeak模式运行结果优化及误差评估;大气颗粒物理化性质等基础知识和通过PMF方法对其来源解析

目录 专题一 PMF源解析技术简要及其输入文件准备 专题二 PMF源解析技术的原理,PMF软件的实操及应用举例 专题三 PMF源解析结果的优化及误差评估 更多应用 颗粒物污染不仅对气候和环境有重要影响,而且对人体健康有严重损害,尤其在一些重污…

计算机毕设选题推荐-基于python的校园班级课程表管理系统

💖🔥作者主页:毕设木哥 精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻 实战项目 文章目录 实战项目 一、基于python的校园班级课程表…

【C++】简述STL——string类的使用

文章目录 一、STL的简述1.STL的框架2.STL版本 二、string1、string的介绍2、为什么string类要实现为模板? 三、string的构造接口四、string的容量相关的接口五、string对象修改相关的接口1、insert2.earse3、assign4、replace 六、string对象字符串运算相关接口1、c…

【Linux】《Linux 常见指令全攻略》

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

JavaScript 知识:this、apply/call/bind、Promise、async/await、HTTP 库 Axios

1、变量、声明、传递 (值、引用) javascript:void(0) 含义 javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。void() 仅仅是代表不返回任何值,但是括号内的表…

【C++ 第二十章】智能指针

1.为什么需要智能指针&#xff1f; 下面我们先分析一下下面这段程序有没有什么内存方面的问题&#xff1f;提示一下&#xff1a;注意分析下面 Func 函数中的问题。 #include<exception> int div() {int a, b;cin >> a >> b;if (b 0)throw invalid_argume…

【Python基础】这篇文章带你了解Python的基本特点,让学习Python变得事半功倍!!!

一、Python的基本特点 简单易学&#xff1a;Python语法简洁清晰&#xff0c;拥有极其简单的说明文档&#xff0c;对于初学者来说非常友好。面向对象&#xff1a;Python既支持面向过程的编程也支持面向对象的编程&#xff0c;这使得Python能够灵活地应对各种编程需求。可移植性…

投放Facebook广告开户全流程解析:从开户到广告投放的实用指南

Facebook作为全球最大的社交平台之一&#xff0c;广告业务覆盖范围广泛&#xff0c;已成为各类企业推广产品和服务的重要渠道。要在Facebook上成功投放广告&#xff0c;首先需要完成广告账户的开户流程。本文将详细介绍投放Facebook广告开户的步骤和条件&#xff0c;并解释如何…

VBA Excel 出报表

源数据 目标 PS:调休 以高亮颜色区分 整理一下 CMDBUT命令 VBA代码 Private Sub CommandButton1_Click() Dim ps As Integer Dim pe As Integer Dim srcs As Integer Dim srce As Integer Dim i As Integer Dim j As Integer Dim m As Integer Dim pname As Variant Dim pn…

力扣刷题--442. 数组中重复的数据【中等】

题目描述 给你一个长度为 n 的整数数组 nums &#xff0c;其中 nums 的所有整数都在范围 [1, n] 内&#xff0c;且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数&#xff0c;并以数组形式返回。 你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间&am…

【深度学习】线性回归的从零开始实现与简洁实现

前言 我原本后面打算用李沐老师那本《动手学深度学习》继续“抄书”&#xff0c;他们团队也免费提供了电子版(https://zh-v2.d2l.ai/d2l-zh-pytorch.pdf)。但书里涉及到代码&#xff0c;一方面展示起来不太方便&#xff0c;另一方面我自己也有很多地方看不太懂。 这让我开始思…

栈和队列的习题详解(2):用队列实现栈

前言&#xff1a; 小编在上一篇博客写了栈和队列其中一个习题&#xff0c;为了体现出题目的重要性所以我把每个题目都分开写了&#xff0c;下面废话不多说&#xff0c;开启我们今天的做题之旅~ 目录 1.用队列实现栈 1.1.题目介绍 1.2.做题方法介绍 1.3.栈功能的实现 1.3.1.…