【Linux系统编程】第十六弹---冯诺依曼体系结构与操作系统

news2024/9/28 9:25:43

个人主页: 熬夜学编程的小林

💗系列专栏: 【C语言详解】 【数据结构详解】【C++详解】【Linux系统编程】

目录

1、冯诺依曼体系结构

2、操作系统原理

2.1、什么是操作系统?

2.2、用图解释操作系统

2.3、理解操作系统

总结


1、冯诺依曼体系结构

 冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。在冯诺依曼体系中,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。

 冯诺依曼体系结构是计算机科学中的一个基本理论,它提出了计算机制造的三个基本原则,即采用二进制逻辑程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。

此外,这种体系结构以运算器为中心,并且数字计算机的数制采用二进制。自1951年第一台电子计算机 EDVAC(离散变量自动电子计算机)开始,不论是最原始的还是最先进的计算机,使用的仍然是冯诺依曼最初设计的计算机体系结构。

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

输入设备:

键盘,鼠标,摄像头,话筒,硬盘,网卡...

输出设备:

显示器,声卡,硬盘,网卡...

CPU(中央处理器):

运算器,控制器。

存储器:

此处指的是内存。

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

★ 设备是互相链接的。

★ 数据要在计算机的体系结构中进行流动,流动过程中,进行数据的加工处理。

★ 数据从一个设备到另一个设备,本质是一种拷贝!!!因此数据设备间的拷贝的效率,决定了计算机整机的基本效率。

★ 这里的存储器指的是内存。
★ 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
★ 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
一句话,所有设备都只能直接和内存打交道

存储器金字塔如下:

结论: 

存储器距离CPU越近,效率越高,成本越高。

1. 为什么在输入与输出设备之间要加一个存储器(内存),而不是直接将输入设备,输出设备和CPU直接连接起来呢???

如果将输入设备,输出设备与CPU直接连接起来,CPU处理数据的速度确实很快,但是输入设备和输出设备相较于CPU处理数据的速度相差很大,根据木桶效应(强调了一个系统或组织的整体性能取决于其最弱的部分),计算机最终的效率还是取决于输入设备与输出设备

★ 这时候加上存储器(内存)的话,让输入设备给存储器拷贝数据,存储器给CPU拷贝数据,CPU对数据紧进行处理后,返回给存储器,然后存储器将数据拷贝到输出设备上。以前CPU是直接在外设上拷贝数据,现在变成了CPU直接从存储器上拷贝数据,而外设的拷贝只用作用到存储器就可以了。而存储器一次性可以存储大量的数据,再将大量的数据给CPU进行处理,大大提高了运行的效率。

★ 存储器有很多选择,用户可以根据自己的需求选择不同的存储器。

★ 根据存储金字塔可知,距离CPU越近的存储器越贵,那么为了让更多的用户能够用得起计算机,因此需要性价比较高的存储器。也只有让用户买得起,才会有更多的人购买,进一步推动计算机行业的发展。

结论:

在硬件数据流动角度,在数据层面:

1、CPU不和外设直接打交道,CPU只和存储器(内存)打交道;

2、外设(输入和输出设备)的数据,不是直接给CPU的,而是要先放入到内存中。

2. 程序运行,为什么要加载到内存?(冯诺依曼体系规定这么做的!!!)

程序=代码+数据,程序的“代码和数据”都要被CPU访问,CPU只会从内存中读取代码和数据。

3. 程序还没有加载到内存中的时候,在哪里?

在硬盘(外部设备),并且是二进制文件。

4. 你与朋友使用QQ聊天,整个消息流动过程是怎样的呢???

登录上QQ,就代表着QQ的 .exe 可执行程序被加载到内存当中了。

我们发的信息“你好!”,在输入设备上会直接拷贝到内存中 ------> 存储器将数据拷贝到CPU ----> CPU对数据进行加密运算 -----> 再返回到存储器中 ------> 拷贝到输出设备(网卡) ------> 通过网络传到你朋友的输入设备(网卡) -----> 拷贝到内存的可执行程序中 ------> 拷贝到CPU来进行解密运算 -------> 再拷贝到内存当中 -----> 拷贝到输出设备(显示器)上。

2、操作系统原理

2.1、什么是操作系统?

操作系统(英语:Operating System,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。简而言之,操作系统是进行软硬件资源管理的软件。

广义的认识:操作系统 == 操作系统的内核(进程管理,内存管理,文件管理,驱动管理) + 操作系统的外壳周边程序(给用户提供使用操作系统的方式,比如:图形化界面)

狭义的认识:只是操作系统的内核。

根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。

2.2、用图解释操作系统

1. 为什么要有操作系统?

手段:对下管理好软硬件资源。
目的:对上提供一个良好的运行环境-->(为用户提供稳定的、高效的、安全的 执行环境)

2. 为什么要操作系统与底层硬件之间要有驱动程序呢?

如果操作系统直接去管理硬件的话,比如:操作系统直接管理硬盘,那么当硬盘更换或更新时,操作系统不一定还能管理硬盘,此时只能修改操作系统了,好让操作系统能继续管理硬盘,这是非常不好的。

★ 所以有了驱动层程序的出现,也就是说每一个硬件都有属于自己的驱动程序,驱动层给操作系统提供一个接口,操作系统就通过接口来管理硬件了。那么当硬件变更的时候,只需要接上硬件匹配的驱动程序就可以了,不用在对操作系统做修改了。

注意:驱动程序大部分是由厂商来提供的。

2.3、理解操作系统

定义:

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

通过学校的实例来解释"管理":

校长管理的是谁,如何进行管理,管理的本质是什么???

★ 很显然,校长管理的是本校的学生老师以及学校相关人员。

★ 但是学校有很多人,校长不可能一一进行管理,只能对部分人进行管理,然后让这部分人去进一步的进行管理,例如:校长对院主任进行管理,院主任对辅导员进行管理,辅导员对学生进行管理。

★ 校长对学生的管理不是直接与学生进行接触,而是对学生的数据进行管理,所以管理的本质是数据的管理。

 1. 最终校长如何管理大量学生的数据呢???

先描述  -------> 再组织

比如:校长要管理好10000名学生,校长可以用C语言中的结构体,先对学生进行描述,学生的类别都是一样的,都是人,但是人们的属性不一样,有男有女,有高有低,有年纪的区别,学习成绩的好坏等等,属于C语言中相同类型或不同类型的集合,所以用结构体来描述学生,结构体的成员有性别、年龄、身高、成绩、年级等等,描述完成之后;可以把每一个学生的结构体当作一个节点对象,用链表来将他们组织起来。最后对链表进行增删查改的运算操作,就是对学生数据的管理。

2. 理解了管理之后,那么用户可以跳过操作系统直接访问底层硬件吗?

不能,这就好比其他学校的校长可以直接在自己本学校随意指挥学生吗?其他学校的校长要想要使用本学校的学生,只能找本地学校的校长来进行沟通。

所以,我们的用户想要访问底层硬件,只能通过操作系统来访问。

3. 用户能直接使用操作系统内的数据吗?

不能,这就好比,你在银行里存钱、取钱的操作,能让你一个人来完成吗?很显然,银行不会相信任何人,他们会设一个窗口,来进行业务的完成。

所以,出现了系统调用接口,就相当于系统调用接口是函数声明,而操作系统是函数的实现,用户要通过调用函数(系统调用接口)来访问函数的实现(操作系统)。

补充(系统调用和库函数):

在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用


系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。此处的库指的就是库函数

总结


本篇博客就结束啦,谢谢大家的观看,如果公主少年们有好的建议可以留言喔,谢谢大家啦!

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

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

相关文章

瞪羚企业申报条件!武汉市瞪羚企业奖励补助

武汉市江岸区、江汉区、硚口区、汉阳区、武昌区、青山区、洪山区、蔡甸区、江夏区、黄陂区、新洲区、东西湖区、汉南区企业申报瞪羚企业的条件是什么?各区对瞪羚企业的奖励补助有哪些? 武汉市瞪羚企业申报条件: 1、符合武汉市光电子信息、生物…

Windows Server 2012 R2 新增D盘分区

我们经常搭建windows版本的游戏时会要在D盘上操作,今天就介绍下新的服务器如何新增一个D盘。 在"开始"图标右边有个”服务器管理器“,单击点开 点开服务器管理器后,点击“工具”打开“计算机管理” 打开计算机管理后点击“存储”-…

发票审核如何自查?报销没有发票,如何处理?

在财务管理中,发票是非常重要的一项凭证,是费用核算和税务申报的重要依据,但光靠发票入账可能会被定义为虚开。 一、费用报销审核必看的6个要点 1、票据与实际业务吻合 这是费用报销中最基本的常识,比如:采购一批物料&…

T型三电平逆变器的Simulink仿真

1 T型三电平拓扑的开关状态 图1为T字型-三电平电路单相拓扑,拓扑中共有4个IGBT,4个二极管,还有电容组C1和C2;假设正负母线电压均等,都是Vdc。将T1,T2,T3,T4的状态用1和0分别表示&…

51单片机入门:串口通信

串行通信的初步认识 通信方式分类 1、按照数据传送方式: 并行通信:通信时数据的各个位同时传送,可以实现字节为单位的通信。 但是通信线多,占用资源多,成本高。 串行通信:一次只能发送一位&#xff0c…

Linux:进程概念(三.详解进程:进程状态、优先级、进程切换与调度)

上次讲了进程这些内容:Linux:进程概念(二.查看进程、父进程与子进程、进程状态详解) 文章目录 1.Linux中的进程状态1.1前台进程和后台进程运行状态睡眠状态磁盘休眠状态停止状态kill指令—向进程发送信号 死亡状态 2.僵尸进程2.1僵…

零售全渠道营销业务链分析,让企业管控能力大幅加强!

对于传统的、规模化的零售快消企业来讲,面临着很大的渠道管理和建设问题,如何尽快实现整个营销体系的全渠道数字化转型是当务之急、重中之重。 面对错综分散的经销商,零售快消企业订货流程会越复杂,加之对门店管理较为粗放&#…

武汉星起航:亚马逊母亲节选品指南,热销产品助卖家赢取节日商机

随着母亲节的脚步日益临近,全球消费者纷纷开始为这一特殊的节日挑选礼物,以表达对母亲的深深感激和无尽爱意。作为跨境电商的重要平台,亚马逊凭借其丰富的商品种类和便捷的购物体验,成为消费者选购母亲节礼物的首选之地。那么&…

【数据结构陈越版笔记】第1章 概论

我最近准备以陈姥姥的数据结构教材为蓝本重新学一下数据结构,写一下读书笔记 第1章 概论 1.1 引子 概论中首先描述了,数据结构的定义没有具体的定义,初学者可以不用管这个定义的问题,但是我理解的和维基百科的说法是一样的“数…

[已解决]ModuleNotFoundError: No module named ‘tqdm‘

😎 作者介绍:我是程序员行者孙,一个热爱分享技术的制能工人。计算机本硕,人工制能研究生。公众号:AI Sun,视频号:AI-行者Sun 🎈 本文专栏:本文收录于《AI实战中的各种bug…

如何批量删除多个不同路径的文件但又保留文件夹呢

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 1、我准备了三个文件夹(实际操作的时候可能是上百个文件夹,无所谓),里面都放了两个图片 2、然后打开工具&am…

RustDesk 自建服务器部署和使用教程

RustDesk 是一个强大的开源远程桌面软件,是中国开发者的作品,它使用 Rust 编程语言构建,提供安全、高效、跨平台的远程访问体验。可以说是目前全球最火的开源远程桌面软件了,GitHub 星星数量达到了惊人的 64k! 与 Team…

AIGC|将GPTBots与10000+主流软件连接,实现应用场景全覆盖

一、自动化工作流的无限可能,由AI带来 当前市场上存在许多自动化工作流工具,这些工具在很大程度上提升了人们的工作效率,为企业节省了大量时间和人力成本。然而,这些工具并非万能,它们在实际应用中仍存在一定的局限性…

如何在自己的服务器上快速搭建第一个网站(其一)

根据上篇文章相信很多人以及成功搭建服务器啦。今天我们讲下如何在自己的服务器快速搭建第一个网站的一些重要配置,以及搭建网站的必备环境。干货满满,希望大家能够关注点赞收藏。 我会不定期更新一些实用的工具,欢迎大家私信评论喔&#xf…

工作中使用Optional处理空指针异常

工作中使用Optional处理空指针异常 实体类以前对空指针的判断Optional处理空指针测试结果 实体类 package po;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable;Data AllArgsConstructor NoArgsConstruct…

kafka生产者消费者举例

文章目录 kafka介绍生产者消费者例子一、生产者二、消费者三、效果 KafkaTemplate KafkaListener kafka介绍 Kafka 是一款分布式流处理平台,它被设计用于高吞吐量、持久性、分布式的数据流处理。 Kafka 简介: Kafka 是一个高吞吐、分布式、基于发布 订阅…

NSS刷题

[SWPUCTF 2021 新生赛]jicao 类型&#xff1a;PHP、代码审计、RCE 主要知识点&#xff1a;json_decode()函数 json_decode()&#xff1a;对JSON字符串解码&#xff0c;转换为php变量 用法&#xff1a; <?php $json {"ctf":"web","question"…

2024年数维杯B题完整代码和思路论文讲解与分析

2024数维杯数学建模完整代码和成品论文已更新&#xff0c;获取↓↓↓↓↓ https://www.yuque.com/u42168770/qv6z0d/bgic2nbxs2h41pvt?singleDoc# 2024数维杯数学建模B题45页论文和代码已完成&#xff0c;代码为全部问题的代码 论文包括摘要、问题重述、问题分析、模型假设、…

怎么让电脑耳机和音响都有声音

电脑耳机音响不能同时用没声音怎么办 一般来说&#xff0c;重新开机后问题能够得到解决。右击“我的电脑”---“属性”---“硬件”---“设备管理器”&#xff0c;打开“声音、视频和游戏控制器”有无问题&#xff0c;即看前面有没有出现黄色的“”。 如果您的 电脑 耳机能正常…

SQL注入(sqli-labs第一关)

sqli-labs第一关 方法一&#xff1a;手工注入 来到第一关&#xff0c;图上说我们需要一个数字的参数 于是我们先手工注入?id1 and 11 跟?id1 and 12发现页面没有报错 每张截图上面页面中有select查询语句&#xff0c;这是我在第一关的源码中加上了echo "$sql ";…