梅里雪山登山看到寺庙:什么是可重入过程?

来源:百度文库 编辑:高考问答 时间:2024/05/01 02:18:54
这是操作系统的知识

可重入程序是指该程序被某程序调用,但还未结束,又被另一个程序调用。
  可重入程序是通过减少对换信息量来改善系统响应时间的。
  可重入程序主要通过共享来使用同一块存储空间的,或者通过动态链接的方式将所需的程序段映射到相关程序中去,其最大的优点是减少了对程序段的调入调出。由此来减少对换信息量。

开发实时占先式的操作系统,可重入函数是非用不可的。可重入函数可以被一个以上的任务调用,而不必担心数据被破坏。可重入函数任何时候都可以被中断,一段时间后又可以运行,而应用数据不会丢失。使得函数具有可重入性必须使得函数能够满足下列三个条件之一:

① 不使用共享资源;
② 在使用共享资源时关中断,使用完毕后再开中断;
③ 在使用共享资源时申请信号量,使用完后释放信号量。

这些条件在标准C中编程很容易实现,但是在Keil C51中就比较麻烦。因为标准C是把局部变量分配到用户堆栈中(动态分配),而Keil C51将局部变量分配到寄存器或内存固定地址(静态分配),并通过变量覆盖分析的方法,使多个函数的局部变量使用相同的内存地址以减少内存占用。在Keil C51中,如果局部变量分配在寄存器中还好些,如果局部变量分配在内存中就比较麻烦。

若对所使用的全局变量不加以保护,则此函数就不具有可重入性,即当多个进程调用此函数时,很有可能使有关全局变量变为不可知状态。

在不同的学科具体意思不一样了。