进程管理
大约 2 分钟
进程管理
(更详细的见 “《小林coding》” 笔记部分)
【概念】进程 线程 协程(复制自个人的Go语言笔记)
介绍
程序 (Program):用某种语言写的为了完成特定任务的一组指令集合,静态的
进程 (Process):程序一次执行过程。每个进程有不同的内存区域(虚拟内存),有产生、存在、消亡的生命周期
- 系统相关:计算机系统资源的分配单位
- 上下文切换需要保存和恢复
- (都要部分,见下总结)
- 内存管理信息:页表、内存分段信息等
- I/O状态信息:打开的文件描述符、网络连接等
- 系统资源信息:CPU使用时间、内存使用量等
- CPU调度信息:如进程优先级、调度队列等,确保调度策略的一致性
线程 (Thread):进程可细分为线程。可同一时间执行(并发)
- 系统相关:CPU调用的单位
- 上下文切换需要保存和恢复
- (都要部分,见下总结)
- 线程栈
- 线程栈 状态:包括线程的优先级、线程标识符(TID)、线程的状态(运行、就绪、阻塞等)等
- 线程栈帧 特有的同步数据
协程 (Goroutine):又称微线程,纤程、轻量级线程。本质还是一个线程
- 系统相关:无关,纯用户态的
- 上下文切换需要保存和恢复
- (都要部分,见下总结)
- 协程栈
- 协程栈 通道和调度信息
- 协程栈帧 用户定义的数据
总结
- 上下文切换需要保存和恢复:“都要” 指:
- 寄存器:程序计数器(PC)、堆栈指针(SP)、状态寄存器、通用寄存器等。
- 状态信息:包括进程或线程的优先级、标识符、状态等
- 上下文切换需要保存和恢复:“都要” 指: