基础概念

进程是操作系统资源分配的最小单位。

CPU

进程 / 线程 / 协程关系:

* **进程 (Process)**: 资源容器(地址空间、文件描述符等),进程之间默认内存隔离。
* **线程 (Thread)**: CPU 调度基本单位,同一进程内线程共享地址空间。
* **协程 (Coroutine)**: 用户态轻量执行单元,由运行时调度,不直接由内核调度。
* 关系可理解为:**进程承载线程,线程承载并运行协程**。
flowchart LR GQ["G 队列\n(大量 goroutine)"] --> P["P\nProcessor\n(本地运行队列+调度资源)"] P --> M["M\nMachine\n(内核线程)"] M --> CPU["CPU Core"] CPU --> RUN["执行 goroutine"] BLOCK["G 阻塞(如 syscall/IO)"] --> SCHED["运行时重新调度"] SCHED --> P

Memory

IO

pmap

用于分析进程占用的内存详情。

# 查看详细扩展映射
pmap -x <PID>

IPC (进程间通信)

机制描述特点
管道 (Pipe)匿名管道用于父子进程,有名管道 (FIFO) 用于无关进程。半双工,流式。
信号 (Signal)软件中断,如 SIGINT (Ctrl+C)。异步,传递信息量小。
消息队列 (MQ)消息的链接表,存放在内核中。克服了信号量小、管道无格式限制。
共享内存映射一段能被其他进程访问的内存。最快,但需要同步机制。
信号量 (Semaphore)计数器,用于控制多个进程对共享资源的访问。P/V 操作,用于同步。
套接字 (Socket)跨网络或本地的双向通信。灵活性最高。