Linux Kernel 2
地址空间(Address Space)
一、物理地址空间(Physical Address Space)
物理地址空间 是指 RAM 和设备内存 在系统内存总线上所呈现的地址布局。
- 举例:在典型的 32 32 32 位 Intel 架构中,
- RAM(主内存)通常被映射在低地址段;
- 显卡内存或其他外设地址被映射在高地址段。
📌 解释:
- 所谓“物理地址”是指 CPU 实际访问主板、内存条等硬件资源的地址;
- 它由硬件总线决定,不受程序控制。
二、虚拟地址空间(Virtual Address Space)
虚拟地址空间(有时简称为“地址空间”)是指当系统开启虚拟内存管理模块(如分页机制、保护模式)后,CPU 所看到的地址空间。
- 这时,每个地址都是一个“虚拟地址”,必须通过页表(Page Table)映射到物理内存地址。
- 内核负责建立这种虚拟地址到物理地址的映射关系。
📌 常用术语解释:
- “分页开启”也叫做 Paging Enabled \text{Paging Enabled} Paging Enabled,即启用了 MMU;
- 操作系统通过页表控制不同虚拟地址段的访问权限和映射目标。
三、进程地址空间 vs 内核地址空间
1. 进程空间(Process Address Space)
这是指与每个用户态进程相关联的虚拟地址空间:
- 通常从地址 0 0 0 开始,呈现为一块连续内存区域;
- 包括代码段(text)、数据段(data)、堆(heap)和栈(stack)等;
- 不同进程之间的地址空间互相独立,彼此不可见。
2. 内核空间(Kernel Address Space)
这是内核模式代码看到的地址空间:
- 包含内核本身的代码和数据、驱动模块、内核栈等;
- 有更高的访问权限;
- 用户态程序不能直接访问这一空间。
四、用户空间与内核空间共享虚拟地址空间
在大多数操作系统中,用户空间和内核空间是共享同一个虚拟地址空间的:
- 典型做法是:
- 用户空间占据虚拟地址空间的低地址部分;
- 内核空间占据虚拟地址空间的高地址部分;
- 为了防止用户程序访问内核区域,内核会在页表中设定访问权限。
📌 示意公式:
- 假设虚拟地址空间为 4 4 4 GB:
- 0 x 00000000 0x00000000 0x00000000 ~ 0 x B F F F F F F F 0xBFFFFFFF 0xBFFFFFFF 为用户空间;
- 0 x C 0000000 0xC0000000 0xC0000000 ~ 0 x F F F F F F F F 0xFFFFFFFF 0xFFFFFFFF 为内核空间(如 Linux 通常采用的布局)。
执行上下文(Execution Contexts)
操作系统内核最重要的任务之一是处理中断(Interrupt),而且必须非常高效地处理。因此,内核为此引入了一种特殊的执行上下文(execution context)。
一、中断上下文(Interrupt Context)
当内核因为硬件或软件中断而执行特定代码时,我们称之为运行在中断上下文中。
-
包括中断处理函数(Interrupt Handler)及其相关机制;
-
所有中断上下文的代码都运行在 内核态(Kernel Mode);
-
存在一些限制,内核开发者必须注意:
❌ 不能调用阻塞(blocking)函数,比如
sleep()
或wait_event()
❌ 不能直接访问用户空间内存
📌 解释:
- 中断处理必须尽快完成,任何阻塞操作都会导致系统性能下降甚至死锁;
- 这是非抢占性环境non-preemptible中关键的执行上下文。
二、进程上下文(Process Context)
与中断上下文相对的是进程上下文。
- 当内核为某个进程或线程服务时,就处于进程上下文中;
- 可以运行在:
- 用户态(执行应用代码)
- 内核态(执行系统调用)
📌 好处:
- 在进程上下文中可以执行阻塞操作;
- 也可以安全访问用户空间数据。
多任务(Multitasking)
多任务处理指的是操作系统“同时”执行多个程序的能力。
- 实际上是通过快速切换context switch在多个进程之间实现的。
1. 协作式多任务(Cooperative Multitasking)
- 每个程序主动将 CPU 控制权交还给操作系统;
- 如果程序不主动释放,系统就无法切换任务。
❗ 容易出现“独占 CPU”的问题。
2. 抢占式多任务(Preemptive Multitasking)
- 内核设定时间片time slice限制每个进程的运行时间;
- 例如一个进程最多运行 100 m s 100ms 100ms,超时后会被强制切换。
📌 更加公平,不会因一个程序出问题而拖慢整个系统。
抢占式内核(Preemptive Kernel)
抢占式多任务(preemptive multitasking) ≠ 抢占式内核(preemptive kernel)
- 抢占式内核指的是:即便处于内核态,运行中的进程也可以被中断并切换;
- 而某些操作系统虽然支持抢占式多任务,但其内核本身却是不可抢占的。
✅ 抢占式内核提高系统响应性
❌ 但增加了同步复杂度,如锁管理
可分页的内核内存(Pageable Kernel Memory)
- 如果内核支持将某些内核空间的数据(如代码段、数据段、内核堆栈等)换出到磁盘,则称之为支持分页内核内存(pageable kernel memory)。
📌 优点:节省 RAM
📌 缺点:换入换出开销,必须避免在中断上下文中访问
内核栈(Kernel Stack)
每个进程在内核态下执行时,会使用一个私有的内核栈。
-
该栈用于:
- 保存函数调用链
- 存储内核函数中的局部变量
-
大小通常很小: 4 K B 4KB 4KB ~ 12 K B 12KB 12KB(依平台架构而异)
⚠️ 避免:
- 在栈上分配大型数据结构
- 递归调用层级太深
可移植性(Portability)
为了让操作系统能在不同硬件平台上运行,现代内核采用以下顶层结构设计:
-
架构相关代码(Architecture-specific)
- 包含平台相关的 C 和汇编代码(如中断向量表、启动流程等)
-
架构无关代码(Architecture-independent)
- 包括:
- 内核核心(Kernel Core):调度器、内存管理、IPC 等子系统
- 设备驱动(Device Drivers)
- 包括:
📌 优点:
- 实现代码复用
- 同一套内核可以在多种硬件上运行(如 x86、ARM、RISC-V 等)
非对称多处理Asymmetric MultiProcessing(ASMP)与对称多处理Symmetric MultiProcessing(SMP)
现代操作系统内核在多核处理器环境下运行时,通常采用以下两种调度和执行架构:
一、ASMP(Asymmetric MultiProcessing,非对称多处理)
在 非对称多处理(ASMP) 模式中:
- 一个处理器(核心)专门用于运行内核代码(如系统调用、驱动中断处理);
- 其余处理器仅用于运行用户空间程序。
📌 例子:
- 核心 0:专门运行内核任务
- 核心 1、2、3:只运行用户进程
✅ 优点:
- 实现简单:没有并发内核执行,不需担心并发访问内存的冲突问题。
❌ 缺点:
- 内核吞吐量不随核心数扩展:
- 所有系统调用、中断处理等都压在一个内核核心上;
- 这对依赖频繁内核交互的程序是个性能瓶颈。
📌 适用场景:
- 主要用于一些特定用途系统(如嵌入式或科学计算应用),这些系统内核调用较少,用户程序计算密集。
二、SMP(Symmetric MultiProcessing,对称多处理)
在 对称多处理(SMP) 模式中:
- 所有核心都可以运行内核代码或用户代码;
- 任意一个核心都可以处理系统调用、中断或调度任务。
📌 更加灵活、高效,可实现多核并行加速内核功能。
❗ 实现难点:
- 存在竞争条件(Race Conditions):
- 当多个核心同时运行内核函数并访问相同的内存区域,可能会导致冲突或数据破坏;
- 因此必须使用同步原语Synchronization Primitives来保护关键区域。
🛠 常用的同步机制包括:
- 自旋锁(Spin Locks)
- 互斥锁(Mutexes)
- 原子操作(Atomic Operations)
📌 关键公式:
若多个处理器访问临界区:Only one CPU can execute critical section at a time \text{Only one CPU can execute critical section at a time} Only one CPU can execute critical section at a time
CPU 可扩展性(CPU Scalability)
CPU 可扩展性是指:当系统中处理器核心数量增加时,整体性能是否也能线性或接近线性增长。
📈 理想情况下, n n n 个核心应该能提供接近 n × n \times n× 单核性能。
一、尽量使用无锁算法(Lock-Free Algorithms)
无锁算法是指在多核环境下,不依赖传统加锁机制(如互斥锁)的并发控制算法。
✅ 优点:
- 避免了线程之间的锁竞争;
- 避免了死锁和优先级反转等问题;
- 提高了在多核下的并发吞吐量。
📌 常用技术:
- 原子操作(如 compare_and_swap \text{compare\_and\_swap} compare_and_swap)
- 循环 CAS(spin CAS loops)
- 内存屏障(memory barriers)
二、热点区域使用细粒度锁(Fine-Grained Locking)
在高并发访问的临界区域(high contention areas)中,使用更细粒度的锁可以提升扩展性。
对比:
锁粒度类型 | 描述 | 扩展性影响 |
---|---|---|
粗粒度锁 | 用一个锁保护多个资源 | ❌ 容易产生锁竞争,影响性能 |
细粒度锁 | 每个资源或资源组使用独立锁 | ✅ 并发性更高,锁冲突减少 |
📌 示例:
- 使用 per-CPU 数据结构,减少跨核心访问;
- 将一个全局队列拆分为多个局部队列,每个队列单独加锁。
三、关注算法复杂度(Algorithm Complexity)
即使没有锁竞争,如果算法本身的复杂度太高,也会成为扩展性能的瓶颈。
建议:
- 优化常用路径(hot path)的时间复杂度;
- 避免在线程间频繁拷贝数据或创建临时结构;
- 使用更适合并行的算法(例如基于数组的并行查找替代链表遍历)。
📌 记住:
O(1) ≫ O(log N) ≫ O(N) \text{O(1)} \gg \text{O(log N)} \gg \text{O(N)} O(1)≫O(log N)≫O(N)
💡 良好的 CPU 可扩展性 = 更低锁冲突 + 更短临界区 + 更高并发度 + 更优算法设计
相关文章:
Linux Kernel 2
地址空间(Address Space) 一、物理地址空间(Physical Address Space) 物理地址空间 是指 RAM 和设备内存 在系统内存总线上所呈现的地址布局。 举例:在典型的 32 32 32 位 Intel 架构中, RAM(…...
二.springBoot项目集成ElasticSearch及使用
二.springBoot项目集成ElasticSearch及使用 1.依赖引入2.ElasticSearch常见用法 1.依赖引入 <!--elasticsearch搜索引擎--> <!--高版本7.0后TransportClient已被淘汰,用rest-high-level-client代替--> <dependency><groupId>org.elasticse…...
从三次方程到复平面:复数概念的奇妙演进(一)
注:本文为 “复数 | 历史 / 演进” 相关文章合辑。 因 csdn 篇幅限制分篇连载,此为第一篇。 生料,不同的文章不同的点。 机翻,未校。 Reflections on the History of Complex Numbers 复数的历史回顾 The first occurrence o…...
Day52 | 6. Z 字形变换、8. 字符串转换整数 (atoi)、22. 括号生成、38. 外观数列
6. Z 字形变换 题目链接:6. Z 字形变换 - 力扣(LeetCode) 题目难度:中等 代码: class Solution {public String convert(String s, int numRows) {if(numRows<2) return s;List<StringBuilder> rowsnew A…...
每日OJ_牛客_ruby和薯条_排序+二分/滑动窗口_C++_Java
目录 ruby和薯条_排序二分/滑动窗口 题目解析 C代码 Java代码 ruby和薯条_排序二分/滑动窗口 ruby和薯条 描述: ruby很喜欢吃薯条。 有一天,她拿出了n根薯条。第i根薯条的长度为ai。 ruby认为,若两根薯条的长度之差在l和r之间ÿ…...
快速幂运算
快速幂运算 一、快速幂运算快速幂运算(Exponentiation by Squaring)基本思想算法实现(②③为非递归)① 递归运算② 普通 除模运算(不带 **模数** 与 带 **模数**)③ 按位与运算 使用示例示例代码 复杂度分析…...
vue @import引入CSS scoped无效 造成全局样式污染
引入css文件导致全局样式污染 1.写在单组件的style里面css样式,如果标签内不加scoped可能会影响其他组件的样式 <style lang"scss" scoped> </style> 2.通过import引入的外部css文件,这种引入方式是全局的,也会影响其…...
基于Flask-Login简单登录和权限控制实践
1. 关于Flask-Login Flask-Login 是一个为python Flask Web框架设计的扩展,用于管理用户会话(用户登录状态)。它提供了简单的接口来处理用户登录、注销、记住用户等功能,同时确保用户会话的安全性。以下是 Flask-Login 的一些关键特性和功能: 1.1. 主要功能 用户会话管理…...
文件流---------获取文件的内容到控制台
总流程:先创建一个文本文件------->里面写入一些内容(纯字母和字母加文字)-----------> 然后通过输入流获取文件里面的内容,两种方式。 1.第一种,获取单个的字符 ,先创建文件 ,java.txt…...
idea 2024 build菜单不见了
Q如题 idea 2024 新版UI添加build和recompile菜单 A如图,右键顶部栏之后,点击Add to Main Toolbar菜单,在里面就能找到Build菜单,添加接口。 Recompile菜单的话在Customize Toolbar中搜索添加才行。...
深入理解计算机操作系统(持续更新中...)
文章目录 一、计算机系统漫游1.1信息就是位上下文 一、计算机系统漫游 1.1信息就是位上下文 源程序实际上就是一个由值0和1组成的位(又称为比特),八个位被组织成一组,称为字节。每个字节表示程序中的某些文本字符 大部分现代计…...
[dp8_子数组] 乘积为正数的最长子数组长度 | 等差数列划分 | 最长湍流子数组
目录 1.乘积为正数的最长子数组长度 2.等差数列划分 3.最长湍流子数组 写代码做到,只用维护好自己的一小步 1.乘积为正数的最长子数组长度 链接:1567. 乘积为正数的最长子数组长度 给你一个整数数组 nums ,请你求出乘积为正数的最长子数…...
量子机器学习(Quantum Machine Learning, QML)在优化测试组合
量子机器学习(Quantum Machine Learning, QML)在优化测试组合选择中展现出显著潜力,通过量子计算的并行性和量子态叠加特性,可高效解决传统方法难以处理的组合爆炸问题。以下是其技术实现路径、优势及落地案例: 一、QML优化测试组合的核心原理 1. 量子并行性加速搜索 经典…...
Go语言Slice切片底层
Go语言(Golang)中切片(slice)的相关知识、包括切片与数组的关系、底层结构、扩容机制、以及切片在函数传递、截取、增删元素、拷贝等操作中的特性。并给出了相关代码示例和一道面试题。关键要点包括: 数组特性…...
导入 Excel 批量替换文件夹名称
文件夹重命名的需求是多种多样的,前面我们介绍过按照规则修改文件夹名称的方法。但是在某些场景下,这个方法可能是不适用的,比如我们修改文件夹的规则是多种多样的,是无规律的。那我们应该怎么做呢?今天我们就给大家介…...
数据库或表数据迁移(使用Navicat迁移MySQL数据库表数据)
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 数据库或表数据迁移(使用Navicat…...
Matlab Add Legend To Graph-图例添加到图
Add Legeng To Graph: Matlab的legend()函数-图例添加到图 将图例添加到图 ,图例是标记绘制在图上的数据序列的有用方法。 下列示例说明如何创建图例并进行一些常见修改,例如更改位置、设置字体大小以及添加标题。您还可以创建具有多列的图…...
【Linux】what is pam?PAM模块学习笔记
文章目录 1. pam模块简介2. pam验证的工作流程3. pam模块配置文件3.1 配置文件的格式3.1.1 验证类别type3.1.2 验证的控制标识 control flag3.1.3 pam模块 4. login的PAM验证机制流程5. 补充:其他pam相关文件6. 参考内容 1. pam模块简介 PAM: Pluggable Authentica…...
5.1 GitHub订阅监控系统实战:FastAPI+SQLAlchemy高效架构设计与核心源码揭秘
GitHub Sentinel Agent 分析报告功能设计与实现 关键词:订阅管理 API 设计、GitHub API 集成、SQLAlchemy ORM、JWT 认证、单元测试框架 1. 订阅管理功能架构设计 订阅管理模块采用分层架构设计,通过 FastAPI 构建 RESTful 接口,结合 SQLAlchemy ORM 实现数据持久化: #me…...
【BEPU V1物理】BEPUphysics v1 入门指南 汉化笔记#1
BEPUphysics v1 入门指南 前言下载获取库工程1.创建物理模拟环境2.添加物理实体3.与物理系统交互4.发射物体5.构建环境6.事件处理7. 进阶学习 前言 本文档记录完成 BEPUphysics 物理引擎的基础设置。 文档链接:https://github.com/bepu/bepuphysics1/blob/master/Documentatio…...
方法加事务在多线程中注意事项
方法加事务在多线程中注意事项 redission分布式锁释放异常问题 https://www.jianshu.com/p/055ae798547a https://blog.csdn.net/cheng__yu/article/details/122625649 虽然文章 https://blog.csdn.net/cheng__yu/article/details/122625649 和 redission锁是没关系的&#…...
开源 2D 横版跳跃游戏 SuperTux
官网 https://www.supertux.org/ 正文 在游戏的世界里,开源游戏以其独特的魅力吸引着众多玩家和开发者。今天要介绍的 SuperTux,便是一款备受瞩目的开源 2D 横版跳跃游戏,风格类似经典的超级马里奥系列。 2024 年,SuperTux 开发团…...
基于HASM模型的高精度建模matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 本课题主要使用HASM进行高精度建模,主要对HASM模型进行介绍以及在实际中如何进行简化实现的。 2.测试软件版本以及运行结果展示 MATLAB2022A版本运行…...
C++多线程编程时的伪共享问题及其定位和解决
一、引言 在多线程编程和共享内存系统中,为了提高程序性能,常常需要对共享数据进行处理。然而,在并发环境下,一种名为“伪共享(False Sharing)”的问题可能会悄然出现,它虽然不像传统的多线程同…...
高并发短信系统设计:基于SharingJDBC的分库分表、大数据同步与实时计算方案
高并发短信系统设计:基于SharingJDBC的分库分表、大数据同步与实时计算方案 一、概述 在当今互联网应用中,短信服务是极为重要的一环。面对每天发送2000万条短信的需求,我们需要一个能够处理海量数据(一年下来达到数千万亿级别&…...
【HTML】html文件
HTML文件全解析:搭建网页的基石 在互联网的广袤世界里,每一个绚丽多彩、功能各异的网页背后,都离不开HTML文件的默默支撑。HTML,即超文本标记语言(HyperText Markup Language),作为网页创建的基…...
5.11 GitHub API调试五大高频坑:从JSON异常到异步阻塞的实战避坑指南
GitHub API调试五大高频坑:从JSON异常到异步阻塞的实战避坑指南 关键词:GitHub API 调试、JSON 解析异常、提示工程优化、异步任务阻塞、数据清洗策略 5.5 测试与调试:调试常见问题 问题1:GitHub API 调用异常 现象: requests.exceptions.HTTPError: 403 Client Error…...
协程的原生挂起与恢复机制
目录 🔍 一、从开发者视角看协程挂起与恢复 🧠 二、协程挂起和恢复的机制原理:核心关键词 ✅ suspend 函数 ≠ 普通函数 ✅ Continuation(协程的控制器) 🔧 三、编译器做了什么?࿰…...
机器学习中的数学(PartⅡ)——线性代数:2.2矩阵
概述 本节内容也相对简单,首先介绍了矩阵的定义,矩阵的表示方法;然后介绍了矩阵的加法和乘法,与标量的乘法,以及一些矩阵相关算数运算的性质,包括满足结合律、交换律;矩阵的逆和转置࿱…...
泉涌未来:科技与生态的共生诗篇-济南
故事背景 故事发生在中国山东济南的未来城市环境,这里不再是单纯的自然景观与现代建筑的堆砌,而是科技与生态深度融合的奇妙世界。泉水,这一济南的灵魂元素,在未来科技的赋能下,成为连接城市各个角落的纽带。量子态泉水…...
用AI生成系统架构图
DeepSeek+Drawio+SVG绘制架构图-找到一种真正可行实用的方法和思路 1、使用DeepSeek生成SVG文件,导入drawio工具的方法 🔥 问题根源分析 错误现象: • 导入时报错包含 data:image/SVG;base64 和 %20 等 URL 编码字符 • 代码被错误转换为 Base64 格式(适用于网页嵌入,但…...
网络基础1
目录 初识协议 协议分层 软件分层的好处 OSI七层模型 TCP/IP 五层(或四层)模型 再谈协议 为什么要有 TCP/IP 协议? TCP/IP 协议与操作系统的关系 所以究竟什么是协议? 网络传输基本流程 认识 MAC 地址 局域网(以太网为例)通信原理 报文的传…...
免费且好用的PDF水印添加工具
软件介绍 今天要给大家推荐一款超实用的PDF添加水印工具,它能够满足用户给PDF文件添加水印的需求,而且完全免费。 这款PDF添加水印的软件有着简洁的界面,操作简便,无需安装,解压后即可使用。 在使用前,先…...
C++Primer对象移动
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
互联网三高-数据库高并发之分库分表ShardingJDBC
1 ShardingJDBC介绍 1.1 常见概念术语 ① 数据节点Node:数据分片的最小单元,由数据源名称和数据表组成 如:ds0.product_order_0 ② 真实表:再分片的数据库中真实存在的物理表 如:product_order_0 ③ 逻辑表:…...
七、自动化概念篇
自动化测试概念 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的过程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人…...
python操作mongodb
1、安装包 pyMongo是MongoDB官方推荐的Python驱动程序,它提供了访问MongoDB数据库所需的接口。安装PyMongo非常简单,可以通过pip包管理工具来安装最新版本: pip install pymongo 安装完成后,我们可以使用以下Python代码来检查是否…...
IS-IS中特殊字段——OL过载
文章目录 OL 过载位 🏡作者主页:点击! 🤖Datacom专栏:点击! ⏰️创作时间:2025年04月13日20点12分 OL 过载位 路由过载 使用 IS-IS 的过载标记来标识过载状态 对设备设置过载标记后ÿ…...
行星际激波在日球层中的传播:Propagation of Interplanetary Shocks in the Heliosphere (第二部分)
行星际激波在日球层中的传播:Propagation of Interplanetary Shocks in the Heliosphere (第一部分)-CSDN博客 Propagation of Interplanetary Shocks in the Heliosphere [ Chapter 3 ] [PDF: arXiv] 本文保留原文及参考文献,参…...
紫光同创FPGA实现HSSTLP光口视频点对点传输,基于Aurora 8b/10b编解码架构,提供6套PDS工程源码和技术支持
目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目紫光同创FPGA相关方案推荐我这里已有的 GT 高速接口解决方案Xilinx系列FPGA实现GTP光口视频传输方案推荐Xilinx系列FPGA实现GTX光口视频传输方案推荐Xilinx系列FPGA实…...
正则表达式使用知识(日常翻阅)
正则表达式使用 一、字符匹配 1. 普通字符 描述:直接匹配字符本身。示例: abc 匹配字符串中的 “abc”。Hello 匹配字符串中的 “Hello”。 2. 特殊字符 .(点号): 描述:匹配任意单个字符(…...
CSS padding(填充)学习笔记
CSS 中的 padding(填充)是一个非常重要的属性,它用于定义元素边框与元素内容之间的空间,即上下左右的内边距。合理使用 padding 可以让页面布局更加美观、清晰。以下是对 CSS padding 的详细学习笔记。 一、padding 的作用 padd…...
Python中的字符串、列表、字典和集合详解
Python是一门强大的编程语言,其内置的数据结构丰富多样。其中,字符串、列表、字典和集合是最常用的数据类型。本文将对它们的区别、用法和使用场景进行详细介绍,帮助大家更好地理解和应用这些数据结构。 1. 字符串(String…...
【CUDA编程】CUDA Warp 与 Warp-Python 对比文档
相关文档: Nvidia-Warp GitHub:nvidia/warp CUDA Warp 和 Warp-Python 库 的对比与统一文档,涵盖两者的核心概念、区别、使用场景及示例: 1. CUDA Warp(硬件/编程模型概念) 1.1 定义与核心概念 定义: C…...
中厂算法岗面试总结
时间:2025.4.10 地点:上市的电子有限公司 面试流程: 1.由负责人讲解公司文化 2,由技术人员讲解公司的技术岗位,还有成果 3.带领参观各个工作位置,还有场所 4.中午吃饭 5.面试题,闭卷考试…...
Losson 4 NFS(network file system(网络文件系统))
网络文件系统:在互联网中共享服务器中文件资源。 使用nfs服务需要安装:nfs-utils 以及 rpcbind nfs-utils : 提供nfs服务的程序 rpcbind :管理nfs所有进程端口号的程序 nfs的部署 1.客户端和服务端都安装nfs-utils和rpcbind #安装nfs的软件rpcbind和…...
自动化运行后BeautifulReport内容为空
一、问题描述 自动化程序运行后发现运行目录下生成的html报告文件内容为空,没有运行结果。 二、测试环境 操作系统:Windows 11 家庭版BeautifulReport:0.1.3Python:3.11.9Appium-Python-Client:5.0.0Appium Server:2.…...
CTF-WEB排行榜制作
CTF-WEB排行榜制作 项目需求: 现在14道题对应有14个flag,我需要使用dockerfile搭建一个简单的,能够实现验证这些题目对应的flag来计分的简单网站(要求页面比较精美) 前十题设置为10分 11-14题设置为20分 1. flag{5a3…...
架构生命周期(高软57)
系列文章目录 架构生命周期 文章目录 系列文章目录前言一、软件架构是什么?二、软件架构的内容三、软件设计阶段四、构件总结 前言 本节讲明架构设计的架构生命周期概念。 一、软件架构是什么? 二、软件架构的内容 三、软件设计阶段 四、构件 总结 就…...
STM32单片机定时器的输入捕获和输出比较
目录 一、定时器的输入捕获 1、工作原理 2、示例代码 二、定时器的输出比较 1、工作原理 2、示例代码 三、总结 在STM32单片机中,定时器是一个非常重要的外设,广泛应用于时间管理、事件计时、波形生成等多种场景。其中输入捕获和输出比较是两个基…...