<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>虚拟内存 on PlumePHP</title><link>https://plumephp.com/tags/%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/</link><description>Recent content in 虚拟内存 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 05 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://plumephp.com/tags/%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98/index.xml" rel="self" type="application/rss+xml"/><item><title>10. 内存管理</title><link>https://plumephp.com/cs-memory-management/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-memory-management/</guid><description>&lt;h2 id="1-内存管理的发展历程"&gt;1. 内存管理的发展历程&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;无内存管理（单道程序） → 静态分区 → 动态分区 → 
分页 → 分段 → 段页式 → 虚拟内存
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="2-连续分配方式"&gt;2. 连续分配方式&lt;/h2&gt;
&lt;h3 id="21-固定分区-vs-动态分区"&gt;2.1 固定分区 vs 动态分区&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;方式&lt;/th&gt;
					&lt;th&gt;原理&lt;/th&gt;
					&lt;th&gt;问题&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;固定分区&lt;/td&gt;
					&lt;td&gt;内存分成等大/不等大的固定区域&lt;/td&gt;
					&lt;td&gt;内部碎片，利用率低&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;动态分区&lt;/td&gt;
					&lt;td&gt;按需求分配连续内存块&lt;/td&gt;
					&lt;td&gt;外部碎片，需紧凑整理&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="22-动态分区的分配算法"&gt;2.2 动态分区的分配算法&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;首次适应（First Fit）：从头找第一个足够大的空闲块
 优点：速度快
 缺点：低地址碎片多

最佳适应（Best Fit）：找最小的足够大的空闲块
 优点：减少浪费
 缺点：产生大量小碎片

最坏适应（Worst Fit）：找最大的空闲块
 优点：碎片较大可利用
 缺点：大进程无法分配

下次适应（Next Fit）：从上次分配位置继续搜索
 优点：分布更均匀
 缺点：尾部碎片可能累积
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="3-分页paging"&gt;3. 分页（Paging）&lt;/h2&gt;
&lt;h3 id="31-基本思想"&gt;3.1 基本思想&lt;/h3&gt;
&lt;p&gt;将物理内存和逻辑内存划分为&lt;strong&gt;固定大小的页框（Page Frame）&lt;strong&gt;和&lt;/strong&gt;页面（Page）&lt;/strong&gt;，大小通常为 4KB。&lt;/p&gt;</description></item></channel></rss>