X86 为什么IA 32任务是不可重入的
我有一个关于IA32任务的问题 TSS只允许为任务保存一个上下文;所以一次 一个任务被调用(分派),一个对 任务将导致任务的当前状态丢失 我只是不明白为什么任务在IA 32中是不可重入的。如果正在运行任务,然后使用实际任务的tss段选择器执行jmp far,则任务的当前状态将保存在tss中。然后它将搜索tss描述符,并加载以前保存的状态。因此,EIP将指向下一条指令,等等。这种推理有什么错X86 为什么IA 32任务是不可重入的,x86,task,intel,tss,X86,Task,Intel,Tss,我有一个关于IA32任务的问题 TSS只允许为任务保存一个上下文;所以一次 一个任务被调用(分派),一个对 任务将导致任务的当前状态丢失 我只是不明白为什么任务在IA 32中是不可重入的。如果正在运行任务,然后使用实际任务的tss段选择器执行jmp far,则任务的当前状态将保存在tss中。然后它将搜索tss描述符,并加载以前保存的状态。因此,EIP将指向下一条指令,等等。这种推理有什么错 我理解忙位是如何工作的,但不理解为什么他们禁止调用同一个任务。我注意到,如果您有一个嵌套任务链,然后有一个
我理解忙位是如何工作的,但不理解为什么他们禁止调用同一个任务。我注意到,如果您有一个嵌套任务链,然后有一个任务调用它自己,它将创建一种循环,因为tss的前一个任务链接将是它自己 除了现代操作系统不使用x86任务切换这一事实之外,我对x86任务切换了解不多,因为在软件中这样做更快。大概设计意图是让操作系统只使用“任务”功能来处理用户空间进程/线程之间的上下文切换。任务直接跳转到其他任务(而不是让操作系统的调度程序选择一个任务并跳转到它)是否有用或合理?作为将控制权交给另一个内核线程的一种方式,它在微内核中有意义吗;您拥有所有其他寄存器、I/O端口权限和其他权限级别堆栈指针。重入意味着你可以回来。如果您刚刚破坏了任务的前一个状态,然后进行了重大修改,那么当您尝试返回时会发生什么?至于“为什么”,这是硬件设计师的问题。