<?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/categories/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/</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/categories/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/index.xml" rel="self" type="application/rss+xml"/><item><title>09. 进程与线程</title><link>https://plumephp.com/cs-process-thread/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-process-thread/</guid><description>&lt;h2 id="1-进程process"&gt;1. 进程（Process）&lt;/h2&gt;
&lt;h3 id="11-定义"&gt;1.1 定义&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;进程是资源分配的基本单位&lt;/strong&gt;，拥有独立的地址空间、文件描述符、代码段、数据段和堆栈。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;进程地址空间布局：

高地址 → ┌─────────────┐
 │ 栈（Stack） │ ← 局部变量、函数调用，向下增长
 │ ↓ │
 │ 堆（Heap） │ ← 动态分配，向上增长
 │ ↑ │
 │ BSS（未初始化数据）│
 │ 数据段（全局/静态）│
 │ 代码段（Text） │
低地址 → └─────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="12-进程控制块pcb"&gt;1.2 进程控制块（PCB）&lt;/h3&gt;
&lt;p&gt;PCB 是操作系统管理进程的核心数据结构：&lt;/p&gt;</description></item><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><item><title>11. 文件系统与 I/O</title><link>https://plumephp.com/cs-filesystem-io/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-filesystem-io/</guid><description>&lt;h2 id="1-文件系统基础"&gt;1. 文件系统基础&lt;/h2&gt;
&lt;h3 id="11-文件系统的作用"&gt;1.1 文件系统的作用&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;文件系统负责将磁盘上的裸数据组织成逻辑上的文件和目录，提供统一的读写接口。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;文件系统层次：

用户接口层（open/read/write）
 ↓
虚拟文件系统 VFS（统一抽象）
 ↓
具体文件系统（ext4/XFS/Btrfs）
 ↓
块设备驱动（磁盘 I/O）
 ↓
物理磁盘（扇区、柱面）
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="12-磁盘物理结构"&gt;1.2 磁盘物理结构&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;磁盘 → 柱面（Cylinder）→ 磁道（Track）→ 扇区（Sector，通常 512B 或 4KB）

寻道时间：磁头移动到目标磁道（最耗时）
旋转延迟：等待扇区旋转到磁头下方（半圈平均）
传输时间：读取数据到内存
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="2-inode-与文件存储"&gt;2. inode 与文件存储&lt;/h2&gt;
&lt;h3 id="21-inode-结构"&gt;2.1 inode 结构&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;**inode（索引节点）**是文件系统管理文件的核心数据结构，每个文件/目录对应一个 inode。&lt;/p&gt;</description></item><item><title>12. CPU 调度</title><link>https://plumephp.com/cs-cpu-scheduling/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-cpu-scheduling/</guid><description>&lt;h2 id="1-调度的层次"&gt;1. 调度的层次&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;高级调度（作业调度）：从后备队列选作业调入内存
 ↓
中级调度（交换调度）：内存紧张时换出/换入进程
 ↓
低级调度（CPU 调度）：从就绪队列选进程分配 CPU ← 本课重点
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="11-调度时机"&gt;1.1 调度时机&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;进程终止&lt;/li&gt;
&lt;li&gt;进程阻塞（等待 I/O）&lt;/li&gt;
&lt;li&gt;I/O 中断完成&lt;/li&gt;
&lt;li&gt;时间片用完（抢占式）&lt;/li&gt;
&lt;li&gt;新进程进入就绪队列（抢占式）&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2-调度算法"&gt;2. 调度算法&lt;/h2&gt;
&lt;h3 id="21-fcfs先来先服务"&gt;2.1 FCFS（先来先服务）&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;进程 到达时间 执行时间
P1 0 8
P2 1 4
P3 2 9

甘特图： P1(0-8) → P2(8-12) → P3(12-21)

周转时间：P1=8, P2=11, P3=19 平均=12.67
等待时间：P1=0, P2=7, P3=10 平均=5.67

护航效应（Convoy）：长进程阻塞短进程
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="22-sjf最短作业优先"&gt;2.2 SJF（最短作业优先）&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;非抢占式：选择执行时间最短的进程。&lt;br&gt;
&lt;strong&gt;抢占式版本&lt;/strong&gt;：SRTF（最短剩余时间优先），新到达的更短进程可抢占。&lt;/p&gt;</description></item><item><title>13. 死锁与同步</title><link>https://plumephp.com/cs-deadlock/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/cs-deadlock/</guid><description>&lt;h2 id="1-死锁的定义"&gt;1. 死锁的定义&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;死锁&lt;/strong&gt;：多个进程因竞争资源而相互等待，若无外力干预，永远都无法继续执行。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;进程 P1 持有资源 A，等待资源 B
进程 P2 持有资源 B，等待资源 A

 P1 ───持有──→ 资源 A
 ↑ │
 │ ↓
 等待 等待
 │ ↓
 P2 ←──持有─── 资源 B
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="2-死锁的四个必要条件"&gt;2. 死锁的四个必要条件&lt;/h2&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;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;p&gt;&lt;strong&gt;四个条件必须同时满足才会死锁，破坏任一条件即可预防。&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>