当前位置: 首页 > news >正文

Linux:计算机的层状结构

1.冯诺依曼体系结构

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

CPU:运算器和控制器组成。运算器主要工作是做算术运算和逻辑运算。控制器主要工作是协调设备之间信息流动的。

输入设备:键盘、鼠标、网卡等。

输出设备:显示器、网卡、打印机等。

存储器:存储器指的是内存,它的特点是掉电易失。

SSD固态硬盘或磁盘在冯诺依曼体系结构中它们不是存储器,它们是输入或者是输出设备

设备是用总线连接的,被集成在了主板上。将设备连接起来的目的是为了数据流动(本质就是设备之间数据的来回拷贝,拷贝的整体速度是决定了计算机的效率指标)。

输入设备和输出设备它们的效率是比较慢的,cpu的速度又非常的快,如果中间没有了存储器这样的设备,那么计算机的整体速度就取决于输入或输出设备,为了解决这种问题,于是在硬件上加入了存储器。


存储器比输入或输出设备要快,比CPU慢,输入设备就将数据放到存储器中,CPU在存储器中去读取执行,将结果放入到存储器,存储器在转交给输出设备,这样一来计算器的整体速度就变为了以存储器为主

当CPU在忙的时候,输入设备将数据放入到存储器中(这个工作是预先加载),当CPU不忙的时候直接到存储器中读取数据,将处理好的结果放入到存储器中(这个工作是缓存),输出设备直接在存储器中去读取,这样一来计算机的效率就变得很高。


2.操作系统是如何管理底层硬件的?

第一个被加载的软件是操作系统。操作系统是一个软件,它的工作是对软件资源和硬件资源进行管理

计算机的层状结构图:

计算机的软硬件结构是层状的。最底层是硬件,硬件有网卡,硬盘,键盘,显示器,CPU等等,这些硬件底层构成并不是随便放的,都是以冯诺依曼体系结构来进行组织的。


操作系统和底层硬件之间还有一个驱动程序,驱动程序是一个软件,专门去控制对应的软件,例如网卡驱动控制的是网卡,网卡的读,写,状态,开和关等相关操作接口,都在网卡驱动里,操作系统直接去调用网卡驱动就能控制底层硬件的网卡(几乎每一种底层硬件都有自己的驱动程序)。

在计算机的层状结构图中我们先从往下去研究,来学习操作系统是如何管理底层硬件的。

操作系统类似于现实生活中的领导,领导的主要工作是管理自己底下的员工,而管理的核心就是去做出正确的决策。底层硬件类似于现实生活中的普通员工,它们的主要工作是做执行,执行领导安排的任务。驱动程序类似于现实生活中的组长,它们的主要工作是保证管理决策落地,催促小组成员完成任务(操作系统做决策,底层硬件去执行,驱动程序保证决策落地)。

下面就以校园生活为例:

校长---------操作系统

辅导员----------驱动程序

学生-----------底层硬件


在学校中,校长是管理者,学生是被管理者,大多数的学生连校长的面都没有见过,但是各方面都被安排的明明白白的,例如:该在什么教室上什么课,住在哪一间寝室,是否可以拿到奖学金和助学金等等。所以管理者和被管理者根本不需要见面,管理的本质不在于对人做管理,而在于对人的信息(数据)做管理,例如:校长拿到一个学生的信息(数据),该学生各科成绩优秀,且是学生会的主席,对学校有重大贡献,校长就可以做出决策,让该学生拿到助学金。管理者核心是做决策,根据数据来做决策


管理者和被管理者面都没有见过是如何拿到信息(数据)的呢,校长和学生没有见过面,但是校长却能知道学生的信息(数据),原因是因为辅导员,辅导员将学生的信息(数据)上交到了校长那里,同时辅导员还要保证管理决策落地,如果校长想组织一场运动会,不需要挨个去通知学生,只需要告诉辅导员,辅导员就会去通知学生。


管理者在面对大量的被管理者的时候,数据量是必然非常大的,因为对人的管理需要转化成对数据的管理,数据量非常大的时候(学生非常的多),校长该如何去管理???

假设校长在没有升职前是一个C语言的老师,他是一个懂编程的校长,在面对大量学生的信息(数据)时就想到了数据结构的链表,根据学生的信息(数据)去创建一个节点,例如:

将根据学生的信息(数据)所创建的节点以链表的形式链接起来,每新来一个学生就新增一个节点,将被开除的学生或者是毕业的学生就释放掉对应的节点,还可以以身高、成绩为键值进行排序来找出身高最高的学生或成绩最好的学生进行做出决策,这样一来对学生的管理就变成了对链表的增删查改。对管理的一个计算机的建模的过程可以简化为六个字:先描述,在组织。我们在C语言上描述一个事物只能用结构体来描述,先描述就是用结构体去描述对应的事物,比如校长用结构体去描述一个学生的基本信息,然后在使用链表将用结构体来描述的事物进行组织起来,这样一来校长对学生的管理就变为了对数据结构中链表的增删查改。

底层硬件虽然有很多,不同,但是硬件都有它的名称,状态,操作方法,对应的属性。作系统对底层硬件的管理也是先描述,在组织,先将底层硬件使用结构体抽象的描述出来,例如:

再将用结构体抽象描述起来硬件使用链表的形式组织起来。从此往后,操作系统对底层硬件的管理就变为了对数据结构链表的增删查改,例如:操作系统想找一个网卡,就可以根据网卡的名称来遍历一遍链表,然后再根据它的驱动做出管理,如:发送数据,关闭网卡。如果一个设备突然坏掉了,操作系统在链表中将这个坏掉的设备节点释放掉。

操作系统不仅要管理底层硬件同时也需要将驱动程序给管理起来,管理的方法也是先描述,再组织。使用结构体将驱动程序描述出来,里面的属性有:驱动的名称,驱动的类别,驱动的方法,驱动的状态,驱动的版本等等....,然后再给每一个驱动程序创建一个结构体对象,再使用数据结构组织起来,如链表。之后操作系统对驱动程序的管理就变为了对链表的增删查改。

总结:

操作系统的管理工作:先描述,再组织

3.系统调用接口

计算机的层状结构图:

在前面说过,操作系统是一个软件,它的主要工作是管理好软硬件资源对上层应用软件提供良好的运行环境。判断一款操作系统好不好主要是看这三点:稳定(软硬件资源管理的非常好,不会经常出现蓝屏死机现象)、高效(软硬件资源管理的代码算法部分写的非常良好)、安全(用户的数据不会泄露出去)。


为什么要有系统调用接口???举个例子:在现实生活的银行,如果我们要去银行中存钱或取钱,银行肯定不会让我们跑到仓库里自己去放钱或取钱,万一有人要存5000,实际上只在仓库里放了一块钱,还顺带在仓库里拿了一部分钱,所以银行会担心群众中有坏人,它不会将自己全面暴露出来,但是为了给我们提供服务,银行就设置了柜台(人工服务),ATM机,让我们去存钱或者是取钱,这样一来,银行就保证了自己的安全,也为群众提供了应有的服务。

同样也是如此,我们要去硬盘中读取数据,操作系统肯定不会让我们直接去遍历它管理硬盘那一个数据结构中的某个字段,万一我们把其他人的数据也拿去了怎么办,所以操作系统不能将自己全面暴露出来,这样做不安全。为了解决这个问题,所以操作系统和用户之间有了系统调用接口这一层,系统调用接口是操作系统提供的一批接口,只允许用户通过系统调用接口来访问操作系统内部。


Linux操作系统是用C语言实现的(有少部分汇编),所以系统调用接口其实就是用C语言实现的函数,它是操作系统提供的系统调用函数。有些函数是有输入、输出的,所谓的输入其实就是用户想将数据交给操作系统,输出就是通过接口函数将数据拿给用户。

操作系统给上层用户提供的两方面的功能:1.数据方面的支持(如:用户想拿到文件数据、系统当中有多少进程等),2.功能方面的支持(如:用户想将数据通过网卡发送到网络,将数据写入到磁盘等)。


总结:任何人都不能直接去访问操作系统内部的数据,必须通过操作系统提供的接口函数才能去访问

用户不能直接去访问操作系统内部的数据,能不能直接绕过操作系统去控制底层硬件???答案是不能的,假设可以,如果用户一直在控制着网卡,网卡就会处于非常忙的状态,这时操作系统有个任务需要使用网卡,发现网卡一直被用户给控制着,这个任务就无法进行下去,那么操作系统的管理工作还做不做了。所以用户不能越级去控制底层硬件,必须通过系统提供的系统调用接口才行。

重新去理解printf函数和scanf函数

在学习C语言的时候,我们肯定使用printf函数和scanf函数。以printf函数为例,printf打印的消息是在显示器上显示的,显示器是一个硬件,肯定是被操作系统管理起来的,printf是C语言提供的标准输出函数,它有能力直接在显示器上打印内容吗??答案是不能的,用户不能越级去控制底层硬件,虽然我们不知道printf是怎么实现的,但是它的内部肯定封装并且调用了系统调用接口函数才能向显示器上打印内容。scanf同样也是如此,必须通过系统调用接口函数才能读取到用户在键盘上输入的数据。


不仅是C语言,其他语言也是如此,只要是影响到底层的硬件就必须通过系统调用接口函数才能去访问硬件。

虽然系统调用接口本来就是给用户准备的,但是要对操作系统有一定的了解才能把系统调用使用的好因为系统调用的参数和返回值必须得对操作系统有一定的认知,如果不懂的话使用系统调用接口会非常难受,所以就有人对系统调用接口进行了封装,形成了lib(库),提供给用户进行开发操作,减少使用者使用成本。

所以我们虽然没有使用过系统调用,但是通过学习计算机语言时也间接使用了,例如C语言将访问显示器和键盘的系统调用接口封装成了printf和scanf函数,所以才有了C标准库这样的概念。

系统调用和库函数之间的关系!!

系统调用是操作系统提供,库函数是用户提供(如C标准库),它们之间的关系是上下层的关系。并不是所有的库函数都会去调用系统调用,只要是库函数调用了系统调用它们的关系就是上下层的关系(库函数在上,系统调用在下)。

4.总结

我们通过学习冯诺依曼体系结构了解了计算机的组成结构,在通过计算机的层状结构图来学习操作系统是如何管理底层硬件的。

所以为什么要有操作系统的原因以及操作系统为什么要进行软硬件资源进行管理的原因就是因为:操作系统要对下管理好软硬件资源,对上要将自己的功能进行打包,形成系统调用接口,给上层的用户提供服务,可以让用户直接调用系统调用接口,也可以让用户直接使用各种库函数,为了让用户更好的去操作,所以在系统调用接口之上就有了shell外壳,lib(库),指令,用户就能更好的去进行指令操作、开发操作、管理操作

相关文章:

Linux:计算机的层状结构

1.冯诺依曼体系结构 我们常见的计算机,如笔记本、台式机。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系结构。 CPU:运算器和控制器组成。运算器主要工作是做算术运算和逻辑运算。控制器主要工作是协调设备之间信息流动的…...

注册表设置windows背景护眼色

方法一: CtrlR,输入regedit打开注册表 HKEY_CURRENT_USER\Control Panel\Colors 右侧窗口Windows键值由255 255 255改为202 234 206。 方法二: 还是注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\DefaultColo…...

《算法导论(第4版)》阅读笔记:p82-p82

《算法导论(第4版)》学习第 17 天,p82-p82 总结,总计 1 页。 一、技术总结 1. Matrix Matrices(矩阵) (1)教材 因为第 4 章涉及到矩阵,矩阵属于线性代数(linear algebra)范畴,如果不熟悉,可以看一下作者推荐的两本…...

政府数据开放试点企业如何抢占特许经营协议黄金席位

首席数据官高鹏律师团队 《中共中央办公厅 国务院办公厅关于 加快公共数据资源开发利用的意见》的落地,标志着数据从“封闭管理的行政资源”正式转变为“可流通的市场要素”。但机遇与风险从来是一枚硬币的两面——特许经营协议的黄金席位背后,隐藏着…...

Spring之Bean的初始化 Bean的生命周期 全站式解析

目录 导图 步骤 第一步 实例化 第二步 属性赋值 第三步 初始化 aware 接口 BeanPostProcessor 接口 InitializingBean 和 init-method 第四步使用 第五步使用后销毁 描述一下 Bean 的 生命周期 导图 步骤 总体上可以分为五步 首先是 Bean 的实例化Bean 在进行实例…...

exit耗时高

背景:程序退出发现被强制退出,而不是正常的退出。正常退出是发送15信号,而异常退出是发送信号9,强制退出。退出机制是先发送信号15,然后6s内没有退出完成,会发送信号9。通过查看退出流程,是将初…...

密文搜索-map容器+substr

https://www.luogu.com.cn/problem/P8630 ///因为密码是打乱顺序的&#xff0c;所以只要字母个数对上就行 ///用map存字母种类和个数 ///vector存每行密码 ///不用set&#xff0c;每行独立 再考察一个字符串分割函数substr&#xff0c;map自动比较 #include<bits/stdc.h…...

从专家编码到神经网络学习:DTM 的符号操作新范式

1st author: Paul Soulos paper: Differentiable Tree Operations Promote Compositional Generalization ICML 2023 code: psoulos/dtm: Differentiable Tree Machine 1. 问题与思路 现代深度学习在连续向量空间中取得了巨大成功&#xff0c;然而在处理具有显式结构&#x…...

江协科技GPIO输入输出hal库实现

首先先介绍一下GPIO在hal库里面的函数 GPIOhal库函数介绍 GPIO在hal库里面有两个文件&#xff0c;一个hal_gpio.h一个hal_gpio_ex.h 第一个文件主要存放的就是hal库里面对gpio的相关函数以及GPIO配置的结构体&#xff0c;还有hal库与标准库的一大区别回调函数。以及一些对gp…...

软件设计师教程—— 第二章 程序设计语言基础知识(上)

前言 在竞争激烈的就业市场中&#xff0c;证书是大学生求职的重要加分项。中级软件设计师证书专业性强、认可度高&#xff0c;是计算机相关专业学生考证的热门选择&#xff0c;既能检验专业知识&#xff0c;又有助于职业发展。本教程将聚焦核心重点&#xff0c;以点带面构建知…...

Java 快速转 C# 教程

以下是一个针对 Java 开发者快速转向 C# 的简明教程&#xff0c;重点对比 Java 与 C# 的异同&#xff0c;帮助你快速上手。 项目结构&#xff1a; .sln &#xff1a;解决方案文件&#xff0c;管理多个项目之间的依赖关系。.csproj &#xff1a;项目文件&#xff0c;定义目标框…...

Linux面试题集合(5)

把文件1的内容追加到文件2 cat 文件1>>文件2 把文件1和文件2合并成文件3 cat 文件1 文件2>文件3 使用less查看文件时&#xff0c;搜寻ab字符 /ab 用more和less如何查看文件 more&#xff1a; CtrlF -- 向下滚动一屏 CtrlB -- 返回上一屏 f -- 向下翻屏 b -- 向上翻屏 …...

OpenCV 光流估计:从原理到实战

在计算机视觉领域&#xff0c;光流估计&#xff08;Optical Flow Estimation&#xff09;是一项至关重要的技术&#xff0c;它能够通过分析视频序列中图像像素的运动信息&#xff0c;捕捉物体和相机的运动情况。OpenCV 作为强大的计算机视觉库&#xff0c;为我们提供了高效实现…...

星火杯大模型应用创新赛学习笔记——datawhale

背景——赛事任务 聚焦大学生真实应用场景&#xff0c;围绕阅读、写作、搜索、聊天、问答等方向&#xff0c;聚焦口语学习、面试招聘、论文写作、学习笔记等一个或多个细分应用场景&#xff0c;完成具有创新性、实用性的应用方案&#xff0c;呈现可演示、可落地、具备商业价值…...

Ulyssess Ring Attention

https://zhuanlan.zhihu.com/p/689067888https://zhuanlan.zhihu.com/p/689067888DeepSpeed Ulysess&#xff1a;切分Q、K、V序列维度&#xff0c;核心卖点保持通信复杂度低&#xff0c;和GPU数无关&#xff0c;和序列长度呈线性关系。 Ring-Attention&#xff1a;切分Q、K、V序…...

c++重要知识点汇总(不定期更新)

前言 真心希望各位dalao点赞收藏~ 树状数组 作用&#xff1a;高效求出区间前缀和&#xff0c;允许进行修改操作。 举个栗子&#xff1a; 刚开始有8项&#xff0c;分别为1-8。 首先构建二叉树&#xff1a; 1-8/ |/ |/ |/ |/ |1-4 5-8/ | / |/ | / |1-…...

重排序模型解读 mxbai-rerank-base-v2 强大的重排序模型

mxbai-rerank-base-v2 强大的重排序模型 模型介绍benchmark综合评价安装 模型介绍 mxbai-rerank-base-v2 是 Mixedbread 提供的一个强大的重排序模型&#xff0c;旨在提高搜索相关性。该模型支持多语言&#xff0c;特别是在英语和中文方面表现出色。它还支持代码和 SQL 排序&a…...

电子电路:到底该怎么理解电容器的“通交流阻直流”?

电容器“通交流&#xff0c;阻直流”的特性源于其对不同频率电信号的响应差异&#xff0c;具体可通过以下步骤理解&#xff1a; 一、电容器的基本结构与充放电机制 结构&#xff1a;由两个导体极板&#xff08;如金属&#xff09;和中间的绝缘介质组成。充放电过程&#xff1a…...

售前工作.工作流程和工具

第一部分 售前解决方案及技术建议书的制作 售前解决方案编写的标准操作步骤SOP: 售前解决方案写作方法_哔哩哔哩_bilibili 第二部分 投标过程关键活动--商务标技术方案 1. 按项目管理--售前销售项目立项 销售活动和销售线索的跟踪流程和工具 1&#xff09;拿到标书&#xff…...

ORACLE数据库实例报错ORA-00470: LGWR process terminated with error宕机问题分析报告

服务概述 10月21号03:22分&#xff0c;BOSS数据库实例发生异常宕机&#xff1b;工程师及时响应此问题并对此故障原因进行分析及相关建议,详细的故障情况及相关日志、TRACE文件的分析及总结、建议&#xff0c;请参阅本文档。 hzboss数据库实例宕机分析 4.1 数据库层面日志的分…...

深度学习---知识蒸馏(Knowledge Distillation, KD)

一、知识蒸馏的本质与起源 定义&#xff1a; 知识蒸馏是一种模型压缩与迁移技术&#xff0c;通过将复杂高性能的教师模型&#xff08;Teacher Model&#xff09;所学的“知识”迁移到轻量级的学生模型&#xff08;Student Model&#xff09;&#xff0c;使学生模型在参数量和计…...

AI日报 - 2024年5月17日

&#x1f31f; 今日概览 (60秒速览) ▎&#x1f916; 大模型前沿 | OpenAI推出自主编码代理Codex&#xff1b;Google DeepMind发布Gemini驱动的编码代理AlphaEvolve&#xff0c;能设计先进算法&#xff1b;Meta旗舰AI模型Llama 4 Behemoth发布推迟。 Codex能并行处理多任务&…...

OAuth2.0

OAuth2.0 1. 什么是OAuth2.02.OAuth2.0的应用场景3. OAuth2.0基本概念4. 经典OAuth2.0认证流程5. 四种授权模式5.1 授权码模式&#xff08;Authorization Code Grant&#xff09;5.2 隐式授权&#xff08;Implicit Grant&#xff09;5.3 密码模式&#xff08;Resource Owner Pa…...

deepin v23.1 音量自动静音问题解决

有的机器上会有音量自动静音问题, 如果你的电脑上也遇到, 这个问题是 Linux 内核的原因, ubuntu上也可能会遇到相同问题(比如你升级了最新内核6.14), 而我测试得6.8.0的内核是不会自动静音的. Index of /mainline 到上面这个链接(linux 内核的官方链接)下载6.8.0的内核, s…...

Spring Security 集成指南:避免 CORS 跨域问题

Spring Security 集成指南&#xff1a;避免 CORS 跨域问题 在现代 Web 应用开发中&#xff0c;前后端分离架构已成为主流。当我们使用 Spring Security 保护后端 API 时&#xff0c;经常会遇到跨域资源共享&#xff08;CORS&#xff09;问题。这篇文章将详细解析 Spring Secur…...

stack和queue简单模拟实现

stackreverse_iteratorqueuepriority_queue仿函数具体代码 stack Stacks are a type of container adaptor, specifically designed to operate in a LIFO context (last-in first-out), where elements are inserted and extracted only from one end of the container. 上述描…...

2.单链表两数相加(java)

题目描述&#xff1a; 分析&#xff1a; 1.首先创建一个虚拟节点 ListNode dummy new ListNode(-1);再创建一个节点来保存虚拟节点&#xff0c;因为使用虚拟节点来移动&#xff0c;如果不保存&#xff0c;最后就会丢失。保存虚拟节点&#xff1a;ListNode pdummy; 2.进位标志…...

JDBC 的编写步骤及原理详解

一、JDBC 简介 JDBC&#xff08;Java DataBase Connectivity&#xff09;即 Java 数据库连接&#xff0c;是 Java 语言用于操作数据库的一套 API。它为多种关系数据库提供了统一的访问方式&#xff0c;允许 Java 程序与不同类型的数据库&#xff08;如 MySQL、Oracle、SQL Ser…...

AIStarter Windows 版本迎来重磅更新!模型插件工作流上线,支持 Ollama / ComfyUI 等多平台本地部署模型统一管理

如果你正在使用 AIStarter 工具进行本地 AI 模型部署 &#xff0c;那么这条消息对你来说非常重要&#xff01; 在最新推出的 AIStarter Windows 正式版更新中 &#xff0c;官方对整个平台进行了功能重构和性能优化&#xff0c;尤其是新增了「模型插件工作流 」功能&#xff0c…...

卸载和安装JDK

文章目录 卸载JDK安装JDK 卸载JDK 删除java的安装目录删除JAVA_HOME删除path下关于java的目录在cmd命令提示符中输入 java -version 安装JDK 浏览器搜索JDK8 下载电脑对应版本 双击安装JDK 记住安装的路径 配置环境变量 我的电脑 -> 右键 -> 属性 新建系统环境变量…...

【蓝桥杯省赛真题51】python石头运输 第十五届蓝桥杯青少组Python编程省赛真题解析

python石头运输 第十五届蓝桥杯青少年组python比赛省赛真题详细解析 博主推荐 所有考级比赛学习相关资料合集【推荐收藏】1、Python比赛 信息素养大赛Python编程挑战赛 蓝桥杯python选拔赛真题详解 <...

USRP 射频信号 采集 回放 系统

USRP 射频信号采集回放系统 也可以叫做&#xff1a; 利用宽带RF录制和回放系统实现6G技术研究超宽带射频信号采集回放系统使用NI USRP平台实现射频信号录制和回放操作演示USRP也能实现多通道宽带信号流盘回放了&#xff01; 对于最简单的实现方法就是使用LabVIEW进行实现 采…...

产品经理入门(2)产品体验报告

产品体验报告大纲&#xff1a;重点在产品体验——优点。 1.产品概括 可以从各大平台搜产品介绍。 2.市场分析 按照产品方向分析各个指标——包括有效使用时间,市场规模等。 3. 用户分析——对用户通过各项指标画像。 4.产品体验——对各项功能与设计的体验。 5.报告总结...

区块链基本理解

文章目录 前言一、什么是分布式账本(DLT)二、什么是P2P网络?二、共识算法三、密码算法前言 区块链是由一个一个数据块组成的链条,按照时间顺序将数据块逐一链接,通过哈希指针链接,所有的数据块共同维护一份分布式账本(DLT),每个节点(可以理解为一个玩家,一台计算机)都拥…...

数字万用表与指针万用表使用方法及注意事项

在电子测量领域&#xff0c;万用表是极为常用的工具&#xff0c;数字万用表和指针万用表各具特点。熟练掌握它们的使用方法与注意事项&#xff0c;能确保测量的准确性与安全性。下面为您详细介绍&#xff1a; 一 、数字万用表按钮功能 > 进入及退出手动量程模式 每 按 […...

C语言查漏补缺

1、数组初始化时&#xff0c;例如char arr[5] "abcde"&#xff0c;因为字符串中有6个字符&#xff0c;即末尾还有个结束符&#xff0c;但是数组容量为5&#xff0c;所以仅接纳5个字符&#xff0c;末尾的结束符不会被接纳&#xff0c;故而这样的字符数组在直接输出时…...

【JDBC】JDBC常见错误处理方法及驱动的加载

MySQL8中数据库连接的四个参数有两个发生了变化 String driver "com.mysql.cj.jdbc.Driver"; String url "jdbc:mysql://127.0.0.1:3306/mydb?useSSLfalse&useUnicodetrue&characterEncodingutf8&serverTimezoneAsia/Shanghai"; 或者Strin…...

从紫光集团看基本财务分析

PE 46PE 代表投资人对他的期望是它的业绩至少要增长50%才算及格。 但实际业绩 一年不如一年. 所以&#xff0c;这个PE 应该是 业绩倒退了&#xff0c;但是市值还没有掉下去&#xff0c;导致运算的结果处在高PE阶段。 那么随着股价的下跌&#xff0c;这个数字会慢慢变小。 当然…...

软件调试纵横谈-17-win32堆的调试支持

17.Win32堆的调试支持_哔哩哔哩_bilibili 继续边看录像边做实验。 堆上的内存时用size表达的&#xff0c;组成一个链表。 创建一个FreCheck应用 上次看heap&#xff0c;直接使用下载的文件&#xff0c;本次要做实验了&#xff0c;就需要自己动手&#xff0c;搞个VC proje…...

CANoe CAPL TCP DoIP通信问题

目录 问题Class: TcpSocketdemo示例client注释掉配置TCP/IP stack改demo代码过滤IP,与需要的IP建立连接问题 使用CANoe进行DoIP通信时,如果是标准的DoIP节点,可以使用DoIP相关函数进行通信。 以下两篇文章是按照此方式实现的。 十六、DoIP诊断通信 1 (专栏:从零开始搭建…...

理解 plank 自动生成的 copyWithBlock: 方法

当你使用 plank 命令自动生成一个类时 ./plank --objc_class_prefix=PUG --no_runtime --no_recursive user.json分析 在 JSON 目录下, 执行如上命令后, 生成的 PUGUser 对象, 会自带 copyWithBlock: 方法, 这个方法是用来做什么的 ? copyWithBlock: (注意末尾有一个冒号,因…...

FreeCAD源码分析: Transaction实现原理

本文阐述FreeCAD中Transaction的实现原理。 注1&#xff1a;限于研究水平&#xff0c;分析难免不当&#xff0c;欢迎批评指正。 注2&#xff1a;文章内容会不定期更新。 一、概念 Ref. from What is a Transaction? A transaction is a group of operations that have the f…...

黑马点评-用户登录

文章目录 用户登录发送短信验证码注册/登录校验登录 用户登录 发送短信验证码 public Result sendCode(String phone, HttpSession session) {// 1.校验手机号if (RegexUtils.isPhoneInvalid(phone)) {// 2.如果不符合&#xff0c;返回错误信息return Result.fail("手机…...

OpenAI新发布Codex的全面解析

一 . 介绍 人工智能技术的飞速发展正在重塑各行各业的运作方式&#xff0c;特别是在软件工程领域。随着生成式AI模型能力的不断提升&#xff0c;代码生成与软件开发领域正经历一场前所未有的变革。OpenAI作为人工智能领域的领军企业&#xff0c;其每一次技术突破都备受全球科技…...

【AI算法工程师面试指北】ResNet为什么用avgpool结构?

在ResNet&#xff08;残差网络&#xff09;中&#xff0c;最后使用平均池化&#xff08;AvgPool&#xff09;结构主要有以下几个关键原因&#xff0c;这些设计与网络的效率、性能和泛化能力密切相关&#xff1a; 1. 减少参数与计算量&#xff0c;避免过拟合 替代全连接层的冗…...

单调栈和单调队列

一、单调栈 1、使用场景 解决元素左 / 右侧第一个比他大 / 小的数字。 2、原理解释 用栈解决&#xff0c;目标是栈顶存储答案。 以元素左侧第一个比他小为例&#xff1a; &#xff08;1&#xff09;遍历顺序一定是从左向右。 &#xff08;2&#xff09;由于栈顶一定是答…...

DeepSeek-R1 Supervised finetuning and reinforcement learning (SFT + RL)

DeepSeek-R1Supervised finetuning and reinforcement learning (SFT RL) 好啊&#xff0c;我们今天的直播会非常透彻的跟大家系统性的分享一下整个agents AI就大模型智能体系统和应用程序。我们在做开发的时候&#xff0c;或者实际做企业级的产品落地的时候&#xff0c;你必…...

【部署】读取excel批量导入dify的QA知识库

回到目录 【部署】读取excel批量导入dify的QA知识库 0. 背景 dify的知识库支持QA模式&#xff0c;分段效果不算太理想&#xff0c;在我们的项目里面&#xff0c;手工编辑高质量QA文档&#xff0c;没有办法批量导入系统。 项目dify_import&#xff0c;支持读取excel文件批量导…...

Scanner对象

文章目录 Scanner对象基本语法使用next()接受使用nextLine()接受小案例总结 Scanner对象 java给我们提供了一个工具类&#xff0c;我们可以获取用户的输入 java.util.Scanner是java5的新特性&#xff0c;我们可以通过Scanner类来获取用户的输入 基本语法 Scanner s new Sc…...

Java 面向对象详解和JVM底层内存分析

先关注、点赞再看、人生灿烂&#xff01;&#xff01;&#xff01;&#xff08;谢谢&#xff09; 神速熟悉面向对象 表格结构和类结构 我们在现实生活中&#xff0c;思考问题、发现问题、处理问题&#xff0c;往往都会用“表格”作为工具。实际上&#xff0c;“表格思维”就是…...