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

news2024/7/4 5:21:53

目录

一.冯诺依曼体系结构

存储分级

为什么程序运行之前,必须加载到内存上?

二.操作系统

操作系统是什么?

为什么需要操作系统?

操作系统是如何管理软硬件资源?


一.冯诺依曼体系结构

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

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

输入单元 :包括键盘 , 鼠标,usb,磁盘/ssd,网卡
存储器 :存储器起始就是 内存
中央处理器(CPU) :含有运算器和控制器等
输出单元 :显示器,打印机,网卡,显卡等

内存与磁盘的区别:

内存和磁盘是计算机中的主要存储部件

内存是利用电效益实现的

一旦电脑断电,内存存储的数据会全部丢失

磁盘(永久存储介质)是外设,可以永久存储数据。

内存的特点:处理数据速度非常快,造价高

磁盘的特点:相对于内存处理数据的速度较慢,造假低

注:计算机中几乎所有设备都有存储数据的功能,只是存储能力有大有小。

处理数据的速度:CPU>内存>各种外设(磁盘)

存储分级

从图中我们可以看出:

以cpu为中心,距离CPU越近,存储效率越高,造价越高。距离CPU越远,存储效率越低。造价越低

为什么采用存储分级?

如果全部都采用高价的存储介质,速度快但太贵,

如果全部采用低价的存储介质,便宜但速度太慢

因此,为了使造价相对较低,速度较快,采用了内存分级:

在数据层面上CPU一般不和外设直接交互(防止出现木桶效应,导致整机效率太低),CPU优先与内存进行数据交换,再进行处理。因此再在硬件上内存也可以看出成一个巨大的缓存。

因此基于冯诺依曼体系结构的计算机,本质:就是用比较少的钱,造出效率不差的计算机(性价比较高)

为什么程序运行之前,必须加载到内存上?

程序=代码+数据,最终都要CPU来执行,要想处理这些,CPU要先读取这些代码和数据,CPU和内存有“数据(二进制层面)”层面的交互,形成一个exe的可执行文件,而文件只能存储在磁盘(外设)中保存。而现代计算机大多数都是采用的冯诺依曼结构,CPU与内存进行数据交互,因此需先把exe文件(要执行的程序)里的东西,加载到内存上,才可以运行。

二.操作系统

操作系统是什么?

是一款软件,进行软硬件资源管理的软件。

是计算机开机后,第一个加载的软件

为什么需要操作系统?

我们知道,世界上第一台计算机埃尼阿克,他是没有操作系统的,他需要专业的人员手动的进行各种操作且很容易出错,同时具有的功能也很少。因此为了方便使用人员,大佬们专门写了一块软件来进行,让我们可以通过一些简单的指令或动作,告诉操作系统,让它代替我们对硬件进行一系列的操作。

简单来说:

操作系统可以代替我们对软硬件进行资源管理(手段),给用户提供良好(易用,稳定,安全,高效)的使用环境(目的)

操作系统是如何管理软硬件资源?

计算机的层状结构:

 举一个例子(校园管理)

在你来到入学时,记录你各种信息的档案会到学校里,然后你在学校这四年的学习与其他情况都会记录在你的档案里,在这期间,学校会根据你的档案里记录的信息对你进行管理,为了方便管理,可以定义一个student结构体记录信息

struct student
{
    int age;
    int grade;
    string name;
    ....
}

为了方便保存,查找等,学校将student以链表的方式链接在一起

struct student
{
    struct student* next;
    int age;
    int grade;
    string name;
    ....
}

从此学校对于学生的管理就变成了对结构体链表的管理,我们可以通过访问结构体的信息,来对链表进行增删查改(对学生进行扩招,开除)。

管理的本质不是管人,而是管理数据。

对学生的管理,就是我们计算机管理的建模过程。

我们可以总结对事务的管理:

先描述,再组织

操作系统管理核心有:


1.进程管理

2.内存管理

3.文件/IO管理

4.驱动管理

这些管理都遵循:先描述,再组织。

再看计算机的层状结构

对于下三层,我们知道操作系统通过先描述,再组织,将底层的硬件管理好。我们知道,操作系统给用户提供了良好的使用环境,那么用户是谁呢,又如何提供良好的环境呢?

广义上:用户包括所有使用计算机的人,

狭义上:用户是开发者(这里我们用户默认为开发者)。

在技术层面上,操作系统是可以实现,用户直接使用操作系统提供的各种功能的,但是因为不能确保群众中有没有坏人,因此操作系统是不完全信任用户的,用户不能直接使用操作系统,但是操作系统由不得不为用户提供服务。

因此,为了确保安全,操作系统会把各个功能,封装成一个一个的系统调用函数,用户只能通过系统调用函数,来获取操作系统的数据,因为系统调用函数是操作系统实现的,因此用户只能获得有限的数据,有效的防止群众中的坏人进行破坏。

一般用户想访问操作系统数据或者硬件,必须通过系统调用。

由于系统调用函数使用起来比较麻烦

站在用户的角度,创造了外壳程序(shell,图形化界面),让用户使用一些简单的指令就可以调用系统调用函数。

站在开发者的角度,是可以直接调用系统接口的,但是为了一些小白考虑,将一些系统接口封装成了各种各样的函数,打包形成库,方便了所有开发者使用,不用自己去写,而是直接调用库函数,提高了开发效率,降低开发成本。

库函数于系统调用函数是什么关系?

上下层(库函数里面封装了系统调用函数)。

因此:

广义上的操作系统:包括操作系统,shell(外壳程序),语言库,系统调用

狭义的操作系统:操作系统(以为就是我们平时所说的Linux内核)

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

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

相关文章

Qt 容器QGroupBox带有标题的组框框架

控件简介 QGroupBox 小部件提供一个带有标题的组框框架。一般与一组或者是同类型的部件一起使用。教你会用,怎么用的强大就靠你了靓仔、靓妹。 用法示例 例 qgroupbox,组框示例(难度:简单),使用 3 个 QRadioButton 单选框按钮,与QVBoxLayout(垂直布局)来展示组框的…

BearPi Std 板从入门到放弃 - 先天神魂篇(2)(RT-Thread LED PWM驱动)

简介 基于 BearPi Std 板从入门到放弃 - 先天神魂篇(1)(RT-Thread 指令点亮LED) 创建的项目, 添加PWM驱动LED的方式实现呼吸灯功能, 电路板及相关使用到的配件说明 开发板 : Bearpi Std(小熊派标准板) 主芯片: STM32L431RCT6 E53_ST1扩展板/…

【acwing】92. 递归实现指数型枚举

穿越隧道 递归枚举、位运算 方法① 从1到n&#xff0c;顺序访问每位数&#xff0c;是否选择&#xff0c;每位数有两种状态&#xff0c;选1或不选0. AC代码如下&#xff1a; #include <iostream> using namespace std;const int N 100; // bool st[N]; int n;void dfs(in…

智能优化算法应用:基于指数分布算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于指数分布算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于指数分布算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.指数分布算法4.实验参数设定5.算法结果6.参考…

优雅玩转实验室服务器(一)登录服务器

这篇文章更加偏向于使用python程序进行研究的朋友们 原料 Windows主机实验室Linux服务器&#xff08;可以访问互联网&#xff09;一点点耐心 step.0 windows terminal is all you need 别跟我说什么putty&#xff0c;什么winscp&#xff0c;我就是单推Win11自带的软件——win…

DNS漫游指南:从网址到IP的奇妙之旅

当用户在浏览器中输入特定网站时发生的整个端到端过程可以参考下图 1*4vb-NMUuYTzYBYUFSuSKLw.png 问题&#xff1a; 什么是 DNS&#xff1f; 答案 → DNS 指的是域名系统&#xff08;Domain Name System&#xff09;。DNS 是互联网的目录&#xff0c;将人类可读的域名&#…

佛山陶企再造行业新风口,开启中国陶瓷下半场

近年来&#xff0c;消费形态逐渐呈现年轻化、时尚化、数字化的趋势&#xff0c;新一地居住者对于居住环境的品质和舒适度要求日益提高。伴随着新消费势力的崛起&#xff0c;家居建材行业消费转型升级已成必然。“千年陶都”佛山作为我国陶瓷行业的风向标&#xff0c;率先推进技…

漏洞复现-云安宝-云匣子Fastjson命令执行(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

在做题中学习(32):只出现一次的数字 III

260. 只出现一次的数字 III - 力扣&#xff08;LeetCode&#xff09; 根据题目可知&#xff1a;有两个元素只出现一次&#xff0c;其余出现两次。 而在只出现一次的数字 I 里&#xff0c;只有一个元素出现一次&#xff0c;可以用异或的方式直接得到最后的答案&#xff0c;而此…

基于导数Zernike多项式拟合技术的干涉测量二维相位展开算法(原文翻译)

Zixin Zhao1&#xff0c;Hong Zhao1、Lu Zhang 1&#xff0c;Fen Gao2&#xff0c;Yuwei Qin3&#xff0c;Hubing Du 摘要: 我们提出了一种适用于一般干涉测量应用的相位展开方法。所提出的方法依赖于导数泽尼克多项式拟合&#xff08;DZPF&#xff09;技术&#xff0c;其中相…

Datawhale聪明办法学Python(task2Getting Started)

一、课程基本结构 课程开源地址&#xff1a;课程简介 - 聪明办法学 Python 第二版 章节结构&#xff1a; Chapter 0 安装 InstallationChapter 1 启航 Getting StartedChapter 2 数据类型和操作 Data Types and OperatorsChapter 3 变量与函数 Variables and FunctionsChapte…

马赛克,克星,真来了!v2.0

大家好&#xff0c;今天继续聊聊 AI 开源项目 AI 开源项目 1、DemoFusion AI 绘画的潜力还没有充分挖掘出来&#xff0c;仍然还有上升的空间。 DemoFusion 就是这么一个开源项目&#xff0c;继续深挖了 AI 绘画在高分辨率图片生成的效果。 提高分辨率&#xff0c;马赛克&a…

算法 - 二分搜索法 / 二分法(704)

原理&#xff1a; 利用数组的有序性&#xff0c;每次取查找范围的中间点&#xff0c;缩窄一半的查找空间。比较中间值和目标值的大小&#xff0c;直到找到目标值或者查找区间为空时返回。 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目&…

2023-12-05 Qt学习总结10

点击 <C 语言编程核心突破> 快速C语言入门 Qt学习总结 前言二十六 学生信息管理系统插入介绍: QTableView和QSqlTableModelQTableViewQSqlTableModel 程序所用数据库表格程序组成以及界面学生端源码:管理员端源码: 总结 前言 要解决问题: 学习qt最核心知识, 多一个都不…

在线原型设计网站有哪些?这7个超好用!

如今&#xff0c;在线软件逐渐成为主流&#xff0c;网站原型设计工具也不例外。与桌面相比&#xff0c;在线原型工具具有独特的优势。都不需要安装、限制位置或限制操作系统。以下将为您推荐 7 款非常实用的在线原型设计工具。看看有没有你会喜欢的呢。 1、即时设计 即时设计是…

sleep和wait区别,并且查看线程运行状态

一、sleep和wait区别 区别一&#xff1a;语法使用不同 wait 方法必须配合 synchronized 一起使用&#xff0c;不然在运行时就会抛出 IllegalMonitorStateException 的异常 而 sleep 可以单独使用&#xff0c;无需配合 synchronized 一起使用。 区别二&#xff1a;所属类不同…

【动态规划精选题目】1、斐波那契数列模型

此动态规划系列主要讲解大约10个系列【后续持续更新】 本篇讲解入门级&#xff1a;斐波那契模型&#xff0c;会在讲解题目同时给出AC代码 为什么叫斐波那契数列模型&#xff1f;因为本篇4道题的状态转移方程都跟斐波那契递推方程差不多&#xff0c;但这点不重要&#xff0c;请往…

Python 全栈体系【四阶】(四)

第四章 机器学习 一、人工智能概述 1. 什么是人工智能 人工智能&#xff08;Artificial Intelligence&#xff09;是计算机科学的一个分支学科&#xff0c;主要研究用计算机模拟人的思考方式和行为方式&#xff0c;从而在某些领域代替人进行工作。 2. 人工智能的学科体系 …

Unity-小工具-LookAt

Unity-小工具-LookAt &#x1f959;介绍 &#x1f959;介绍 &#x1f4a1;通过扩展方法调用 gameObject.LookAtTarget&#xff0c;让物体转向目标位置 &#x1f4a1;gameObject.StopLookat 停止更新 &#x1f4a1;可以在调用时传入自动停止标记&#xff0c;等转向目标位置后自…