【Linux】冯诺依曼体系结构初识操作系统

文章目录

  • 1. 冯诺依曼体系结构
  • 2. 初识操作系统
    • 2.1 操作系统是什么?
    • 2. 为什么要有操作系统
    • 3. 操作系统是怎么管理的
    • 4. 系统调用(System Call)

1. 冯诺依曼体系结构

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

image-20231009103254968

一般来说,计算机分为输入设备、输出设备、存储器、运算器&&控制器

名词解释

  • 输入设备:输入设备包括:磁盘,网卡,键盘,鼠标等
  • 输出设备:输出设备包括:磁盘,网卡,显示器,打印机等
  • 中央处理器(CPU):包括运算器和控制器

关于冯诺依曼,需要强调与解释的东西:

  • 这里的存储器指的是内存(掉电易失)
  • 不考虑缓存的情况下,这里的CPU只能对内存进行读写,不能访问外设(输入和输出设备)
  • 外设要输入或者输出数据也只能从内存中读取,不能直接从CPU中获取
  • 所有的设备都只能和内存直接打交道(目的是为了提高效率)

们知道,CPU的速度是最快的,里面配有寄存器也是最快的,内存是较快的,而外设是较慢的

设备快慢的金字塔

内存存在的意义在于:

如果没有内存,CPU只能从外设获取数据进行处理,但是,上面我们说到了,外设的速度是相对较慢的,此时的CPU效率取决于外设,会导致处理效率较慢。而内存的存在,解决了这个问题,可以先把数据存放在内存中,在加载到CPU进行处理,这大大提高的数据的处理。所以CPU读取数据必须从内存中拿!!!

image-20231009151715831

而我们所说到的IO(输入输出既input和output)就是从内存的角度上看,把数据从输入设备存入内存的过程叫做input,把内存中的数据输出到输出设备的过程叫做output,这就是IO的过程

结论:

  • 在数据层面:
    1. CPU只和内存打交道,不和任何外设直接打交道
    2. 所有的外设,有需要载入数据只向内存载入,内存写出也是向外设写出
  • 在代码层面:
    1. 程序要运行必须加载到内存中,CPU要执行我的代码,访问我的数据只能从内存中读取(体系结构规定)

对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上。

请解释,从你登录上qq开始和某位朋友聊天开始,数据的流动过程。从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程。如果是在qq上发送文件呢?

image-20231009153725793

如果是发送文件的话,那么数据就需要先从磁盘载入到内存,然后在写到外设(网卡)再通过网络传输

2. 初识操作系统

2.1 操作系统是什么?

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

操作系统的定位:是一款专注于管理的软件

2. 为什么要有操作系统

为了更好的管理一台计算机的软硬件资源

通过合理的管理软硬件资源(手段),为用户提供更好良好的(稳定的,高效的,安全的)执行环境(目的)

3. 操作系统是怎么管理的

举个例子:大家作为学生,与自己学校的校长打过交道吗?应该很少有,但是大家又作为这个学校的学生被校长管理着,那么校长是怎么做到的呢?

是通过对数据的管理来管理学生的

所有的管理,本质是对数据做管理,管理的方法是先描述再组织

计算机管理软硬件资源的方式:

  1. 描述起来,用struct结构体
  2. 组织起来,用链表或其他高效的数据结构

计算机体系结构图

计算机体系结构图

4. 系统调用(System Call)

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

这对应着用计算机体系结构图中的户操作接口和system call,我们或者说用户不是直接和操作系统进行操作交流的,需要通过调用各种接口间接地进行交流

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

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

相关文章

CS5232/CS5212支持热拔插应用主板DP转VGA转接芯片方案设计

北京集睿致远CS5212是DP转VGA芯片,应用于各种转接线或主板应用。但对于主板市场DP转VGA转接板更适合用CS5232,其优势是:支持热拔插,温度范围也更广。 CS5232管脚定义: CS5232设计参考原理图如下: 以上综合来看,CS5232…

HttpClient实现爬虫开发

网络爬虫是一种高效获取网络信息的方式,而HttpClient是一个强大而灵活的Java库,提供了方便的API和丰富的功能,使其成为开发高效且灵活的网络爬虫的理想选择。本文将分享如何利用HttpClient库进行网络爬虫开发,帮助您更好地理解并实…

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 八)

其他状态管理概述 除了前面章节提到的组件状态管理和应用状态管理,ArkTS还提供了Watch和$$来为开发者提供更多功能: Watch用于监听状态变量的变化。$$运算符:给内置组件提供TS变量的引用,使得TS变量和内置组件的内部状态保持同步…

连续子数组的最大和

这其实用到的是一个dp的动态规划数组来描写的。 用两个变量就能解决了,一个是max(记录前i个数中子数组的最大的和), 一个是sum是记录前i个数组的和最大值和自己去比较,就是前i-1个和是8,自己是-2, 8 - 2 > -2,所以…

websocket实现go(server)与c#(client)通讯

go 服务端 使用到github.com/gorilla/websocket package mainimport ("fmt""github.com/gorilla/websocket""log""net/http" )func main() {var upgrader websocket.Upgrader{ReadBufferSize: 1024,WriteBufferSize: 1024,CheckOr…

PDF有限制不能复制怎么办?

大家现在接触PDF文件越来越多,有的时候在网上下载的PDF文件打开之后,发现选中文字之后无法复制。甚至其他功能也都无法使用,这是怎么回事?该怎么办? 当我们发现文件打开之后,编辑功能无法使用,很…

如何领取京东优惠券用微信支付还是用支付宝支付购买商品?

京东用微信支付还是用支付宝支付? 京东商城购物不支持支付宝支付,现京东商城支持的支付方式包括:京东支付、银行卡、信用卡、微信支付、云闪付等; 京东如何领取优惠券用微信支付购物? 1、打开京东APP,挑选…

Suricata + Wireshark离线流量日志分析

目录 一、访问一个404网址,触发监控规则 1、使用python搭建一个虚拟访问网址 2、打开Wireshark,抓取流量监控 3、在Suricata分析数据包 流量分析经典题型 入门题型 题目:Cephalopod(图片提取) 进阶题型 题目:抓到一只苍蝇(数据包筛选…

C语言进阶---程序环境和预处理

C语言进阶---程序环境和预处理 前言一、程序的翻译环境、执行环境二、详解:C语言程序的编译链接三、预定义符号介绍四、预处理指令 #define五、宏和函数的对比(思维导图)六、命令定义、预处理指令 #include #undef1.命名约定2.命令行定义 七、…

(5)SpringMVC处理携带JSON格式(“key“:value)请求数据的Ajax请求

SpringMVC处理Ajax 参考文章数据交换的常见格式,如JSON格式和XML格式 请求参数的携带方式 浏览器发送到服务器的请求参数有namevalue&...(键值对)和{key:value,...}(json对象)两种格式 URL请求和表单的GET请求会将请求参数以键值对的格式拼接到请求地址后面form表单的P…

nginx下载与安装教程

文章目录 nginx简介nginx的主要应用场景nginx开源项目的源码结构 使用centos7安装nginx检查centos版本号和linux内核版本检查是否安装gcc、pcre、zlib、openssl等依赖 安装nginx启动nginx停止nginx重启nginx nginx简介 nginx是一款业内流行、功能强大的web服务器。 高性能&…

Docker安装——Ubuntu (Jammy 22.04)

一、为什么要用 Ubuntu?(centos和ubuntu有什么区别) 使用lsb_release命令:lsb_release -a ,即可查看ubantu的版本,但是为什么要使用ubantu 呢? 区别:1、centos基于EHEL开发,而ubunt…