ImageVerifierCode 换一换
格式:PPT , 页数:10 ,大小:350KB ,
文档编号:6158019      下载积分:16 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-6158019.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(hwpkd79526)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(linux 进程切换 堆栈 演示.ppt)为本站会员(hwpkd79526)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

linux 进程切换 堆栈 演示.ppt

1、step1:复制两个变量到寄存器:复制两个变量到寄存器:prev a(prev)next d(next)即即:eax=prev_A 或或 eax=%p(%ebp_A)edx=next_A 或或 edx thread.sp=esp_A 在调用在调用switch_to时,时,prev是指向是指向A进程自己的进程描述符进程自己的进程描述符的。的。ebp%ebp 0 4 8 12 eflags-4 进程进程A的内核栈空间的内核栈空间0 x124 0 x120 0 x11c 0 x118 0 x114 0 x110 0 x10c0 x108 0 x104 0 x100%eax%edx%ecx%ebx%e

2、si%edi%esp%ebpprev_Anext_AA_ebp%espEsp_A内存空间内存空间寄存器组寄存器组next_ip%flagsA_flag%eax%edx%ecx%ebx%esi%edi%esp%ebpprev_Anext_AA_ebpEsp_A内存空间内存空间寄存器组寄存器组next_ipebp%ebp 0 4 8 12 eflags-4 进程进程A的内核栈空间的内核栈空间0 x2080 x204 0 x2000 x114 0 x110 0 x10c0 x108 0 x104 0 x100%esp0 x20c进程进程B的内核栈空间的内核栈空间step4:从从next(进程(进程B

3、)的描述符中取出之前从)的描述符中取出之前从B切换出去时切换出去时保存的保存的esp_B。movl%next_sp,%espnt/*restore ESP*/它可以表示成:它可以表示成:esp_B thread.sp%flagsA_flagstep5:把标号为把标号为1的指令地址保存到的指令地址保存到A进程描述符的进程描述符的ip域:域:movl$1f,%prev_ipnt /*save EIP */它可以表示成:它可以表示成:prev_A-thread.ip=%1f ebp%ebp 0 4 8 12 eflags-4 进程进程A的内核栈空间的内核栈空间0 x2080 x204 0 x2000

4、 x114 0 x110 0 x10c0 x108 0 x104 0 x100%esp0 x20c进程进程B的内核栈空间的内核栈空间%eax%edx%ecx%ebx%esi%edi%esp%ebpprev_Anext_AA_ebpEsp_A内存空间内存空间寄存器组寄存器组Prev_A_ipnext_ip$1f%flagsA_flagstep6:将返回地址保存到堆栈,然后调用_switch_to()函数,_switch_to()函数完成硬件上下文切换。pushl%next_ipnt /*restore EIP */根据esp的位置,压到了B的堆栈里面 jmp _switch_ton /*regp

5、arm call */ebp%ebp 0 4 8 12 eflags-4 进程进程A的内核栈空间的内核栈空间0 x2080 x204 0 x2000 x114 0 x110 0 x10c0 x108 0 x104 0 x100%esp0 x20c进程进程B的内核栈空间的内核栈空间%eax%edx%ecx%ebx%esi%edi%esp%ebpprev_Anext_AA_ebpEsp_A内存空间内存空间寄存器组寄存器组Prev_A_ipnext_ipnext_ip%flagsA_flagnext_ipebpeflagsstep7:_switch_to 切换硬件上下文件ebp%ebp 0 4 8

6、12 eflags-4 进程进程A的内核栈空间的内核栈空间0 x2080 x204 0 x2000 x114 0 x110 0 x10c0 x108 0 x104 0 x100%esp0 x20c进程进程B的内核栈空间的内核栈空间%eax%edx%ecx%ebx%esi%edi%esp%ebpprev_Anext_AA_ebpEsp_A内存空间内存空间寄存器组寄存器组Prev_A_ipnext_ipnext_ipTSS_A%flagsAflagnext_ipebpeflags%eip$1f step7:_switch_to 切换硬件上下文件ebp%ebp 0 4 8 12 eflags-4 进

7、程进程A的内核栈空间的内核栈空间0 x2080 x204 0 x2000 x114 0 x110 0 x10c0 x108 0 x104 0 x100%esp0 x20c进程进程B的内核栈空间的内核栈空间%eax%edx%ecx%ebx%esi%edi%esp%ebpprev_Bnext_BA_ebpEsp_A内存空间内存空间寄存器组寄存器组Prev_A_ipnext_ipnext_ipTSS_B%flagsA_flagebpeflagsStep9:_switch_to()返回后继续从1:标号后面开始执行,修改ebp到B的内核堆栈,恢复B的eflags:popl%ebpnt /*restore

8、 EBP */popfln /*restore flags*/ebp%ebp 0 4 8 12 eflags-4 ebp进程进程A的内核栈空间的内核栈空间0 x2080 x204 0 x2000 x114 0 x110 0 x10c0 x108 0 x104 0 x100%esp0 x20c进程进程B的内核栈空间的内核栈空间%eax%edx%ecx%ebx%esi%edi%esp%ebpprev_Bnext_BEsp_A内存空间内存空间寄存器组寄存器组Prev_A_ipnext_ipeflagsnext_ip%flagsB_flagB_ebpStep10:将eax写入last,以在B的堆栈中保存正确的prev信息。=a(last)即 last_B=%eaxebp%ebp 0 4 8 12 eflags-4 进程进程A的内核栈空间的内核栈空间0 x2080 x204 0 x2000 x114 0 x110 0 x10c0 x108 0 x104 0 x100%esp0 x20c进程进程B的内核栈空间的内核栈空间%eax%edx%ecx%ebx%esi%edi%esp%ebpnext_BEsp_A内存空间内存空间寄存器组寄存器组Prev_A_iplastnext_ipnext_ip%flagsB_flagB_ebp

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|