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

news2024/9/28 1:26:10

文章目录

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

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

相关文章

qml入门

window import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.5Window { //root控件,父窗口是主界面width: 640height: 480visible: true//相对于父控件的偏移量x: 100y:100minimumWidth: 400 //最小宽度minimumHeight: 300 //最小高度ma…

浏览器安装vue调试工具

下载扩展程序文件 下载链接:链接: 下载连接网盘地址, 提取码: 0u46,里面有两个crx,一个适用于vue2,一个适用于vue3,可根据vue版本选择不同的调试工具 crx安装扩展程序不成功,将文件改为rar文件然后解压 安装…

Jenkins 构建时动态获取参数

文章目录 问题简介Groovy 脚本配置进阶 问题 在做jenkins项目时,有些参数不是固定写死的,而是动态变化的,这时我们可以用 Active Choices 插件来远程调用参数 问题解决方案:执行构建前使用Groovy Scrip调用本地脚本,…

Wlan——无线反制理论与配置讲解

目录 非法设备基本概念 非法设备的分类 如何识别非法设备的类型 非法设备判断流程 反制AP的工作模式 AP对于非法设备的检测模式 AP对于非法设备的反制模式 反制设备的工作原理 反制设备如何获取非法设备的信息 反制设备对非法设备反制的原理 如何通过空口抓包判断是…

iframe框架token失效重新登陆问题

在登录信息过期之后,或者也就是token过期后,要登出,跳转到登录页面重新登录来获取token等信息。 这时如果你用的是iframe框架的话,就会出现登录界面是嵌套在框架里面的情况,或者出现下图所示报错情况。 出现这种情况…

PowerBI 一些基础功能

1、PowerBI创建日期表 1.1、Power BI 日期表 - 知乎日期是做数据分析的时候使用最频繁的分析维度,一般建议建立单独的日期维度表,并与事实表的日期字段建立连接。 建立日期维度表可通过DAX函数的方式进行: 日期表 CALENDAR(DATE("2023&…

基于Springboot实现疫情网课管理系统项目【项目源码+论文说明】

基于Springboot实现疫情网课管理系统演示 摘要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于疫情网课管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了疫情…

当我们谈论量化时,我们在谈论什么?量化投资常见策略有哪些?| 融券T0和高频交易详解【邢不行】

最近关于量化的争议不断,很多人甚至建议取缔量化。 部分人认为量化以高频交易配合融券变相实现T0,赚走了市场所有的钱,有失公正。 高频交易大家都听过,即凭借程序在几秒甚至几毫秒内完成一笔交易,有人认为这对还在盯盘…

ThreadLocal线程变量使用浅解

一、概述    ThreadLocal一般称为线程本地变量,它是一种特殊的线程绑定机制,将变量与线程绑定在一起,为每一个线程维护一个独立的变量副本。通过ThreadLocal可以将对象的可见范围限制在同一个线程内, 在实际多线程操作的时候&a…

探索8个顶级的绘图工具

在数字时代,绘画已经成为一种常见的表达方式,不仅广泛应用于艺术创作领域,而且在教育、设计和商业领域发挥着重要作用。随着技术的进步,越来越多的计算机绘图软件出现,为用户提供了更多的选择。本文将推荐8个计算机绘图…

Linux文件与目录的增删改查

一、增 1、mkdir命令 作用: 创建一个新目录。格式: mkdir [选项] 要创建的目录 常用参数: -p:创建目录结构中指定的每一个目录,如果目录不存在则创建,如果目录已存在也不会被覆盖。用法示例: 1、mkdir directory:创建单个目录 这个命令会在当前目录下创建一个名为…

ELK 处理 SpringCloud 日志

在排查线上异常的过程中,查询日志总是必不可缺的一部分。现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难。工欲善其事,必先利其器。如果此时有一个统一的实时日志分析平台,那可谓是雪…

【python】exec()内置函数释义

【python】exec内置函数释义 官方释义样例注意事项拓展感谢及参考博文 官方释义 官方Python API文档镇楼 exec(object, globalsNone, localsNone, /, *, closureNone) 支持动态执行 Python 代码, object 必须是字符串或者代码对象。 需要特别注意以下两点&#xff…

Multi Modal Smart Diagnosis of Pulmonary Diseases

方法 体会 作者图2的字太小,每个图都用一样形式的block,流程图乱画,且不给代码,看来InCACCT不怎么样

Spring 复习笔记

目录 第一步存 Bean第二步获取并使用 Bean依赖查找的方式ApplicationContext vs BeanFactory 更简单的存储 Bean1. 配合五大类注解使用2. 方法上添加注解 Bean 更简单的获取 Bean Spring IoC 容器管理的资源就是对象,这个对象也叫做 Bean。Spring 作为一个 IoC 容器…

VTable: 不只是高性能的多维数据分析表格

VTable,面向多维分析与可视化的高性能表格组件 导读 VTable: 不只是高性能的多维数据分析表格,更是行列间创作的方格艺术家! VTable是字节跳动开源可视化解决方案 VisActor 的组件之一。 在现代应用程序中,表格组件是不可或缺的…

面试金典--面试题 17.21. 直方图的水量(不困难的困难题)

文章目录 题目描述思路分析完整代码 题目描述 给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下,可以接…

适用于医美行业的微信管理系统

在当今这个数字化时代,微信已经成为人们日常生活中必不可少的社交工具之一。对于医美行业来说,微信也是一个极为重要的营销渠道。 医美行业面临的一些困境 ①门槛低,竞争大,需要进行大量营销,来走出红海 ②医美种类繁…

第三章 栈、队列和数组

第三章 栈、队列、数组 栈栈的基本概念栈的顺序实现栈的链接实现栈的简单应用和递归 队列队列的基本概念队列的顺序实现队列的链接实现 数组数组的逻辑结构和基本运算数组的存储结构矩阵的压缩存储 小试牛刀 栈和队列可以看作是特殊的线性表,是运算受限的线性表 栈 …

Nmap扫描教程-01

Nmap扫描教程 SYN扫描操作及原理(半连接扫描) 1. 第一步打开wireshark选着你要监听网卡 2. 在kail中输入命令找到我们需要扫描主机的ip地址 arp-scan -l -I eth1 3. 在kail中输入命令进行SYN半连接扫描 nmap -sS -p80 --reason -vvv 172.30.1.128 -s…