我承认我对这个问题做了最小的研究(只是几个浅谷歌搜索)。对线程进行线程化(特别是pthread,但是我的问题适用于所有x86 unix用户线程库)保存每个线程的段寄存器(fs,cs,ds等)?换句话说,每个线程都有自己的段寄存器副本吗?Pthread段寄存器
1
A
回答
3
在大多数现代操作系统中,段寄存器具有由操作系统决定的特定含义。 OS线程库将确保为每个线程始终正确设置寄存器。例如在Windows上,FS寄存器指向具有线程特定数据的段,因此每个线程切换都会更新该段,而DS寄存器指向进程范围的段,因此对于进程中的所有线程都是相同的。
如果一个平台允许用户设置段寄存器值,那么我希望它们可以像其他任何寄存器一样在线程切换器中正确保存。
一般来说,我会希望段寄存器被保留下来,因为这比查找它们“应该”更容易,并且导致出乎意料的可能性最小。
+0
太棒了。我问这个问题是因为我最近在C语言中开发了一个线程库(用于学习目的)。谢谢! – Chris
相关问题
- 1. 段寄存器和段落边界8086
- 2. XOR寄存器,寄存器(汇编)
- 3. 解释GDB寄存器(SSE寄存器)
- 4. 32位架构的DS段寄存器
- 5. Zfcuser添加寄存器字段
- 6. 为什么使用临时寄存器将值传递给段寄存器?
- 7. 寄存器JS
- 8. 与寄存器
- 9. 的寄存器
- 10. 寄存器
- 11. GDB寄存器与处理器寄存器不同吗?
- 12. XMM寄存器值
- 13. 寄存器读取
- 14. 寄存器工作
- 15. MPLAB Trace寄存器
- 16. 确定寄存器
- 17. 寄存器功能
- 18. ERLANG - wxGrid寄存器
- 19. 通用寄存器
- 20. MIPS $ gp寄存器
- 21. Directx 11寄存器
- 22. Modbus TCP寄存器
- 23. 寄存器值8086
- 24. MIPS寄存器保存
- 25. XMM寄存器存储
- 26. 处理器寄存器
- 27. 驱动器2 7段显示器有一个寄存器
- 28. 从DX:AX寄存器移动到单个32位寄存器
- 29. 寄存器和临时寄存器有什么区别?
- 30. 32位寄存器作为8位寄存器
你为什么在意? –