我对 IA32 任务有疑问。
TSS 只允许为一项任务保存一个上下文;因此,一旦 任务被调用(调度),递归(或可重入)调用 任务会导致任务的当前状态丢失。
我根本不明白为什么任务在 IA 32 中是不可重入的。如果你有一个任务正在运行,然后你使用实际任务的 tss 段选择器进行 jmp 远操作,则任务的当前状态将保存在tss。然后它会搜索tss描述符,并加载之前保存的状态。因此,EIP 将指向下一条指令等。这个推理有什么问题吗?
我了解繁忙位的工作原理,但不知道他们禁止调用同一任务的原因。我注意到,如果您有一个嵌套任务链,然后一个调用自身,它将创建一种循环,因为 tss 的前一个任务链接将是其自身。
最近,我一直在阅读Intel IA-32开发人员手册。 我对Ia-32任务的非递归调用的理解是: