|
本人正在为一次实验操作系统(类BSD)写thread lib,这个thread lib是简化的pthread规范的线程库,第一次写,很多问题还想不清楚,想请教各位。
1、每个线程有自己的stack、pc和register set,那么在memory里面,各个线程是如何layout的?是不是每个thread拥有整个memory?
2、由于一个新的thread是利用类似clone()的这个syscall来实现的。那么context-switch是由thread lib实现还是由kernel来做?
3、一般tid藏在哪里?自己往momery里面mov这个tid?
先前阅读了oskit里面的pthread部分,由于它支持各种情况,对kernel的参数也可以直接的操作,看得比太明白,
请各位大虾给我一点指点,谢谢。 |
|