Latest

Jul
12

virto虚拟化

1-背景 在完全虚拟化中,CPU会发生VM entry和VM exit事件,从而满足不同权限级别的事件。在虚拟机执行IO事件时,会频繁发生entry和exit事件而影响虚拟机性能。 virtio这种软件模拟的半虚拟化技术,就可以避免上述这种问题。virtio的核心是利用virtqueue的方式传输数据,而不是标准io中操作特定寄存器的方式。 2-virtio协议 virtio的本质是一个前后端结构,其提供一种虚拟化场景的子机(guest)与母机(host)之间的通讯接口。在子机内是作为前端驱动存在,
18 min read
Jul
17
东江湖

东江湖

不是,这也太好看了
1 min read
Jan
02
内存管理1_物理内存分配

内存管理1_物理内存分配

0、前言 主要分析内存的分配机制 https://blog.csdn.net/m0_65931372/article/details/126234314 1、内存结构 引自Linux 物理内存管理涉及的三大结构体之struct page 1.1 页
14 min read
Nov
21
内存管理2_伙伴系统

内存管理2_伙伴系统

1、背景分析 Linux内核需要有效地管理内存,以支持各种类型的应用和服务。传统的内存分配方法(如连续内存分配)存在一些不足,例如内存碎片和分配效率低下。频繁的申请和释放不同大小的连续页框必然会导致已分配的页框块分散了许多小块的空闲页框,可能会产生的问题就是:即使内存页框是充足的,但要申请一个大的页框可能也会因为没有足够的连续页框而失败。 为了避免内存碎片化而引发上述问题,通常可以有两种方法: 1. 使用分页单元把不连续的页框映射到连续的线性空间。 2. 使用一种适当的技术用以记录当前连续页框的情况,避免分配小组连续页框的时候对大的页框进行切割。 为了解决上述问题,
8 min read
Nov
21
内存管理3_slab_slub

内存管理3_slab_slub

1、SLAB 内存分配器 SLAB 内存分配器是 Linux 内核中用于管理内核对象的一种机制,它通过预分配和重用对象来优化性能。 The Slab Allocator: An Object-Caching Kernel Memory Allocator 1.1-基本原理 操作系统中内存碎片是一个常见的需要解决严重问题,我们上一片文章已经分析了Linux内核中的一种解法:
18 min read
Dec
09
内存管理4-页面回收

内存管理4-页面回收

1、概述 内核中的内存页面回收算法叫做PFRA(page frame reclaiming algorithm)。 其那边我们分析了物理页内存的管理和申请流程,但是如果内存一直不进行回收,那么系统中可用的物理内存很快就会耗尽,因此PFRA的作用就是在合适的时机找到合适的page进行回收,从而保证其他进程在新申请内存时有内存可用。 所以PFRA就有如下几个核心点需要实现: 1. 什么样的页可以回收 2. 什么时候回收 3. 怎么安全的回收页 2、
23 min read
Jan
02
内存管理6_缺页异常

内存管理6_缺页异常

1、介绍 什么是缺页异常? 当进程尝试访问当前不在其工作集内存中的页面时,就会发生缺页异常。这种事件触发缺页异常中断,导致内核采取特定行动来处理这种情况。 缺页异常的类型 * 次要缺页异常(Minor Page Faults): 当页面不在进程的当前工作集中,但仍然驻留在内存的某个地方时发生。 * 主要缺页异常(Major Page Faults): 当需要从磁盘(如交换区或内存映射文件)
14 min read