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

Linux内核——Linux内核体系模式(二)

1 Linux系统的中断机制

Linux内核将中断分为两类:硬件中断和软件中断(异常)。每个中断是由0-255之间的一个数字进行标识。

  • 中断int0-int31(0x00-0x1f)作为异常
  • int32-int255由用户自己设定
    在这里插入图片描述
  • int32-int47对应与8259A中断控制芯片发出的硬件中断请求信号IRQ0-IRQ15,并把程序编程发出的系统调用中断设置为intl28(0x80)。系统调用中断是用户程序使用操作系统资源的唯一界面接口。
    在这里插入图片描述在这里插入图片描述
    1. 系统如何进行中断初始化
  • 内核在head.s程序中使用一个哑中断向量(中断描述符)对中断描述符表IDT中所有256个描述符进行了默认设置(boot/head.s,78)。哑中断向量指向一个默认的“无中断”处理过程(boot/head.s,150)
  • 当发生了一个中断而又没有重新设置过该中断向量就会显示信息“未知中断(Unknown Interrupt)”
  • 可以对所有256项都进行设置可以有效防止出现一般保护性错误(异常13)。否则当设置的IDT少于256项,那么在一个要求的中断所指定的描述符项大于设置的最大描述符项时,CPU就产生一个一般保护出错(异常13)
  • 如果硬件出问题没有吧设备的向量放到数据总线上,此时CPU会从数据总线上读入全1作为向量,将会造成一般保护出错。
  • 异常中断处理过程(int0-int31)都在traps.c的初始化函数中进行了重新设置(kernel/traps.c,181),系统调用中断int128在调度程序初始化函数中进行了重新设置(kernel/sched.c,385)。
  1. 中断和陷阱门的使用:

    • Linux内核使用中断门和陷阱门两种描述符来处理中断,区别在于对EFLAGS寄存器中的IF(中断允许)标志的影响。
    • 中断门会复位IF标志,避免其他中断干扰;陷阱门则不影响IF标志。
  2. 标志寄存器的中断标志管理:

    • Linux内核使用cli和sti指令来控制CPU的中断响应。
    • cli指令清除中断标志,禁止中断;sti指令设置中断标志,允许中断。
    • 这种方法用于保护临界代码区免受中断干扰,避免数据竞争和系统崩溃。

2 Linux的系统调用

系统调用
系统调用是用户程序与操作系统内核之间的接口,用于请求操作系统提供的服务。通常使用函数形式进行调用,可以带有参数,并通过返回值表示执行结果。

1 )系统调用号和错误处理:
每个系统调用都有一个唯一的功能号,这些功能号定义在include/unistd.h文件中。错误的系统调用会返回负值,并把错误类型码存储在全局变量errno中。

2)系统调用的实现机制:
系统调用通过中断0x80进入内核,eax寄存器存放系统调用号,ebx、ecx和edx寄存器用于传递参数。Linux内核中的系统调用处理函数以’sys_'为前缀,例如write系统调用的处理程序是sys_write。

系统调用处理过程

  • 当发出中断调用int 0x80后,system_call程序开始执行,它检查系统调用号的有效性,并从sys_call_table[]数组中调用相应的处理程序。
  • sys_call_table[]数组中的索引对应系统调用的功能号,每个索引处的函数指针指向相应的内核服务程序。
  • 库函数与直接系统调用:
    • 用户程序通常通过库函数间接调用系统调用,但也可以跳过库函数直接执行系统调用。
    • 直接执行系统调用可以使用宏syscalln(),其中n代表参数个数,例如syscall3表示三个参数。
    • 系统调用接口是内核与应用程序交互的唯一途径,它允许应用程序利用内核提供的服务来访问系统硬件资源。

(八股回答)

在Linux系统中,系统调用的处理过程是一个复杂的机制,涉及用户空间和内核空间之间的交互。

1. 触发系统调用 当用户程序需要操作系统提供的服务时,它会通过库函数(如C标准库中的函数)或直接通过内嵌汇编语句来触发一个系统调用。这通常涉及执行一个特殊的汇编指令(如int$0x80),该指令会产生一个异常,使得控制权转移到内核空间。

2. 传递系统调用号和参数 在执行系统调用指令之前,程序会将系统调用号存储在eax寄存器中,将任何需要的参数存储在ebxecxedx寄存器中。这些参数是系统调用可能需要的输入数据。

3. 进入内核空间 当CPU执行int $0x80指令时,它会切换到内核模式并跳转到异常处理程序的地址。在Linux中,这个处理程序是system_call函数,它位于kernel/system_calls文件中。

4. 系统调用分发 system_call函数首先检查eax寄存器中的系统调用号是否有效。然后,它使用系统调用号作为索引,从sys_call_table数组中查找相应的内核函数指针,并间接调用该函数。sys_call_table是一个包含所有系统调用处理函数指针的数组。

5. 执行系统调用处理程序 一旦找到并调用了相应的内核函数,它将执行所需的操作,可能会访问硬件设备、管理文件系统或执行其他内核级别的任务。

6. 返回用户空间 系统调用处理程序执行完毕后,它将返回值存储在eax寄存器中,并执行iret指令返回到用户空间。如果在系统调用过程中发生错误,一个负值会被存储在eax中,而错误号会被存储在errno全局变量中供应用程序检查。

7. 获取系统调用结果 一旦控制权返回给用户程序,它可以检查eax寄存器中的返回值以确定系统调用的结果。如果返回值是正数,表示系统调用成功;如果是负数,则表示系统调用失败,程序可以查看errno以获取错误信息。

3 Linux进程控制

  1. 进程调度
    Linux操作系统采用基于优先级的进程调度算法,常见的如完全公平队列(Completely Fair Scheduler, CFS)。CFS的目标是确保每个进程获得公平的CPU时间,同时考虑到进程的优先级。

    • 进程优先级:每个进程都有一个优先级,这个优先级决定了它在CPU上执行的时间。高优先级的进程会获得更多的CPU时间。
    • 时间片:CFS为每个进程分配一个运行的时间片,这个时间片基于进程的优先级。当一个进程的时间片用完后,它会被放到运行队列的末尾。
  2. 分时技术
    分时技术是一种操作系统管理多个进程的方法,使得每个进程都能在有限的时间内获得CPU的使用权。

    • 时间片轮转:操作系统为每个进程分配一个小的时间片(通常是几十毫秒),在这个时间片内,进程可以执行指令。时间片结束后,即使进程没有完成执行,也会被挂起,操作系统接着运行下一个进程的时间片。
    • 抢占式多任务:如果一个更高优先级的进程需要CPU,当前运行的低优先级进程会被抢占,即被中断并移动到运行队列的末尾,而高优先级进程将获得CPU
  3. 多级反馈队列(MLFQ)
    Linux还采用了多级反馈队列(Multi-Level Feedback Queue, MLFQ)来进一步优化进程调度。

    • 多级队列:进程根据其行为和优先级被分类到不同的队列中。例如,交互式进程可能被放在一个更高的优先级队列,而批处理进程则可能被放在一个较低的优先级队列。
    • 反馈机制:进程的行为(如CPU使用时间、阻塞频率等)会影响其在队列中的优先级。例如,经常使用CPU的进程可能会被降低优先级,而不经常使用的进程则可能被提升优先级。
  4. 用户控制与系统配置
    系统管理员可以调整系统的各种参数来控制进程调度的行为,以适应特定的工作负载和性能要求。

    • 调整优先级:可以通过nice值来调整进程的优先级,影响其在CPU上的运行时间。
    • 配置调度器:Linux允许管理员选择不同的进程调度器,或者调整现有调度器的参数,以优化特定类型的应用程序或工作负载。
  5. 任务数据结构
    进程表项是一个task_struct任务结构指针。
    在这里插入图片描述
    在这里插入图片描述

  6. 进程运行状态
    在这里插入图片描述

  7. 进程初始化与创建进程
    【Linux】Linux进程的创建与管理
    Linux系统初始化进程及文件(带命令)

相关文章:

Linux内核——Linux内核体系模式(二)

1 Linux系统的中断机制 Linux内核将中断分为两类:硬件中断和软件中断(异常)。每个中断是由0-255之间的一个数字进行标识。 中断int0-int31(0x00-0x1f)作为异常int32-int255由用户自己设定 int32-int47对应与8259A中断…...

Spring MVC的高级功能——异常处理(一)简单异常处理器

一、HandlerExceptionResolver接口 如果希望对Spring MVC中所有异常进行统一处理,可以使用Spring MVC提供的异常处理器HandlerExceptionResolver接口。Spring MVC内部提供了HandlerExceptionResolver的实现类SimpleMappingExceptionResolver。它实现了简单的异常处理…...

【面试干货】Static关键字的用法详解

【面试干货】Static关键字的用法详解 1、Static修饰内部类2、Static修饰方法3、Static修饰变量4、Static修饰代码块5、总结 💖The Begin💖点点关注,收藏不迷路💖 在Java编程语言中,static是一个关键字,它可…...

软件工程实验

实验环境和需求 用户可以对相片进行按类别管理,用户可以设定不同的类别,然后上传照片到相应的类别中,并能进行照片的删除,注释 运行 运行并访问 localhost 8090,图片在数据库中的信息是D:/upgrade 后面的内容 se…...

对于复杂的网页布局,如多列布局和网格布局,CSS 有哪些最佳实践和技巧?

对于复杂的网页布局,如多列布局和网格布局,以下是一些CSS的最佳实践和技巧: 使用Flexbox或CSS Grid布局:Flexbox和CSS Grid是两个强大的CSS布局模型,可用于实现复杂的网页布局。Flexbox适用于单行或单列布局&#xff0…...

Spring Boot中集成Redis实现缓存功能

Spring Boot中集成Redis实现缓存功能 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨如何在Spring Boot应用程序中集成Redis,实现…...

arco disign vue 日期组件的样式穿透

问题描述: 对日期组件进行样式穿透. 原因分析: 如图,日期组件被展开时它默认将dom元素挂载到body下, 我们的页面在idroot的div 里层, 里层想要穿透外层是万万行不通的. 解决问题: 其实官网提供了参数,但是并没有提供例子, 只能自己摸索着过河. 对于日期组件穿透样式,我们能…...

【深度学习】pytorch训练中的一个大坑

使用的命令:iostat -x 5 可以看到 ssd的利用率已经满了。 之前在的数据集放在了 hdd上,训练结果特别慢。 所以我把它移动到了ssd上,然后训练参数用的 resume, 但是!!!!它把历史记住…...

python全局解释器锁(GIL)

文章目录 1.cpu工作方式2.python全局解释器锁与多线程3.其他语言的多线程4.如何解决假的多线程 1.cpu工作方式 先来先服务(First Come, First Served,FCFS): 最简单的调度算法,按照作业或进程到达的顺序依次执行。没有…...

无人机的起源

无人机起源于20世纪初的早期实验阶段,并随着技术进步逐步发展。无人机,作为现代科技领域中的一项重要创新,已经在全球范围内展现出其巨大的潜力和应用价值。 无人机的历史可以追溯到1917年,美国人艾德温.奥斯特林发明了“飞行训练…...

专题六:Spring源码之初始化容器BeanFactory

上一篇咱们通过一个例子介绍初始化容器上下文相关内容,并通过两个示例代码看到了Spring在设计阶段为我预留的扩展点,和我们应该如何利用这两个扩展点在Spring初始化容器上下文阶段为我们提供服务。这一篇咱们接着往下看。 老这样子下回到refresh方法上来…...

缓存双写一致性(笔记)

缓存更新方案 旁路缓存模式 这是比较多的 旁路缓存模式:缓存有就返回,没有数据库查询,放入缓存返回。 还有些常用缓存策略 读穿透模式 读穿透和旁路很相似,程序不需要关注从哪里读取数据,它只需要从缓存查询数据。…...

运动馆预约管理系统设计

设计一个运动馆预约管理系统,需要考虑到用户需求、系统功能、技术实现和用户体验等多个方面。以下是一个基本的设计框架: 1. 系统目标 提供便捷的运动场地预约服务。 实现运动馆资源的有效管理和利用。 支持在线支付,提高交易效率。 提供数…...

第五届计算机、大数据与人工智能国际会议(ICCBD+AI 2024)

随着科技的飞速发展,计算机、大数据和人工智能等前沿技术已成为推动社会进步的重要力量。为了加强这一领域的学术交流与合作,促进技术创新与发展,第五届计算机、大数据与人工智能国际会议(ICCBDAI 2024)将于2024年11月…...

高效的向量搜索算法——分层可导航小世界图(HNSW)

最近在接触大模型相关内容,发现一种高效的向量搜索算法HNSW,这里做一下记录。 在之前自己也接触过一段时间的复杂网络(网络科学),没想到,将网络科学的思想引入到向量搜索算法中,可以产生令人眼前…...

【MySQL备份】Percona XtraBackup全量备份实战篇

目录 1. 前言 2.准备工作 2.1.环境信息 2.2.创建备份目录 2.3.配置/etc/my.cnf文件 2.4.授予root用户BACKUP_ADMIN权限 3.全量备份 4.准备备份 5.数据恢复 6.总结 "实战演练:利用Percona XtraBackup执行MySQL全量备份操作详解" 1. 前言 本文…...

港口危险货物安全管理人员考试题库(含答案)

一、单选题 1.化学品安全标签内容中警示词有( )种分别进行危害程度的警示。 A、3 B、4 C、5 参考答案:A 2.运输放射性物品,应当使用( )的放射性物品运输包装容器(以下简称运输容器)。 A、专业 B、专用 C、统一 D、定制 参考答案:B 3.库区仪表及计算机监控管理系…...

什么是 JVM( Java 虚拟机),它在 Java 程序执行中扮演什么角色?

JVM,全称Java Virtual Machine,中文译作“Java虚拟机”,它是运行Java程序的软件环境,也是Java语言的核心部分之一。 想象一下,如果你是一位环球旅行家,每到一个新的国家,都需要学习当地的语言才…...

Python容器 之 列表--下标和切片

列表的切片 得到是 新的列表字符串的切片 得到是 新的字符串 如果下标 不存在会报错 list1 [1, 3.14, "hello", False] print(list1)# 获取 列表中 第一个数据 print(list1[0]) # 1# 获取列表中的最后一个数据 print(list1[-1]) # [False]# 获取中间两个数 即 3.1…...

Docker 运行Nacos无法访问地址解决方法

参考我的上一篇文章去配置好镜像加速器,镜像加速器不是配置越多越好,重试次数多了会失败 Dockerhub无法拉取镜像配置阿里镜像加速器-CSDN博客 错误的尝试 最开始按照网上的方式去配了一大堆,发现下不下来。 镜像源地址:https:…...

Stable Diffusion 商业变现与绘画大模型多场景实战

前言 ai绘画软件Stable Diffusion是一种通过模拟扩散过程,将噪声图像转化为目标图像的文生图模型,具有较强的稳定性和可控性,可以将文本信息自动转换成高质量、高分辨率且视觉效果良好、多样化的图像。在日常工作中,ai绘画软件St…...

[CocosCreator]CocosCreator网络通信:https + websocket + protobuf

环境 cocos creator版本:3.8.0 开发语言:ts 操作系统:windows http部分 直接使用 XMLHttpRequest 创建http请求 // _getHttpUrl 方法自己写字符串拼接public httpPostJsonRequest(uri: string, headData: any, data: any, cb: Function…...

并发控制-事务的调度、数据不一致问题(更新丢失、脏读、不可重复读)、非串行调度的的可串行化

一、引言 1、数据库管理系统DBMS的事务处理技术实现的另一个主要功能部分是并发控制机制。并发控制机制完成的功能就是对并发执行的事务进行控制,保证事务的隔离性,从而进一步保持数据库的一致性。 2、事务的并发控制就是对并发执行的不同事务中的数据…...

Golang | Leetcode Golang题解之第202题快乐数

题目: 题解: func isHappy(n int) bool {cycle : map[int]bool{4: true, 6: true, 37: true, 58: true, 89: true, 145: true, 42: true, 20: true}for n ! 1 && !cycle[n] {n step(n)}return n 1 }func step(n int) int {sum : 0for n > …...

算法:哈希表

目录 题目一:两数之和 题目二:判定是否互为字符重排 题目三:存在重复元素I 题目四:存在重复元素II 题目五:字母异位词分组 关于哈希表 哈希表就是存储数据的容器 哈希表的优势是:快速查找某个元素O(…...

自然语言处理基本知识(1)

一 分词基础 NLP:搭建了计算机语言和人类语言之间的转换 1 精确分词,试图将句子最精确的分开,适合文本分析 >>> import jieba >>> content "工信处女干事每月经过下属科室" >>> jieba.cut(content,cut_all …...

Java中的数据加密与安全传输

Java中的数据加密与安全传输 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来探讨一下在Java中如何实现数据加密与安全传输。 随着互联网的普及和网络…...

UG NX二次开发(C++)-根据草图创建拉伸特征(UFun+NXOpen)

1、前言 UG NX是基于特征的三维建模软件,其中拉伸特征是一个很重要的特征,有读者问如何根据草图创建拉伸特征,我在这篇博客中讲述一下草图创建拉伸特征的UG NX二次开发方法,感兴趣的可以加入QQ群:749492565,或者在评论区留言。 2、在UG NX中创建草图,然后创建拉伸特征 …...

TS_开发一个项目

目录 一、编译一个TS文件 1.安装TypeScript 2.创建TS文件 3.编译文件 4.用Webpack打包TS ①下载依赖 ②创建文件 ③启动项目 TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或…...

2024年华为OD机试真题-传递悄悄话 -C++-OD统一考试(C卷D卷)

2024年OD统一考试(D卷)完整题库:华为OD机试2024年最新题库(Python、JAVA、C++合集) 题目描述: 给定一个二叉树,每个节点上站着一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。 初始时,根节点所在位置的人有一个悄悄话想要传递给其他人,求二叉树所有节…...

eclipse基础工程配置( tomcat配置JRE环境)

文章目录 I eclipse1.1 工程配置1.2 编译工程1.3 添加 JRE for the project build pathII tomcat配置JRE环境2.1 Eclipse编辑tomcat运行环境(Mac版本)2.2 Eclipse编辑tomcat运行环境(windows版本)2.3 通过tomcat7W.exe配置运行环境(windows系统)I eclipse 1.1 工程配置 …...

Spring Boot 学习第八天:AOP代理机制对性能的影响

1 概述 在讨论动态代理机制时,一个不可避免的话题是性能。无论采用JDK动态代理还是CGLIB动态代理,本质上都是在原有目标对象上进行了封装和转换,这个过程需要消耗资源和性能。而JDK和CGLIB动态代理的内部实现过程本身也存在很大差异。下面将讨…...

Linux[高级管理]——Squid代理服务器的部署和应用(传统模式详解)

🏡作者主页:点击! 👨‍💻Linux高级管理专栏:点击! ⏰️创作时间:2024年6月24日11点11分 🀄️文章质量:95分 目录 ————前言———— Squid功能 Squ…...

使用Vue 2 + Element UI搭建后台管理系统框架实战教程

后台管理系统作为企业内部的核心业务平台,其界面的易用性和功能性至关重要。Vue 2作为一个成熟的前端框架,以其轻量级和高效著称,而Element UI则是一套专为桌面端设计的Vue 2组件库,它提供了丰富的UI元素和组件,大大简…...

Carla安装教程

1.前言 对于从事自动驾驶的小伙伴而言,或多或少应该都接触过一些的仿真软件,今天要给大家介绍的这款仿真软件应该算的上是业界非常有名的一款仿真软件——carla。 目前carla的学习教程也还是蛮多的,但是写的都不是很全,在配置的…...

【PYG】处理Cora数据集分类任务使用的几个函数log_softmax,nll_loss和argmax

文章目录 log_softmax解释作用示例解释输出 nll_loss解释具体操作示例代码解释 nll_losslog_softmaxcross_entropy解释代码示例解释 argmax()解释作用示例代码解释示例输出 log_softmax F.log_softmax(x, dim1) 是 PyTorch 中的一个函数,用于对输入张量 x 应用 log…...

Labview绘制柱状图

废话不多说,直接上图 我喜欢用NXG风格,这里我个人选的是xy图。 点击箭头指的地方 选择直方图 插值选择第一个 直方图类型我选的是第二个效果如图。 程序部分如图。 最后吐槽一句,现在看CSDN好多文章都要收费了,哪怕一些简单的入…...

使用Python实现一个简单的密码管理器

文章目录 一、项目概述二、实现步骤2.1 安装必要的库2.2 设计密码数据结构2.3 实现密码加密和解密2.4 实现主要功能2.4.1 添加新密码2.4.2 显示所有密码2.4.3 查找特定密码2.4.4 更新密码2.4.5 删除密码 2.5 实现用户界面 三、代码示例3.1 加密和解密示例3.2 用户界面示例 在现…...

【云原生】服务网格(Istio)如何简化微服务通信

🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、微服务架构的兴起 2、Istio:服务网格的佼…...

spring boot 整合 sentinel

注意版本问题 我这是jdk11 、spring boot 2.7.15 、 alibaba-sentinel 2.1.2.RELEASE <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.15</version><…...

蜜雪冰城小程序逆向

app和小程序算法一样 小程序是wasm...

pbootcms提交留言成功后跳转到指定的网址

pbootcms在线留言表单提交成功后&#xff0c;如何跳转到指定的网址&#xff0c;默认提交留言后留在原来的页面&#xff0c;如果提交后需要跳转到指定网址&#xff0c;我们需要对文件进行修改。首先我们打开/core-/function/helper.php文件找到第162行左右代码&#xff1a; ech…...

16、matlab求导、求偏导、求定积分、不定积分、数值积分和数值二重积分

0&#xff09;前言 在MATLAB中&#xff0c;对函数进行不同形式的求导、求积分操作是非常常见的需求&#xff0c;在工程、科学等领域中经常会用到。以下是关于求导、求积分以及数值积分的简介&#xff1a; 求导&#xff1a;在MATLAB中可以使用diff函数对函数进行求导操作。diff…...

MySQL 9.0创新版发布!功能又进化了!

作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复&#xff0c; 安装迁移&#xff0c;性能优化、故障…...

后端系统的安全性

后端系统的安全性 后端系统的安全性是任何Web应用或服务的核心组成部分&#xff0c;它涉及保护数据、用户隐私以及系统免受恶意攻击。以下是后端安全的一些关键点&#xff1a; 认证和授权&#xff1a;确保只有经过身份验证的用户才能访问特定资源。这通常包括使用用户名/密码…...

.net 百度翻译接口核心类

百度翻译api &#xff1a;http://developer.baidu.com/wiki/index.php?title帮助文档首页/百度翻译/翻译AP 核心翻译类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Newtonsoft.Json; using System.Net; using System.I…...

安卓应用开发学习:通过腾讯地图SDK实现定位功能

一、引言 这几天有些忙&#xff0c;耽误了写日志&#xff0c;但我的学习始终没有落下&#xff0c;有空我就会研究《 Android App 开发进阶与项目实战》一书中定位导航方面的内容。在我的手机上先后实现了“获取经纬度及地理位置描述信息”和“获取导航卫星信息”功能后&#x…...

iptable精讲

SNAT策略 SNAT策略的典型应用环境 局域网主机共享单个公网IP地址接入Internet SNAT策略的原理 源地址转换&#xff0c;Source Network Address Translantion 修改数据包的源地址 部署SNAT策略 1.准备二台最小化虚拟机修改主机名 主机名&#xff1a;gw 主机名&#xff1…...

2024 年如何构建 AI 软件

人工智能 (AI) 是当今 IT 行业最热门的话题&#xff0c;受到大型科技公司、大型企业和投资者的青睐。如果有人不参与 AI&#xff0c;他们就出局了。虽然“AI 泡沫”一词尚未公开使用&#xff0c;但街上的每个人都可能听说过 AI 将取代我们的工作&#xff08;可能不会&#xff0…...

Python实战,桌面小游戏,剪刀石头布

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程: Python项目开发实战_桌面小游戏-剪刀石头布_编程案例解析实例详解课程教程.pdf 创建一个基于Python的桌面小游戏“剪刀石头布”是一个很好的编程实践…...

力扣刷题练习 七【34. 在排序数组中查找元素的第一个和最后一个位置】

前言 数组类型题目练习。 练习题 七【34. 在排序数组中查找元素的第一个和最后一个位置】 一、题目阅读 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&…...

Redis主从复制、哨兵以及Cluster集群

一、redis的高可用 1、高可用的概念 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务&#xff08;99.9%、99.99%、99.999%等等&#xff09;。 但是在Redis语境中&#xff0c;高可用的含义似乎要宽泛一些…...

从 ClickHouse 到 Apache Doris:快成物流的数智化货运应用实践

导读&#xff1a;随着快成物流的大宗商品产业链的不断发展&#xff0c;货运轨迹规划和实时数据分析的需求日益迫切&#xff0c;为了保障数据报表更新、用户画像圈选与物流轨迹实时更新等大数据核心系统性能&#xff0c;快成物流引入 Apache Doris 实时数仓升级了大数据算法平台…...

Go高级库存照片源码v5.3

GoStock – 免费和付费库存照片脚本这是一个免费和付费共享高质量库存照片的平台,用户可以上传照片与整个社区和访客分享,并可以通过 PayPal 接收捐款。此外,用户还可以点赞、评论、分享和收藏您最喜欢的照片。 下载 特征: 使用Laravel 10构建订阅系统Stripe 连接渐进式网页…...

【JavaEE精炼宝库】文件操作(1)——基本知识 | 操作文件——打开实用性编程的大门

目录 一、文件的基本知识1.1 文件的基本概念&#xff1a;1.2 树型结构组织和目录&#xff1a;1.3 文件路径&#xff08;Path&#xff09;&#xff1a;1.4 二进制文件 VS 文本文件&#xff1a;1.5 其它&#xff1a; 二、Java 操作文件2.1 方法说明&#xff1a;2.2 使用演示&…...

字节跳动 AML 前端 一面

时长55mins 1. 自我介绍 1. 怎么接触的前端&#xff1f;学了多久&#xff1f; 1. 问项目 1. 为什么要做组件库&#xff1f; 1. 问到我的组件库和AntD之类的有什么区别&#xff0c;我说区别可能就是我的功能更少&#xff1f;hhhh 1. 设计一个组件的思路&#x…...

Sylvester矩阵、子结式、辗转相除法的三者关系(第二部分)

【三者的关系】 首先&#xff0c;辗转相除法可以通过Sylvester矩阵进行&#xff0c;过程如下&#xff08;以 m 8 、 l 7 m 8、l 7 m8、l7为例子&#xff09;。 首先调整矩阵中 a a a系数到最后面几行&#xff0c;如下所示&#xff1a; S ( a 8 a 7 a 6 a 5 a 4 a 3 a 2 …...

服务器感染了. rmallox勒索病毒,如何确保数据文件完整恢复?

导言&#xff1a; 近年来&#xff0c;随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显。其中&#xff0c;勒索病毒作为一种严重的网络威胁&#xff0c;对个人和企业数据造成了巨大的威胁。本文将重点介绍.rmallox勒索病毒的特点、传播途径以及应对策略&#xff0c;旨…...

网络模型—BIO、NIO、IO多路复用、信号驱动IO、异步IO

一、用户空间和内核空间 以Linux系统为例&#xff0c;ubuntu和CentOS是Linux的两种比较常见的发行版&#xff0c;任何Linux发行版&#xff0c;其系统内核都是Linux。我们在发行版上操作应用&#xff0c;如Redis、Mysql等其实是无法直接执行访问计算机硬件(如cpu&#xff0c;内存…...

解锁Android高效数据传输的秘钥 - Parcelable剖析

作为Android开发者&#xff0c;我们经常需要在不同的组件(Activity、Service等)之间传输数据。这里的"传输"往往不仅仅是简单的数据复制&#xff0c;还可能涉及跨进程的内存复制操作。当传输的数据量较大时&#xff0c;这种操作可能会带来严重的性能问题。而Android系…...

SpringBoot特性

文章目录 SpringBoot1 概述2 核心特性 SpringBoot 1 概述 SpringBoot是一个Java软件开发框架&#xff08;脚手架&#xff09;&#xff1b;设计目的&#xff1a;简化项目的初始搭建以及开发过程&#xff0c;该框架机制使开发人员不再需要大量的手动依赖管理。 2 核心特性 起步…...

【CSharp】无符号短整型数组ushort[]转化为IntPtr

【CSharp】无符号短整型数组ushort[]转化为IntPtr 1.背景2. 代码1.背景 我们的相机或者探测器是一个感光的传感器,一般将光波打到闪烁体上,闪烁体发光后进行光电转换得到电信号,您可以这么简单的去理解。 这里就设计相机传感器上的AD转换器(模拟信号->数字信号)的bit数…...