首页 理论教育 操作系统原理之动态链接和链接中断处理

操作系统原理之动态链接和链接中断处理

时间:2023-10-17 理论教育 版权反馈
【摘要】:为了支持动态链接还要附加间接编址和链接故障指示位两个硬件设施。链接故障指示位设在间接字中,用于表示所访问的段号是否已链接上。如果所要访问的段不在内存中,则由动态地址转换机构产生缺段中断,由操作系统进行相应处理。由于链接位为1,所以产生链接中断信号。图6-20段的动态链接应该注意,并不是动态链接后该段就在内存中了。

操作系统原理之动态链接和链接中断处理

1.动态链接

采用段式虚存系统可以实现程序的动态链接。也就是说,仅当用到某个分段时才对它进行链接,从而避免不必要的链接。

在MULTICS系统中采用了动态链接技术。为了支持动态链接还要附加间接编址和链接故障指示位两个硬件设施。间接编址是指令中表示地址的部分,它并不是所要存取数据的直接地址,而是间接地址——存放直接地址的地址,即它所指向的单元中存放所需数据的地址。包括直接地址的字称为间接字。链接故障指示位设在间接字中,用于表示所访问的段号是否已链接上。直接编址与间接编址的区别如图6-19所示。

图6-19 直接编址与间接编址

如果所要访问的段尚未链接上(即相应指令利用间接字寻址时,发现链接故障位被置为1),则硬件产生链接中断,控制转向操作系统的链接故障处理程序去处理。

如果所要访问的段不在内存中,则由动态地址转换机构产生缺段中断,由操作系统进行相应处理。(www.xing528.com)

2.链接中断处理

如图6-20(a)所示,程序MAIN中有一条指令LOAD*1,31100。这是间接编址形式,它从本段的100号单元中得到间接字。由于链接位为1,所以产生链接中断信号。于是,操作系统执行链接中断处理程序:根据间接字中的地址31108,找到段X;文件系统根据这个段名找到它的全部信息,然后为X段分配一个段号,例如4(按段表的序号)。再根据Y找到它的位移量,例如200,然后修改间接字,将链接位清0,其中地址部分改为链接后的直接地址41200。这时,链接工作完成。将控制重新转向被中断的指令LOAD:,1,31100,继续执行下去。链接后的情况如图6-20(b)所示。

图6-20 段的动态链接

应该注意,并不是动态链接后该段就在内存中了。所以,重新启动被中断的指令时,就会发生缺段中断。当采取一定的算法将该段装入内存后,相应程序才能真正执行下去。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈