Iro*_*ron 14 assembly multithreading cpu-registers
我对汇编知之甚少,并且有4个或8个左右的通用寄存器.计算机上的所有程序如何使用这些寄存器,特别是多线程和所有程序?
pax*_*blo 11
多线程本身不会影响正在使用的寄存器数量.当一个线程被换出时,它通常将其寄存器保存到内存中,下一个要运行的线程将这些寄存器从之前的保存中加载起来.
一个例子是具有线程控制块结构(TCB)的系统.此结构将包含(当线程未运行时),保存的指令指针,堆栈指针,通用寄存器,浮点寄存器,线程统计信息等.简而言之,一切都需要将线程完全恢复到换出另一个线程运行时所处的状态.
并非计算机中发生的所有事情都是在寄存器中完成的.现代编译器可以优化代码,使得使用最多的数据项保存在寄存器中,但绝大多数数据都保存在内存中,并且只在需要时才被购买到寄存器中.
我读过的关于这个主题的最好的书是Tanenbaum的 "结构化计算机组织",它从层次上检查计算机,从数字逻辑级到操作系统级,每个级别都在前面构建.
替代文字http://ecx.images-amazon.com/images/I/51PAGENX36L._SL500_AA300_.jpg
旁白:我的梦想是有一天写一本涵盖所有内容的书,从夸克级别到Emacs :-)
| 归档时间: |
|
| 查看次数: |
1131 次 |
| 最近记录: |