linux 进程切换核心代码switch_to剖析.pptVIP

  • 5
  • 0
  • 约3.31千字
  • 约 17页
  • 2017-05-30 发布于北京
  • 举报
Linux内核剖析之进程切换 郭海林 2012.10.20 ATT汇编基础 ATT汇编与Intel汇编比较 GCC内联汇编 进程切换概述 __schedule() prev = rq-curr; next = pick_next_task(rq); if (likely(prev != next)) context_switch(rq, prev, next); 执行进程的切换: 切换页全局目录以安装一个新的地址空间 切换内核态堆栈和硬件上下文 进程切换概述 硬件上下文——共享的CPU寄存器 进程切换时,硬件上下文保存在: task_struct的类型为thread_struct的thread字段 大部分寄存器,如esp,eip... 内核态堆栈 状态寄存器、通用寄存器,如eax,ebx... switch_to 宏 pushfl pushl %%ebp movl %%esp, %[prev_sp] movl %[next_sp], %%esp movl $1f, %[prev_ip] pushl %[next_ip] jmp __switch_to 1: popl %%ebp popfl /* output parameters */ : [prev_sp] =m (prev-thread.sp), [prev

文档评论(0)

1亿VIP精品文档

相关文档