参考文章:
1、基本原理
(1)线程是cpu调度的基本单位。进程是资源分配的单位。
(2)多线程模式 分为 用户级线程 以及 内核级线程,组成一对多,多对一等模式
2、进程、线程的调度
(1)任何时刻,单处理器系统都只能处理一个进程的代码。当操作系统决定要把控制权从当前进程转换到某个新进程时,就会进行上下文切换。
进程上下文内容:
- 通用目的寄存器
- 浮点寄存器
- 程序计数器
- 用户栈
- 状态寄存器
- 内核栈
- 各种内核数据结构:比如描绘地址空间的页表,包含有关当前进程信息的进程表,以及包含进程已打开文件的信息的文件表。
(2) 线程切换类似于进程切换,也存在着线程的上下文。但是不需求切换内存映射虚拟地址。
3、协程
类似于多线程调度切换,不过这个调度切换的逻辑流程是由用户自己完成的,而不是交由cpu内核去执行的。用户自己实现线程等待让出操作。