有人能告诉我在Unix中有什么'呼出表'吗? Maurice J. Bach在他的书Design of the UNIX Operating System中给出了解释,但我很难理解这些例子,特别是解释负面超时字段的原因。为什么在那里使用软件中断?
谢谢!
答案 0 :(得分:4)
中断停止当前代码并开始执行高优先级处理程序;当这个处理程序运行时,没有别的东西可以获得CPU。因此,如果您需要执行复杂的操作,则中断处理程序将挂起整个系统。
解决方案:使用所有必需数据填充数据结构,然后使用指向调出表中处理程序的指针存储此数据结构。某些服务(通常是时钟处理程序)最终将访问该表并在标准上下文中逐个执行条目(即不阻止进程切换的条目)。
答案 1 :(得分:1)
在System V unix中,内核或设备驱动程序可以安排某些函数在以后由内核运行(或“调出”)。内核时钟处理程序负责确保执行此类已注册的调用。调出表是内核数据结构,其中存储了这种注册的“调出”。
我不知道它们通常用于什么目的。