【计科】从操作系统到虚拟化技术(进程调度,内存映射,设备IO,文件、网络管理)
【计科】操作系统基础与虚拟化技术拓展的关系(进程调度,内存映射,设备IO,文件、网络管理)
文章目录
- 1、进程管理与调度机制(计算)
- 2、内存管理与双重映射
- 3、设备管理与IO机制
- 4、文件管理
- 5、网络与进程通信
- 6、总结
虚拟化技术本质上是基于 操作系统核心机制(如进程管理、内存管理、设备IO管理等) 的高级应用,现代操作系统也越来越多地集成虚拟化功能以支持云计算、容器化等场景。
1、进程管理与调度机制(计算)
系统调用与特权级的扩展
- 操作系统基础:操作系统通过特权级(如Ring 0/3)保护内核空间,用户程序通过系统调用访问硬件。
- 虚拟化技术:
- 传统虚拟化依赖二进制翻译或陷入-模拟(Trap-and-Emulate)处理Guest OS的特权指令。
- 硬件辅助虚拟化(如Intel VT-x)引入“Root/Non-Root”模式,Hypervisor运行在更高特权级(Ring -1)。
- 关系:虚拟化扩展了操作系统的特权级架构,实现安全隔离。
联系:
- 操作系统的进程调度器通过时间片轮转、优先级调度等算法分配CPU资源。
- 虚拟化Hypervisor将每个虚拟机视为一个“超级进程”,需要在物理CPU上调度虚拟CPU(vCPU),可能嵌套使用宿主操作系统的调度策略(如KVM基于Linux的CFS调度器)。
- 虚拟化将操作系统的进程调度逻辑提升到虚拟机级别,需解决公平性、优先级反转等问题。
操作系统
- 进程调度:时间片轮转、优先级调度、多级队列等算法。
- 上下文切换:保存和恢复进程状态(寄存器、页表等)。
- 多核并发:CPU亲和性、负载均衡。
虚拟化
- vCPU调度:Hypervisor将每个虚拟机的vCPU作为宿主机的“进程”调度
- 公平性:防止一个VM独占物理CPU(如Xen的Credit调度器)。
- 隔离性:CPU份额限制(如KVM的
cgroups/cpu)。 - NUMA优化:虚拟机vCPU与物理NUMA节点的绑定。
- 嵌套虚拟化:Guest OS内再运行Hypervisor,需多层调度(如Windows Hyper-V on KVM)。
- 轻量级虚拟化:容器(如Docker)直接复用宿主OS的进程管理,通过
namespace隔离进程视图。
实践
- 对比传统进程调度与vCPU调度的异同。
- 分析KVM或Xen的调度器源码(如
kvm/kvm_main.c中的调度逻辑)。
参考项目:KVM、Xen
- kvm, linux-kvm
KVM(Kernel-based Virtual Machine)Linux内核模块,提供硬件辅助虚拟化。
基于Intel VT-x/AMD-V扩展,将Linux内核转变为Hypervisor。
核心功能:
负责CPU和内存虚拟化,依赖QEMU处理I/O和设备模拟。
支持嵌套虚拟化、热迁移(Live Migration)。
优势:
性能接近原生(因直接复用Linux调度、内存管理等机制)。
集成于主流Linux发行版(如Ubuntu、RHEL)。 - xen
核心功能:
支持全虚拟化(硬件辅助)和半虚拟化(修改Guest OS内核)。
独特的“Dom0/DomU”架构:Dom0特权虚拟机管理其他DomU客户机。
广泛用于云计算(如AWS早期EC2实例)。
优势:
高隔离性和安全性(常用于军事、金融领域)。
支持实时性要求高的场景(如嵌入式系统)。
参考:1,
进程管理概念复习
-
进程与线程
考点1 程序的顺序执行、并发执行、多道程序设计
考点2 进程的定义
考点3 进程的状态与转换
考点4 进程控制块与进程控制
考点5 线程的基本概念及线程的实现机制
考点6 进程调度算法 -
进程同步与互斥
考点1 进程的同步、互斥、临界区
考点2 信号量及P、V操作
考点3 经典的进程同步问题
考点4 管程的概念、组成、条件变量
考点5 进程通信的三种方式 -
死锁
考点1 死锁的定义、产生的原因、产生的必要条件
考点2 死锁预防
考点3 死锁避免
考点4 死锁检测与解除
考点5 资源分配图 -
操作系统运行环境
考点1 处理器相关的概念
考点2 存储器的类型
考点3 中断的概念、中断系统
考点4 中断优先级、中断屏蔽与中断嵌套
考点5 系统调用概念、与函数调用区别、分类 -
进程管理
5.1 进程、线程基础知识
5.2 进程间有哪些通信方式?
5.3 多线程冲突了怎么办?
5.4 怎么避免死锁?
5.5 什么是悲观锁、乐观锁?
5.6 一个进程最多可以创建多少个线程?
5.7 线程崩溃了,进程也会崩溃吗?
6.1 进程调度/页面置换/磁盘调度算法 -
硬件结构与CPU
2.1 CPU 是如何执行程序的?
2.2 磁盘比内存慢几万倍?
2.3 如何写出让 CPU 跑得更快的代码?
2.4 CPU 缓存一致性
2.5 CPU 是如何执行任务的?
2.6 什么是软中断?
2.7 为什么 0.1 + 0.2 不等于 0.3 ?


2、内存管理与双重映射
联系
- 操作系统通过分页、分段、TLB等机制管理物理内存。
- 虚拟化引入二次地址转换(如Intel EPT、AMD NPT),将Guest OS的虚拟地址→Guest物理地址→宿主物理地址,由Hypervisor或硬件MMU完成映射。
- 虚拟化依赖操作系统的内存管理机制,同时需处理隔离性(如内存气球技术)和性能开销(如影子页表优化)。
操作系统
- 分页/分段:虚拟地址到物理地址的转换(页表、TLB)。
- 页面置换:LRU、工作集算法。
- 共享内存:进程间通信机制。
虚拟化
- 二次地址转换:
- 软件方案:影子页表(Shadow Page Table),由Hypervisor维护Guest虚拟→物理→宿主物理的映射。
- 硬件辅助:Intel EPT/AMD NPT,硬件自动完成GVA→GPA→HPA转换。
- 内存超售(Overcommit):
- 气球驱动(Ballooning):动态回收Guest OS内存(如virtio-balloon)。
- 透明大页(THP):减少TLB失效开销。
- 内存隔离:SEV(Secure Encrypted Virtualization)加密VM内存,防止宿主机窥探。
实践
- 理解EPT/NPT的硬件机制(参考Intel手册Volume 3, Chapter 28)。
- 使用QEMU命令
-mem-path观察内存分配行为。
参考项目:KVM、Xen、QEMU、Cloud Hypervisor
- QEMU
核心功能:
模拟多种CPU架构(x86、ARM、RISC-V等)和外部设备(网卡、磁盘、GPU等)。
支持动态二进制翻译(TCG模式),无需硬件虚拟化辅助即可运行虚拟机。
与KVM结合时(qemu-kvm),利用硬件加速实现高性能虚拟化。
应用场景:
跨平台开发(如在x86主机上模拟ARM环境)。
作为KVM的用户态组件,处理设备模拟和I/O。 - Cloud Hypervisor
核心功能:
基于Rust编写,强调安全性和性能。
集成Virtio和VFIO设备支持,去除了传统虚拟化的冗余功能。
优势:
与Kubernetes生态兼容(如KubeVirt)
内存管理概念复习
- 存储管理
考点1 存储体系、存储管理的任务、地址转换
考点2 可变分区基本思想、紧缩技术空闲分区分配策略、分区管理方案的优缺点
考点3 覆盖技术、交换技术
考点4 虚拟存储技术以及虚拟页式存储管理
考点5 转换检测缓冲区(TLB)
考点6 页面调度策略
考点7 页面置换算法
考点8 虚拟页式存储管理的优缺点
3、设备管理与IO机制
硬件抽象层
- 操作系统:通过硬件抽象层(HAL)管理物理资源(CPU、内存、设备),为应用程序提供统一的接口(如系统调用)。
- 虚拟化:虚拟化(如Type-1 Hypervisor)直接接管硬件抽象层,或通过宿主操作系统(Type-2 Hypervisor)间接访问硬件,创建多个隔离的虚拟机(VM),每个VM运行独立的客户操作系统(Guest OS)。
- 关系:虚拟化扩展了操作系统的硬件抽象能力,实现资源的逻辑分割和多实例化。
联系
- 操作系统 通过设备驱动和中断机制管理外设。
- 虚拟化:
- 全虚拟化:Hypervisor模拟虚拟设备(如QEMU虚拟网卡),截获Guest OS的I/O请求并转发到物理设备。
- 半虚拟化:Guest OS使用优化驱动(如virtio)直接与宿主通信,减少陷入(trap)开销。
- 硬件辅助:Intel VT-d/AMD-Vi支持DMA直接映射,绕过软件模拟。
- 关系:虚拟化复用操作系统的设备驱动模型,同时需解决性能瓶颈和隔离问题。
操作系统
- 设备驱动:内核模块与硬件交互(如网卡驱动)。
- 中断处理:上半部/下半部(软中断)。
- DMA:直接内存访问减少CPU开销。
虚拟化
- I/O虚拟化模型:
- 全虚拟化:QEMU模拟设备(如e1000网卡),性能低。
- 半虚拟化:virtio协议,Guest使用专用驱动(如virtio-net)与宿主通信。
- 硬件辅助:SR-IOV(单根I/O虚拟化),物理设备直接暴露给VM。
- 中断虚拟化:
- APIC虚拟化:虚拟中断控制器(如KVM的
kvm-irqfd)。 - 中断重映射:Intel VT-d防止DMA攻击。
- APIC虚拟化:虚拟中断控制器(如KVM的
实践
- 实现一个简单的virtio设备(参考《QEMU/KVM源码分析与实战》)。
- 测试SR-IOV网卡的吞吐量(如
iperf3对比virtio-net和VF直通)。
参考项目:Virtio、QEMU、Xen、KVM
- Virtio-win, Virtio-win-download
半虚拟化I/O框架。
核心功能:
提供虚拟设备标准(网卡virtio-net、磁盘virtio-blk、GPUvirtio-gpu等)。
Guest OS安装驱动后直接与Hypervisor通信,减少陷入(trap)开销。
与QEMU/KVM深度集成,是现代虚拟化的I/O性能优化关键。
应用场景:
云虚拟机的高效I/O(如OpenStack、Kubernetes的KubeVirt)。
IO管理概念复习
- 磁盘高速缓存及RAID
第八章 I/O设备管理
考点1 I/O设备的概念、分类、I/O设备管理的任务
考点2 I/O硬件和软件组成、设备独立性
考点3 四种I/O设备控制方式
考点4 设备分配原则、策略、独占设备的分配
考点5 移臂调度算法及旋转调度优化
考点6 信息的优化分布
考点7 缓冲技术
考点8 SPOOLing技术
4、文件管理
操作系统
- 文件系统:Ext4、NTFS的存储结构、缓存(Page Cache)、一致性(fsync)。
- 磁盘调度:I/O合并、CFQ/Deadline算法。
虚拟化
- 虚拟磁盘镜像:
- 格式:QCOW2(写时复制)、RAW(直接映射)。
- 快照:基于COW(Copy-on-Write)的增量保存。
- 存储虚拟化:
- 块设备透传:直接分配物理磁盘(如VFIO)。
- 分布式存储:Ceph/RBD为虚拟机提供共享存储。
- 容器存储:联合文件系统(OverlayFS)实现镜像分层。
实践
- 使用
qemu-img创建和管理QCOW2镜像,分析其元数据结构。 - 对比虚拟机与容器的文件隔离机制(如OverlayFS vs. 虚拟磁盘)
文件管理概念复习
- 文件系统
考点1 文件及文件系统的定义
考点2 外存储设备的存储介质及存取方式、文件分类
考点3 文件的逻辑结构和物理结构
考点4 文件控制块及三种文件目录
考点5 磁盘空间管理及分配回收算法
考点6 典型的文件操作和典型的目录操作
5、网络与进程通信
网络与进程间通信(IPC)
- 操作系统的IPC:
- 管道、共享内存、Socket通信。
- 虚拟化:
- 虚拟网络:Libvirt通过Linux网桥或OVS实现虚拟机间通信,复用宿主机的网络栈(如TCP/IP协议栈)。
- 容器网络:LXC使用
veth pair和network namespace隔离网络视图。 - Xen的Grant Table:半虚拟化下Guest与Hypervisor共享内存的机制。
- 关键:
- 虚拟化网络本质是操作系统网络栈的延伸。
6、总结
操作系统与虚拟化技术的关系
- 理解两者的关系有助于设计更高效的虚拟化方案(如混合半虚拟化)、优化嵌套虚拟化性能,或开发轻量级容器运行时(如gVisor)。
随着云原生和边缘计算的普及,操作系统与虚拟化的协同创新(如Firecracker微VM)将持续演进。 - 虚拟化开发技术可视为操作系统基础能力的纵向拓展:
向下:虚拟化深化硬件资源的管理粒度(如vCPU、虚拟设备)。
向上:操作系统为虚拟化提供底层支持(如KVM依赖Linux内核模块)。
操作系统模块与虚拟化技术对应
| 操作系统模块 | 虚拟化技术对应 | 代表项目 | 虚拟化带来的变化 |
|---|---|---|---|
| 进程管理 | vCPU调度、嵌套虚拟化 | KVM, Xen, Firecracker | 两级调度、隔离性增强 |
| 内存管理 | 二次地址转换、内存超售 | KVM, QEMU, Cloud Hypervisor | 增加转换层级、硬件辅助(EPT/NPT) |
| 文件系统 | 虚拟磁盘镜像、联合文件系统 | QEMU, LXC, Kata | 隔离性(加密镜像)、性能优化(virtio-fs) |
| I/O管理 | 设备虚拟化、中断虚拟化 | Virtio, QEMU, KVM | 半虚拟化(virtio)、硬件直通(VFIO) |
| 特权级 | Hypervisor模式(Ring -1) | KVM, Xen | 硬件辅助(VT-x/SVM) |
| 网络/IPC | 虚拟网络设备、网络命名空间 | Libvirt, LXC | 软件定义网络(OVS)、隔离性(namespace) |
虚拟化学习路线
- 1、实验1:
通过修改Linux内核模块(如调度器)加深理解。
使用QEMU/KVM创建虚拟机,分析/proc/kvm和virsh命令。
阅读Xen/KVM的架构文档(如KVM官方Wiki)。
研究KVM如何通过/dev/kvm接口暴露操作系统的硬件虚拟化能力
分析QEMU设备模拟代码(如hw/block/virtio-blk.c)与Linux块设备驱动的交互 - 2、实验2:
实现一个微型Hypervisor(参考《Writing a Simple x86 Hypervisor》)。 1
使用strace跟踪虚拟机启动时的系统调用,观察QEMU与KVM的协作流程。
通过perf分析virtio-net的I/O性能瓶颈。
参与开源项目(如Firecracker、Kata Containers)。
对比Xen半虚拟化和KVM全虚拟化在内存管理上的实现差异(如页表切换频率)
学习容器编排(Kubernetes)如何基于OS/虚拟化技术(如runc调用namespaces)。 - 3、书籍论文:
《Operating Systems: Three Easy Pieces》 1
《系统虚拟化:原理与实现》- Intel Press
《现代操作系统》- Andrew Tanenbaum(重点第1、5、8章)
《Xen and the Art of Virtualization》(SOSP 2003)
《kvm: the Linux Virtual Machine Monitor》(OLS 2007)
参考:
- 1-期末操作系统
- 2-408操作系统
- 3-coding操作系统
- 4-从零开始编写一个操作系统
- 5-13180/02326考试操作系统 2 3
相关文章:
【计科】从操作系统到虚拟化技术(进程调度,内存映射,设备IO,文件、网络管理)
【计科】操作系统基础与虚拟化技术拓展的关系(进程调度,内存映射,设备IO,文件、网络管理) 文章目录 1、进程管理与调度机制(计算)2、内存管理与双重映射3、设备管理与IO机制4、文件管理5、网络与…...
ECharts各类炫酷图表/3D柱形图
一、前言 最近鸡米花实现了各类的炫酷的图表,有3D柱形图、双边柱形图以及异形柱形图,好了,直接上图: 二、效果图 一个个来吧,下面就是代码啦,注意,一下图表展示的宽高均为800px*300px 三、异形横…...
系统与网络安全------网络应用基础(6)
资料整理于网络资料、书本资料、AI,仅供个人学习参考。 Win10系统安装 安装Win10系统 安装准备 Windows10系统的安装光盘 虚拟机可采用ISO文件,windows_10_professional_x64_2024.iso Windows10系统的硬件要求 CPU处理器:1.0Ghz或更快 …...
【区块链安全 | 第七篇】EVM概念详解
文章目录 1. EVM 概述以太坊虚拟机(Ethereum Virtual Machine,EVM)的作用EVM 如何执行智能合约账户类型 2. EVM 体系结构栈(Stack)内存(Memory)存储(Storage)Gas 机制 3.…...
Android设计模式之单例模式
一、定义:确保一个类只有一个实例,并且自动实例化,并向整个系统提供这个实例。 二、使用场景:避免重复创建对象,过多消耗系统资源。 三、使用方式 3.1饿汉式:类加载时立即初始化,线程安全&…...
清晰易懂的Trae实现为AI编程从安装到实战开发ToDoList
一、Trae简介与核心优势 Trae是字节跳动推出的国内首个AI原生集成开发环境(AI IDE),它不同于传统的代码编辑器或AI插件,而是将AI能力深度集成到整个开发流程中,实现"人与AI协同编程"的全新体验。作为一款真…...
基于杜鹃鸟鲶鱼优化(Cuckoo Catfish Optimizer,CCO)算法的多个无人机协同路径规划(可以自定义无人机数量及起始点),MATLAB代码
一、杜鹃鸟鲶鱼优化算法 杜鹃鸟鲶鱼优化(Cuckoo Catfish Optimizer,CCO)算法模拟了杜鹃鸟鲶鱼的搜索、捕食和寄生慈鲷行为。该算法的早期迭代侧重于执行多维包络搜索策略和压缩空间策略,并结合辅助搜索策略来有效限制慈鳔的逃逸空…...
16个气象数据可视化网站整理分享
好的!以下是关于“16个气象数据可视化网站整理分享”的软文: 16个气象数据可视化网站整理分享 气象数据可视化已成为现代气象研究、决策支持以及公众天气服务的重要组成部分。从天气预报到气候变化监测,全球许多气象数据可视化平台为专业人士…...
word光标一直闪的解决办法
在选项里,打开首选项,(如果打不开,可以新建一个word也许就可以,实在不行只能靠眼疾手快,趁他还没闪赶紧点) 选COM加载项,在里面取消勾选MicrosoftOfficePLUS...
⑥ ACG-系统管理
上网管理行为是指对员工在工作时间内使用公司网络的行为进行管理和监督。在企业中,系统管理是实施上网管理行为的重要方式之一。系统管理包括以下几个方面: 1. 访问控制:通过设置网络访问权限,对员工访问特定网站或使用特定应用程…...
基于大模型的肺良性肿瘤术前、术中、术后全流程预测与诊疗方案研究
目录 一、引言 1.1 研究背景与意义 1.2 研究目的 1.3 国内外研究现状 二、大模型预测原理与方法 2.1 大模型概述 2.2 数据收集与预处理 2.3 特征工程 2.4 模型训练与优化 三、术前预测与方案制定 3.1 肿瘤性质预测 3.1.1 预测模型构建 3.1.2 预测结果分析 3.2 手…...
C++ map容器总结
map基本概念 简介: map中所有元素都是pair pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值) 所有元素都会根据元素的键值自动排序 本质: map/multimap属于关…...
推荐系统(十五):基于双塔模型的多目标商品召回/推荐系统
在电商推荐场景中,用户行为通常呈现漏斗形态:曝光→点击→转化。本文基于TensorFlow构建了一个支持多任务学习的双塔推荐模型,可同时预测点击率(CTR)和转化率(CVR)。通过用户塔和商品塔的分离式设计,模型既能捕捉用户兴趣偏好,又能理解商品特征,最终通过向量相似度计…...
【MLP-BEV(10)】BEVPooling V1和BEVPooling V2的view_transformer,进行鱼眼图片实践
文章目录 先说说 BEVPoolv1步骤1:3D点生成步骤2 2D特征采样和BEV特征生成特点再谈谈BEVPoolv2步骤1:3D点生成步骤2: 计算索引关系步骤3: `voxel_pooling`计算鱼眼图片进行实践步骤1、3D点生成(基于Kannala-Brandt 进行调整)步骤2、2D特征采样和BEV特征生成(1) 体素化 (Voxe…...
Elasticsearch:使用 Azure AI 文档智能解析 PDF 文本和表格数据
作者:来自 Elastic James Williams 了解如何使用 Azure AI 文档智能解析包含文本和表格数据的 PDF 文档。 Azure AI 文档智能是一个强大的工具,用于从 PDF 中提取结构化数据。它可以有效地提取文本和表格数据。提取的数据可以索引到 Elastic Cloud Serve…...
常考计算机操作系统面试习题(四)
目录 1. Peterson 算法伪代码 2. 信号量生产者消费者问题分析 3. 注释 Peterson 主函数并分析输出结果 4. 用 fork 创建子进程的程序 1. Peterson 算法伪代码 题目: 写出 Peterson 算法的伪代码。 参考答案: // 定义变量 boolean flag[2]; /…...
IP 分片重组与 TCP 会话重组
1. IP 分片重组(IP Fragmentation & Reassembly) (1)分片原因 当 IP 数据包长度超过 MTU(Maximum Transmission Unit)(如以太网默认 1500 字节)时,路由器或发送端会…...
【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 中的 AOP:实现日志记录与性能监控
<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、开篇整…...
多模态大模型训练范式演进与前瞻
本文从多模态大模型相关概念出发,并以Flamingo 模型为例,探讨了基于多模态大模型训练的演进与前瞻。新一代训练范式包括统一架构、数据工程革新和动态适应机制,以提升跨模态推理能力和长视频理解。 多模态大模型 定义 什么是多模态大模型&…...
游戏引擎学习第187天
看起来观众解决了上次的bug 昨天遇到了一个相对困难的bug,可以说它相当棘手。刚开始的时候,没有立刻想到什么合适的解决办法,所以今天得从头开始,逐步验证之前的假设,收集足够的信息,逐一排查可能的原因&a…...
HarmonyOS NEXT 关于鸿蒙的一多开发(一次开发,多端部署) 1+8+N
官方定义 定义:一套代码工程,一次开发上架,多端按需部署。 目标:支撑开发者快速高效的开发支持多种终端设备形态的应用,实现对不同设备兼容的同时,提供跨设备的流转、迁移和协同的分布式体验。 什么是18…...
SAP-ABAP:OData 协议深度解析:架构、实践与最佳应用
OData 协议深度解析:架构、实践与最佳应用 一、协议基础与核心特性 协议定义与目标 定位:基于REST的开放数据协议,标准化数据访问接口,由OASIS组织维护,最新版本为OData v4.01。设计哲学:通过统一资源标识符(URI)和HTTP方法抽象数据操作,降低异构系统集成复杂度。核心…...
当Kafka化身抽水马桶:论组件并发提升与系统可用性的量子纠缠关系
《当Kafka化身抽水马桶:论组件并发提升与系统可用性的量子纠缠关系》 引言:一场OOM引发的血案 某个月黑风高的夜晚,监控系统突然发出刺耳的警报——我们的数据发现流水线集体扑街。事后复盘发现:Kafka集群、Gateway、Discovery服…...
Dify+ollama+vanna 实现text2sql 智能数据分析 -01
新鲜出炉-今天安装vanna踩过的坑 今天的任务是安装vanna这个工具,因为dify中自己写的查询向量数据库和执行sql这两步太慢了大概要20S,所以想用下这个工具,看是否会快一点。后面会把这个vanna封装成一个工具让dify调用。 环境说明 我是在本…...
【Python实用技巧】OS模块详解:文件与目录操作的瑞士军刀
大家好,我是唐叔!今天咱们来聊聊Python中那个被低估的"老黄牛"——os模块。这个模块看似简单,但却是每个Python开发者都绕不开的利器。就像我常说的:“不会用os模块的Python程序员,就像不会用筷子的美食家”…...
动态内存分配与内存对齐
在C语言及其他低级编程语言中,内存管理是一个至关重要的主题。动态内存分配和内存对齐是确保程序高效和稳定运行的关键因素。本文将深入探讨动态内存分配的原理,内存对齐的概念,并解释它们如何共同影响程序的性能和资源利用。 一、动态内存分配简介 1.1 动态内存分配的概念…...
C 标准库 – 头文件
1️⃣ <fenv.h> 简介 <fenv.h> 提供了用于控制和检查浮点运算行为的宏和函数。它为浮点环境提供了精细的控制,允许设置舍入模式、捕获浮点异常等。通过 <fenv.h>,程序员可以: 控制浮点舍入模式,指定不同的舍入…...
Redis的基础,经典,高级问题解答篇
目录 一,基础 二,经典 缓存雪崩: 1. Redis事务的原子性 2. 与MySQL事务的区别 1. 主从复制原理 2. 哨兵模式故障转移流程 3. 客户端感知故障转移 三,高级 一,基础 Redis的5种基础数据类型及使用场景…...
uniapp uni-swipe-action滑动内容排版改造
在uniapp开发中 默认的uni-swipe-action滑动组件 按钮里的文字都是横排的 不能换行的 如果是在一些小屏设备 比如PDA这种,同时按钮文字又都是4个字 多按钮的情况 就会发现滑动一下都直接满屏了 观看体验都不好 但默认的官方组件又没有样式的设置,下面就告…...
电脑卡怎么办?提升电脑流畅的方法
电脑已经成为我们工作、学习和娱乐不可或缺的伙伴。然而,随着使用时间的增长,许多用户会遇到电脑运行变慢、卡顿的情况,这不仅影响了工作效率,也大大降低了使用体验。本文将为大家分析电脑卡顿的常见原因,并提供一套实…...
