43 进程的初步实现(下)

参考

https://blog.51cto.com/13475106/category6.html及狄泰软件相关课程

 

问题-如何通过进行上下文恢复进程执行?如何使得进程运行于3特权级
1.恢复上下文数据-通过任务数据结构中的寄存器值恢复上下文,几种esp寄存器记忆pop指令恢复通用寄存器(通过汇编中的栈操作指令以及RegValue结构体变量,设置寄存器的值),每次pop向高地址四个字节,需要注意的是启动一个新任务可以看作特殊的任务切换,切换的目标任务上下文信息中通过寄存器的值为0.
操作系统-进程的初步实现
操作系统-进程的初步实现
2.特权级转移(高-低)
在调用门中retf从高特权级返回低特权级,于此类似,iret指令也能从高特权级返回底特权级。在这里的操作是将esp指向目标内存位置(eip,cs,eflags,esp,ss),借助iret指令降特权级执行
在中断于中断返回时可以知道,在中断发生时,可从底特权级转移到高特权级,中断返回时,从高特权级转移到低特权级
操作系统-进程的初步实现
3.中断访问程序返回时的栈变化--iret命令操作的寄存器
操作系统-进程的初步实现
4.代码的执行方案如下
操作系统-进程的初步实现
5.进程启动"函数"
参数是任务数据结构的地址,esp+200/202表示偏移
操作系统-进程的初步实现
详细的代码放置以下链接:https://pan.baidu.com/s/1altDhV-kJNWamUcc4r5oEw 提取码:h2ao

操作系统-进程的初步实现

posted on   lh03061238  阅读(92)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示