进程与线程的资源边界、切换成本和故障影响有何不同
简答题简单486 次浏览
参考答案与解析
# 核心结论
进程是操作系统进行资源隔离、权限控制和故障约束的基本容器,线程是进程内部参与调度的执行单位。同一进程中的线程通常共享虚拟地址空间、代码段、堆、全局变量和已打开文件,但每个线程分别拥有寄存器现场、程序计数器、栈、线程局部存储和调度状态。不同进程通常拥有独立地址空间和安全上下文。因此,多进程更强调隔离与独立恢复,多线程更便于低成本共享数据,但同步错误和内存破坏也更容易影响整个进程。
# 底层机制
创建进程时,系统需要建立进程描述信息、虚拟内存映射和相应资源视图。类 Unix 系统的 fork() 通常使用写时复制:父子进程开始时可共享相同物理页,并把相关页面设置为不可直接写入;任一方写入时触发缺页异常
