本文从linux中的进程、线程实现原理开始,扩展到linux线程模型,最后简单解释线程切换的成本。
刚开始学习,不一定对,好心人们快来指正我啊啊啊!!!
linux中的进程与线程
首先明确进程与进程的基本概念:
- 进程是资源分配的基本单位
- 线程是CPU调度的基本单位
- 一个进程下可能有多个线程
- 线程共享进程的资源
基本原理
linux用户态的进程、线程基本满足上述概念,但内核态不区分进程和线程。可以认为,内核中统一执行的是进程,但有些是“普通进程”(对应进程process),有些是“轻量级进程”(对应线程pthread或npthread),都使用task_struct
结构体保存保存。
使用fork
创建进程,使用pthread_create
创建线程。两个系统调用最终都都调用了do_dork
,而do_dork
完成了task_struct
结构体的复制,并将新的进程加入内核调度。
【文章福利】小编在群文件上传了一些个人觉得比较好得学习书籍、视频资料,有需要的可以进群【977878001】领取!!!额外赠送一份价值699的内核资料包(含视频教程、电子书、实战项目及代码)
内核资料直通车:Linux内核源码技术学习路线+视频教程代码资料
学习直通车ÿ