Skip to content

Commit a8d1a5f

Browse files
committed
docs: 完善操作系统内存和文件系统内容 — 发布与面试题补充
- 新增内存管理和文件系统两篇操作系统文章 - 同步更新侧边栏、README 和操作系统模块目录 - 补充内存管理与文件系统相关面试题并加入配图 - 验证:pnpm docs:build 已通过
1 parent 85a4170 commit a8d1a5f

9 files changed

Lines changed: 828 additions & 57 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,9 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8](https://docs.oracle.
151151
- [进程与线程详解:区别、状态、通信、上下文切换与虚拟线程](./docs/cs-basics/operating-system/process-and-thread.md)
152152
- [进程间通信(IPC)详解:管道、消息队列、共享内存、Socket 与 Binder](./docs/cs-basics/operating-system/ipc.md)
153153
- [死锁详解:四个必要条件、Java 死锁排查与数据库死锁处理](./docs/cs-basics/operating-system/dead-lock.md)
154+
- [操作系统内存管理详解:分页、分段、页面置换、Swap 与 OOM](./docs/cs-basics/operating-system/memory-management.md)
154155
- [虚拟内存详解:地址转换、TLB、缺页中断与页面置换](./docs/cs-basics/operating-system/virtual-memory.md)
156+
- [操作系统文件系统详解:inode、VFS、Page Cache 与日志机制](./docs/cs-basics/operating-system/file-system.md)
155157
- [I/O 多路复用详解:select、poll、epoll 原理与区别](./docs/cs-basics/operating-system/io-multiplexing.md)
156158
- [零拷贝详解:mmap、sendfile 与 splice](./docs/cs-basics/operating-system/zero-copy.md)
157159
- **Linux**

docs/.vuepress/sidebar/cs-basics.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,11 @@ export const csBasics = [
131131
text: "面试必考",
132132
icon: ICONS.STAR,
133133
children: [
134+
{ text: "⭐️内存管理详解", link: "memory-management" },
134135
{ text: "⭐️虚拟内存详解", link: "virtual-memory" },
135136
{ text: "⭐️I/O 多路复用详解", link: "io-multiplexing" },
136137
{ text: "⭐️零拷贝详解", link: "zero-copy" },
138+
{ text: "⭐️文件系统详解", link: "file-system" },
137139
],
138140
},
139141
{

docs/cs-basics/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,9 @@ head:
7272
- [进程与线程详解:区别、状态、通信、上下文切换与虚拟线程](./operating-system/process-and-thread.md):讲清进程和线程的资源边界、状态转换、上下文切换和 Java 虚拟线程。
7373
- [进程间通信(IPC)详解:管道、消息队列、共享内存、Socket 与 Binder](./operating-system/ipc.md):对比管道、消息队列、共享内存、Socket、Binder 等 IPC 机制。
7474
- [操作系统锁与同步机制详解:mutex、semaphore、condition variable、spinlock 与 futex](./operating-system/os-lock-and-sync.md):讲清临界区、互斥锁、信号量、条件变量、自旋锁和 futex。
75+
- [操作系统内存管理详解:分页、分段、页面置换、Swap 与 OOM](./operating-system/memory-management.md):讲清内存分配、内存碎片、页表、TLB、页面置换、Swap 和 OOM。
7576
- [虚拟内存详解:地址转换、TLB、缺页中断与页面置换](./operating-system/virtual-memory.md):讲清分页、页表、TLB、缺页中断和页面置换。
77+
- [操作系统文件系统详解:inode、VFS、Page Cache 与日志机制](./operating-system/file-system.md):讲清 inode、dentry、文件描述符、VFS、Page Cache 和日志机制。
7678
- [I/O 多路复用详解:select、poll、epoll 原理与区别](./operating-system/io-multiplexing.md):讲清 select、poll、epoll 的实现原理、性能差异和适用场景。
7779
- [零拷贝详解:mmap、sendfile 与 splice](./operating-system/zero-copy.md):讲清传统 I/O、mmap、sendfile、splice 的拷贝路径和工程应用。
7880
- [Linux 基础知识总结](./operating-system/linux-intro.md):掌握 Linux 目录、文件权限、常用命令和系统基础。

docs/cs-basics/operating-system/README.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: 操作系统专题:进程线程、锁与同步、虚拟内存、I/O 多路复用、Linux 与 Shell
2+
title: 操作系统专题:进程线程、内存管理、文件系统、I/O 多路复用、Linux 与 Shell
33
description: 操作系统面试与学习路线,涵盖进程线程、进程间通信、锁与同步机制、死锁、虚拟内存、零拷贝、I/O 多路复用、文件系统、Linux 基础、Shell 编程和常见操作系统面试题。
44
category: 计算机基础
55
tag:
@@ -42,11 +42,13 @@ head:
4242
4. [进程间通信(IPC)详解:管道、消息队列、共享内存、Socket 与 Binder](./ipc.md):对比管道、消息队列、共享内存、信号量、Socket、Binder 等 IPC 方案。
4343
5. [操作系统锁与同步机制详解:mutex、semaphore、condition variable、spinlock 与 futex](./os-lock-and-sync.md):理解临界区、互斥锁、信号量、条件变量、自旋锁和 futex 的职责边界。
4444
6. [死锁详解:四个必要条件、Java 死锁排查与数据库死锁处理](./dead-lock.md):讲清死锁等待环、四个必要条件、Java 线程死锁排查和数据库事务重试。
45-
7. [虚拟内存详解:地址转换、TLB、缺页中断与页面置换](./virtual-memory.md):把分页、页表、TLB、缺页中断和页面置换串起来。
46-
8. [I/O 多路复用详解:select、poll、epoll 原理与区别](./io-multiplexing.md):理解一个线程处理海量连接背后的内核机制。
47-
9. [零拷贝详解:mmap、sendfile 与 splice](./zero-copy.md):搞清传统 I/O、mmap、sendfile、splice 的拷贝路径和适用场景。
48-
10. [Linux 基础知识总结](./linux-intro.md):掌握目录结构、文件权限、常用命令和基础排障能力。
49-
11. [Shell 编程基础知识总结](./shell-intro.md):学习变量、条件、循环、函数和常用脚本写法。
45+
7. [操作系统内存管理详解:分页、分段、页面置换、Swap 与 OOM](./memory-management.md):理解内存分配、碎片、页表、页面回收和 OOM。
46+
8. [虚拟内存详解:地址转换、TLB、缺页中断与页面置换](./virtual-memory.md):把分页、页表、TLB、缺页中断和页面置换串起来。
47+
9. [操作系统文件系统详解:inode、VFS、Page Cache 与日志机制](./file-system.md):理解文件、目录、inode、VFS、Page Cache 和日志恢复。
48+
10. [I/O 多路复用详解:select、poll、epoll 原理与区别](./io-multiplexing.md):理解一个线程处理海量连接背后的内核机制。
49+
11. [零拷贝详解:mmap、sendfile 与 splice](./zero-copy.md):搞清传统 I/O、mmap、sendfile、splice 的拷贝路径和适用场景。
50+
12. [Linux 基础知识总结](./linux-intro.md):掌握目录结构、文件权限、常用命令和基础排障能力。
51+
13. [Shell 编程基础知识总结](./shell-intro.md):学习变量、条件、循环、函数和常用脚本写法。
5052

5153
## 核心文章
5254

@@ -56,7 +58,9 @@ head:
5658
- [进程间通信(IPC)详解:管道、消息队列、共享内存、Socket 与 Binder](./ipc.md):讲清常见 IPC 方式的原理、优缺点和选型思路。
5759
- [操作系统锁与同步机制详解:mutex、semaphore、condition variable、spinlock 与 futex](./os-lock-and-sync.md):讲清临界区、互斥锁、信号量、条件变量、自旋锁、futex、内存顺序和内核锁上下文。
5860
- [死锁详解:四个必要条件、Java 死锁排查与数据库死锁处理](./dead-lock.md):讲清死锁形成条件、资源分配图、Java 排查工具、数据库死锁检测和应用层重试策略。
61+
- [操作系统内存管理详解:分页、分段、页面置换、Swap 与 OOM](./memory-management.md):讲清 VSZ/RSS/PSS、连续分配、内存碎片、伙伴系统、页表、TLB、缺页异常、页面回收和 OOM。
5962
- [虚拟内存详解:地址转换、TLB、缺页中断与页面置换](./virtual-memory.md):讲清虚拟地址、物理地址、分页、多级页表、TLB、缺页中断和页面置换算法。
63+
- [操作系统文件系统详解:inode、VFS、Page Cache 与日志机制](./file-system.md):讲清文件、目录、inode、dentry、文件描述符、VFS、Page Cache、fsync 和日志机制。
6064
- [I/O 多路复用详解:select、poll、epoll 原理与区别](./io-multiplexing.md):讲清网络 I/O 的两个阶段、五种 I/O 模型,以及 select、poll、epoll 的区别。
6165
- [零拷贝详解:mmap、sendfile 与 splice](./zero-copy.md):讲清零拷贝到底省掉了什么,以及 Java NIO、Kafka、RocketMQ 中的典型应用。
6266
- [Linux 基础知识总结](./linux-intro.md):讲解 Linux 目录树、文件权限、常用命令、用户和进程管理。

0 commit comments

Comments
 (0)