嵌入式操作系统核原理和开发(线程切换).docVIP

  • 6
  • 0
  • 约4.37千字
  • 约 5页
  • 2017-07-10 发布于贵州
  • 举报

嵌入式操作系统核原理和开发(线程切换).doc

嵌入式操作系统核原理和开发(线程切换)

嵌入式操作系统内核原理和开发(线程切换) 在操作系统中,线程切换是很重要的一个环节。如果没有线程的切换,我们如何才能实现多线程的并发运行呢?既然要实现切换,那么一方面,我们需要对原来的寄存器进行保存,另外一方面我们还要压入新堆栈的寄存器,这样才能实现线程切换的效果。在x86下面,因为切换线程的ip地址是固定的,所以切换所需要的寄存器也是固定的,一般来说保存eax、ebx、ecx、edx、esi、edi、ebp和esp即可。比如说,像这样, [cpp] view plaincopy void swap(UINT32* prev, UINT32* next) { __asm(push %%eax\n\t push %%ebx\n\t push %%ecx\n\t push %%edx\n\t push %%esi\n\t push %%edi\n\t push %%ebp\n\t push %%esp\n\t lea 0x8(%%ebp), %%eax\n\t mov (%%eax), %%eax\n\t mov %%esp

文档评论(0)

1亿VIP精品文档

相关文档