找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 188|回复: 2

请教:《实模式到保护模式(第2版)》19.5 用户任务的创建和切换

[复制链接]

5

主题

6

回帖

91

积分

至尊会员

积分
91

至尊会员

发表于 2024-9-2 23:02:58 | 显示全部楼层 |阅读模式
本帖最后由 jetcan 于 2024-9-2 23:09 编辑

李老师,您好!

      今天复习 19.5 分页机制下,用户任务的创建。注意到 0,1,2 特权级栈,在虚拟内存的低 2GB 分配:

     从特权级栈选择子加入 LDT 的角度看,应该在虚拟内存低 2GB 分配;
     但内核服务例程,如果有压栈或出栈操作,内核需要访问这些特权级栈,好像又应该分配在虚拟内存的高 2GB;
     两种虚拟内存分配方法,都已在程序中调试过,都可以正常运行。

    这里把自己搞晕了,特权级栈究竟应该:在虚拟内存低 2GB 还是高 2GB 分配呢?

   烦请李老师解答,谢谢!

350

主题

281

回帖

2834

积分

管理员

积分
2834
发表于 2024-9-3 08:37:22 | 显示全部楼层
全局或者局部空间与特权级无关。

执行时涉及访问多个任务的,分配在全局空间。比如任务调度需要访问所有任务的任务控制块,那么任务控制块只能位于全局空间。如果位于某个任务的局部空间而那个任务没执行,就无法(通过CR3)访问。
反之,执行时只涉及当前任务的,分配在当前任务的局部空间。

5

主题

6

回帖

91

积分

至尊会员

积分
91

至尊会员

 楼主| 发表于 2024-9-3 09:40:19 | 显示全部楼层
本帖最后由 jetcan 于 2024-9-3 10:03 编辑

感谢李老师迅速而细致的解惑,多谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2024-9-17 03:40 , Processed in 0.292146 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表