什么是多线程( 二 )


【什么是多线程】用途
在大多数研究领域内是要求线程调度程序要能够快速选取其中一个已就绪线程去运行而不是一个一个运行而降低效率 。所以要让调度程序去分辨线程的优先级是很重要的 。而线程调度程序可能是以硬件、软件或是软硬件并存的形式存在 。
而另一个研究领域则是要研究何种事件 高速缓存失败、内部运行连续性、使用DMA等会造成线程切换 。
如果多线程的方案会复制 所有软件可见的状态包括特许的控制登录、TLB 等那就能够让 虚拟机去创造各式线程 。这样貌就允许在相同的处理器中每个线程跑各自的操作系统 。换句话说如果只有存储了用户模式的状态就能够让相同的裸晶大小的芯片在一段时光内处理更多的线程 。
硬件支持 修改
多线程硬件支持的目标即支持快速进行就绪态线程、执行态线程间的切换 。为达成这个目标需要硬件实现保存、恢复程序看得见的寄存器以及一些对程序执行有影响的控制寄存器 如程序计数器PC、程序状态寄存器SR 。从一个线程切换到另一个线程对硬件来讲意味着保存当前线程的一组寄存器的值并恢复即将执行线程的一组寄存器的值 。
新增这些功能的硬件有以下优势:
为了在各个线程间有效率的进行切换每个线程需要保存自我的一组寄存器集 register set 。有些硬件设计成每个处理器核心具有两组寄存器文件以实此刻多个线程间快速切换 。