操作系统基础

进程线程 · CPU调度 · 内存管理 · I/O多路复用 · 死锁 · AI Infra系统视角

当前模块
学习进度0 / 3
Module Switcher
操作系统基础
内容模块

OS 核心机制

进程、线程、协程:资源边界和调度主体

操作系统面试里,进程、线程、协程不是三个孤立定义,而是三种不同层次的执行模型。核心问题是:谁拥有资源,谁被内核调度,谁在用户态切换。

概念资源边界调度者切换成本适合场景典型风险
进程独立虚拟地址空间、文件描述符、信号处理、资源限制内核最高强隔离、多服务、多 worker、容器主进程IPC 成本高,共享状态复杂
线程共享进程地址空间,独立栈和寄存器上下文内核中等CPU 并行、I/O 并发、推理 worker pool锁竞争、数据竞争、死锁、false sharing
协程运行在线程内,共享进程/线程资源用户态 runtime最低高并发 I/O、异步 RPC、事件循环阻塞调用会卡住调度线程,不能自动利用多核
进程是资源隔离单位,线程是内核调度单位,协程是用户态调度的轻量执行单元。

上下文切换到底切什么

切换类型需要保存/恢复代价来源排查信号
进程切换寄存器、内核栈、页表/地址空间、调度状态TLB 失效、cache 污染、内核调度pidstat -wvmstat cs
线程切换寄存器、线程栈、调度状态内核调度、cache 污染、锁等待top -Hperf sched
协程切换用户态栈/状态机、少量寄存器runtime 调度,通常无需内核态runtime profiler、事件循环延迟
Q: 进程、线程、协程有什么区别?面试怎么回答?

回答思路:先按资源隔离、调度主体和切换成本三条线回答,再补适用场景。

进程

进程拥有独立地址空间和资源边界,隔离性最好,适合服务拆分和容器主进程,但跨进程通信成本较高。

线程

线程共享进程地址空间,是内核实际调度的执行实体,适合多核并行,但需要处理锁、数据竞争和死锁。

协程

协程是用户态调度的轻量执行单元,适合 I/O 密集和高并发,但单个线程内的协程不能自动利用多核,阻塞调用会影响整个调度线程。

面试口径:进程看隔离,线程看并行,协程看轻量异步;不要只背定义,要说出调度和资源边界。