【linux】冯诺依曼架构

Alt

🔥个人主页Quitecoder

🔥专栏linux笔记仓

Alt

目录

    • 01.冯诺依曼体系结构
    • 02.操作系统(Operator System)
      • 如何理解“管理”
      • 操作系统中实现“管理的先描述再组织”
    • 03.系统调用与库函数
      • 系统调用
      • 库函数

01.冯诺依曼体系结构

我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系
在这里插入图片描述
截至目前,我们所认识的计算机,都是由一个个的硬件组件组成

  • 输入单元:包括键盘, 鼠标,扫描仪, 写板等
  • 中央处理器(CPU):含有运算器控制器
  • 输出单元:显示器,打印机等

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

  • 这里的存储器指的是内存
  • 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  • 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取

一句话,所有设备都只能直接和内存打交道

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
冯·诺依曼架构是现代计算机的基础,其核心是将程序存储在计算机内存中并按顺序执行。数据流的理解涉及如何处理、存储和传输数据。下面我们通过使用QQ聊天和发送文件的例子来探讨这一过程。

  1. 登录QQ
  • 启动QQ应用: 当你点击QQ图标时,操作系统加载QQ程序到RAM中。
  • 程序执行: CPU开始执行程序代码,包括初始化网络连接、用户界面等。
  • 登录过程: 输入用户名和密码后,QQ客户端将这些信息封装成数据包,通过互联网发送到QQ服务器。
  • 身份验证: 服务器检查凭证,验证成功后返回登录成功的信息,并可能包括好友列表、聊天记录等数据。
  1. 发送消息
  • 打开聊天窗口: 选择一个好友开始聊天,此时客户端可能从本地缓存或服务器加载历史聊天记录。
  • 输入并发送消息: 输入文本并点击发送,QQ客户端将消息数据打包,并标记发送目标(好友的唯一标识符)。
  • 数据传输: 数据包通过你的网络连接发送到QQ服务器。
  • 服务器处理: 服务器接收到数据包,解析并确定接收者,然后将消息转发到对应的接收者。
  • 好友接收消息: 好友的QQ客户端通过其网络连接从服务器接收到消息,然后在其聊天窗口显示。
  1. 发送文件
  • 选择并发送文件: 在聊天窗口中选择文件发送选项,选择一个文件后,客户端会先读取文件内容。
  • 文件上传: 客户端可能会将文件分割成多个数据包,这些数据包依次上传到QQ服务器。
  • 文件存储: 服务器接收到所有文件数据后,将文件暂存到服务器上。
  • 通知接收方: 服务器向接收方的客户端发送有文件传来的通知,可能包括文件名、大小和下载链接。
  • 文件下载: 接收方可以选择接收并下载文件。点击下载后,客户端通过服务器提供的链接请求文件数据。
  • 文件传输完成: 文件数据通过网络传输到接收方的设备上,存储于指定位置,完成整个文件发送和接收过程。

在这整个过程中,数据流的管理和优化是至关重要的。这包括数据包的正确打包、有效的网络传输、数据安全和隐私保护等。通过这些例子,可以看到冯·诺依曼架构如何支持复杂的数据处理和传输活动,从而使得应用程序如QQ能够高效、安全地运行

02.操作系统(Operator System)

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。它是计算机系统中最基本的系统软件,提供了用户与整个计算机系统交互的基础环境。笼统的理解,操作系统包括:

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

计算机系统体系结构成层状分布,操作系统起到承上启下的作用
在这里插入图片描述
设计OS的目的:

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

在计算机系统中,操作系统(OS)的核心角色可以理解为一个“管理者”。操作系统的管理功能涵盖了多个层面,主要包括对计算机硬件资源和软件应用的管理。这些资源包括CPU(中央处理器)、内存、存储设备和输入/输出设备等。以下是操作系统在这些方面的管理职责:

如何理解“管理”

“管理”在操作系统的语境中,指的是对计算机系统资源的有效分配、监控和调度,以确保系统的稳定运行和高效性能。操作系统通过一系列的程序和策略来实现这些管理任务,从而使得多个程序和用户可以高效、安全地共享计算机资源。

管理的例子

  1. 进程管理:操作系统负责创建、执行、暂停和终止进程。同时,它还负责进程间的同步和通信。
  2. 内存管理:操作系统管理所有程序在运行时的内存需求,确保每个程序获得足够的内存,并处理虚拟内存和物理内存之间的映射。
  3. 文件系统管理:操作系统负责文件的创建、删除、读取和写入。它管理磁盘空间的分配和文件的存储,提供用户级别的文件访问权限。
  4. 设备管理:操作系统通过设备驱动程序管理所有的硬件设备,如键盘、鼠标、硬盘等,控制硬件设备的数据输入输出操作。
  5. 用户界面提供:操作系统提供了与用户交互的界面,如命令行界面(CLI)或图形用户界面(GUI),让用户能够更方便地与计算机系统交互。

被操作系统管理的对象主要包括:

  • 硬件资源:CPU、内存、存储设备(硬盘、SSD等)、输入输出设备(键盘、鼠标、显示器等)。
  • 软件资源:应用程序、系统服务、用户数据和系统数据。

操作系统通过各种数据结构(如表格、队列和树)来组织被管理的对象

  • 进程表:用来跟踪各个进程的状态和资源占用。
  • 内存映射:包括虚拟内存地址到物理内存地址的映射。
  • 文件目录结构:用树状结构来组织文件系统中的文件和目录。
  • 设备队列:管理各个设备请求的队列,确保高效的资源访问。

通过这些管理职责,操作系统确保了计算机系统的高效、稳定和安全运行,允许用户和应用程序更好地执行其任务。

在操作系统的上下文中,管理的“先描述再组织”原则可以被解释为首先定义和明确资源或任务的特征,然后根据这些定义来规划和优化资源的分配和任务的调度。操作系统作为计算机系统资源的管理者,必须精确地理解各种资源的状态、需求和优先级,然后才能有效地组织和调配这些资源以满足系统和用户的需求。这一原则确保了资源使用的最大效率和系统性能的优化。

操作系统中实现“管理的先描述再组织”

  1. 资源描述

    • 硬件资源:如CPU、内存、存储设备和输入输出设备。操作系统需要详细识别每个硬件资源的特性,包括类型、性能参数、当前状态和使用情况。
    • 软件资源:如进程、线程、文件系统等。操作系统通过描述这些资源的属性(如进程的优先级、线程的状态、文件的权限等)来管理它们。
  2. 资源组织

    • 进程管理:操作系统首先通过进程表来描述所有进程的状态和属性。然后,基于这些描述信息,操作系统调度进程运行,管理它们的生命周期,优化CPU的使用效率。
    • 内存管理:操作系统描述每个内存块的状态(如已分配、空闲)、大小和位置。根据这些描述,操作系统通过内存分配算法(如分页、分段)来有效地组织内存资源,确保每个应用程序和服务都能得到所需的内存。
    • 文件管理:操作系统描述文件和目录的结构、权限和位置,然后根据这些信息来组织文件存储、执行文件访问控制和数据备份。
  3. 任务调度

    • 描述任务需求:操作系统描述每个任务的资源需求、优先级和截止时间。
    • 组织和调度:根据这些描述,操作系统安排任务执行的顺序,优化资源分配,以达到最小化响应时间、最大化吞吐量或其他优化目标。
  4. 性能管理

    • 系统监控:操作系统通过持续监控和描述系统性能参数(如CPU利用率、内存使用、IO操作等),获取系统运行的实时画像。
    • 资源再组织:根据性能监控的数据,操作系统可能会重新组织资源,调整任务优先级,或平衡负载,以保持系统性能的最优化。

通过这种方式,“先描述再组织”的管理策略帮助操作系统在不断变化的需求和资源状态中保持高效和稳定。这不仅优化了资源的使用,还提高了系统的整体性能和用户的满意度

03.系统调用与库函数

在理解操作系统和应用程序交互时,系统调用库函数是两个核心概念,它们在功能和执行层面有明显的差异。
在这里插入图片描述
如果我们开发直接调用系统调用接口,这样的代码我们成它不具有跨平台性

系统调用

系统调用是应用程序与操作系统之间的接口,是程序在执行期间请求操作系统提供特定服务的一种方式。这些服务包括硬件操作、创建和执行进程、管理文件系统等底层操作。系统调用允许用户级应用程序执行通常不允许的操作,确保系统稳定性和安全性。

  • 特点
    • 权限层级: 系统调用在较低的权限层级执行,通常是操作系统的核心层级。
    • 功能范围:涵盖底层硬件管理、进程控制、文件操作等。
    • 执行过程:执行系统调用时,CPU从用户模式切换到内核模式,这是一种权限升级。

库函数

库函数是一些预先编写好的、可以在程序中直接调用的函数,通常由各种标准或非标准库提供,如C标准库(libc),提供字符串处理、文件操作、数学计算等功能。库函数可以包含系统调用,但也可以只是执行算法或其他计算任务而不直接请求操作系统资源。
在这里插入图片描述

  • 特点

    • 权限层级:库函数通常在用户模式下执行,不涉及模式的切换。
    • 功能范围:可以非常广泛,从简单的数学计算到复杂的图形渲染等。
    • 依赖性:库函数可能调用系统调用来执行底层操作,如文件I/O。
  • 系统调用示例:open()read()write()fork()exec()等是典型的系统调用,它们直接与操作系统内核交互,管理硬件资源或进程等。

  • 库函数示例:printf()strcpy()malloc()等。这些函数可能在内部使用系统调用,例如printf()最终会调用write()系统调用来输出数据到标准输出,而malloc()可能会调用brk()mmap()系统调用来分配内存。

理解系统调用和库函数之间的区别对于系统编程和应用程序开发非常重要,因为它们影响代码的性能、安全性和可移植性。系统调用因涉及模式切换而通常比库函数调用成本更高;同时,对系统资源的直接控制能力也使得系统调用更加强大但使用时需要更加小心。

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

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

相关文章

工作笔记【五】——媒体查询

更新一下今天学到的东西——媒体查询(浅学一下~) 今天的任务是做一个网站的footer,要求在类似手机的设备打开时,footer元素竖向排列,在pc类的设备打开时,footer元素横向排列。 PC端: 手机端&a…

SpringBoot+Vue智能社区服务小程序

SpringBootVue智能社区服务小程序 SpringBootVue智能社区服务小程序 项目描述 智能社区服务小程序的前台小程序是一个集成多功能的综合性平台,旨在提供便捷、高效的社区服务。以下是关于各个功能的简单介绍: 用户管理:用户管理模块负责社区…

你知道C++多少——栈和队列

🌈个人主页:小新_- 🎈个人座右铭:“成功者不是从不失败的人,而是从不放弃的人!”🎈 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 🏆所属专栏&#xff1…

数据库管理平台应该具备哪些功能

企业数据的的扁平一体化管理越来越普及。 一个企业如果想要做好数据扁平一体化管理的核心问题是如何高效地管理这些资源。构建一个能够完美整合、系统化组织数据,并提供直观可视分析界面的数据库管理平台,便是企业加速数字化转型的必备工具。 假如公司有…

json格式的post请求目前不行, 要换成form表单形式的post请求怎么改

问: 下面是我的代码 export function fetchDeleteList<T>(agentSessionId: string) {return post<T>({url: http://192.168.0.116:8089/pipe-ics/agent/delete,method: post,data: { agentSessionId },}) } 目前是json格式的post请求, 目前不行, 要换成form表单…

详解计算机组成原理中的层次化存储

第5章 大而快&#xff1a;层次化存储 5.1 引言 局部性原理&#xff1a;在任意一段时间内&#xff0c;程序都只会访问地址空间中相对较小的一部分内容&#xff0c;就如你只会查阅图书馆的一部分藏书一样。 时间局部性&#xff1a;某个数据被访问&#xff0c;在不久的将来可能…

CIME2025深圳国际热管理材料与设备展览会(2025.6.25-27)

CIME2025深圳国际热管理材料与设备展览会&#xff08;2025.6.25-27&#xff09; 2025.6.25-27 深圳国际会展中心 次世代热管理解决方案航天器热控分系统产品、基站环境级/机柜级热控产品以及基于环路热管的CPU、GPU、IGBT、T/R组件超级散热器其系统热阻、均温性、传热能力、逆…

递归 深搜 回溯练习

递归 深搜 回溯 题目一. 全排列II1. 题⽬链接&#xff1a;2. 题⽬描述&#xff1a;3. 解法&#xff1a;4.代码 题目二. 电话号码的字⺟组合1. 题⽬链接&#xff1a;2. 题⽬描述&#xff1a;3. 解法&#xff1a;4.代码 题目三. 括号⽣成&#xff08;medium&#xff09;1. 题⽬链…

论文阅读笔记- Language Modeling with Gated Convolutional Networks

前言 统计语言模型本质上是在给定前面若干个单词的条件下&#xff0c;通过概率建模来估计单词序列的概率分布&#xff0c;即&#xff1a; P ( w 0 , . . . , W N ) P ( w 0 ) ∏ i 1 N P ( w i ∣ w 0 , . . . , w i − 1 ) P(w_0,...,W_N)P(w_0)\prod_{i1}^NP(w_i|w_0,...…

dvwa:文件包含、文件上传

文件包含 本地文件包含&#xff08;敏感信息泄露&#xff09;和远程文件包含&#xff08;命令执行&#xff09; 本地文件包含一般包含一些本地的敏感文件&#xff0c;如&#xff1a;/etc/passwd或/etc/shadow等 远程文件包含能使得服务器代码执行&#xff0c;如包含黑客vps的…

文心一言 VS 讯飞星火 VS chatgpt (365)-- 算法导论24.3 7题

七、给定带权重的有向图 G ( V &#xff0c; E ) G(V&#xff0c;E) G(V&#xff0c;E)&#xff0c;其权重函数为 w : E → ( 1 &#xff0c; 2 &#xff0c; … &#xff0c; W ) w:E→(1&#xff0c;2&#xff0c;…&#xff0c;W) w:E→(1&#xff0c;2&#xff0c;…&…

2024年诺贝尔物理学奖 机器学习与神经网络领域前景面面观 如何抉择

近日&#xff0c;2024年诺贝尔物理学奖颁发给了机器学习与神经网络领域的研究者&#xff0c;这是历史上首次出现这样的情况。这项奖项原本只授予对自然现象和物质的物理学研究作出重大贡献的科学家&#xff0c;如今却将全球范围内对机器学习和神经网络的研究和开发作为了一种能…

基于微信小程序的家校联动平台管理系统的设计与实现(毕业论文)

目 录 第一章 绪论 1 1.1研究背景 1 1.1.1教育信息化的发展 1 1.1.2家校沟通的重要性 1 1.1.3微信小程序的优势 1 1.2国内外研究现状 1 1.2.1教育管理信息系统 1 1.2.2家校互动平台 1 1.2.3微信小程序在教育领域的应用 2 1.3本文的主要工作 2 1.3.1系统需求分析 2 1.3.2系统设计…

边缘智能(Edge Intelligence):智能计算的前沿

随着物联网&#xff08;IoT&#xff09;、5G网络和人工智能&#xff08;AI&#xff09;的快速发展&#xff0c;边缘智能&#xff08;Edge Intelligence&#xff09;作为一种新兴的技术理念&#xff0c;逐渐成为数字化时代的重要组成部分。边缘智能通过在靠近数据生成端&#xf…

正则表达式-“三剑客”(grep、sed、awk)

1.3正则表达式 正则表达式描述了一种字符串匹配的模式&#xff0c;可以用来检查一个串是否含有某种子串&#xff0c;将匹配的子串替换或者从某个串中取出符号某个条件的子串等&#xff0c;在linux中代表自定义的模式模版&#xff0c;linux工具可以用正则表达式过滤文本。Linux…

《网络安全自学教程》- Nmap使用及扫描原理分析

《网络安全自学教程》 Nmap&#xff08;Network Mapper&#xff09;是一款免费的开源网络扫描器&#xff0c;向目标主机发送特定的数据包&#xff0c;根据返回的流量特征&#xff0c;分析主机信息。主要功能有&#xff1a;「端口扫描」、「主机探测」、「服务识别」和「系统识别…

Linux之实战命令32:chroot应用实例(六十六)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

字节跳动最新音乐生成模型Seed-Music

Seed-Music是一个由字节跳动研发的音乐生成模型&#xff0c;用户可以通过输入多模态数据&#xff08;如文本描述、音频参考、乐谱、声音提示等&#xff09;来生成音乐&#xff0c;并且提供了方便的后期编辑功能&#xff0c;比如修改歌词或旋律。 Seed-Music 结合了自回归语言模…

CentOS快速配置网络Docker快速部署

CentOS裸机Docker部署 1.联通外网 vi /etc/sysconfig/network-scripts/ifcfg-ens33systemctl restart networkip addrping www.baidu.com2.配置CentOS镜像源 参考文章 进入/etc/yum.repos.d目录下找到 CentOS-Base.repo cd /etc/yum.repos.dcp CentOS-Base.repo CentOS-B…

双向广搜 bfs进阶 open the lock——hdu1195

目录 前言 传统bfs 双向广搜 open the lock 问题描述 输入 输出 问题分析 状态转变 去重 单向搜索的bfs 双向广搜 结束条件 输出步数 前言 其实这题数据不算复杂&#xff0c;不用双向广搜也可以完成&#xff0c;仅仅是为了更直观展现双向广搜的编码方式。 传统bfs bfs向来都…