操作系统的可重入性
上一篇 /
下一篇 2007-10-15 23:27:15
/ 个人分类:windows操作系统学习
想找
操作系统可重入性的相关资料。结果没有找到。看了一下发现可重入性应该是指函数的可重入性。
在cdsn上看到相关解释。摘抄下来做参考。不知道windows是怎样实现这个可重入性的。^_^有待进一步研究。
---------------
要编写可重如函数,光靠控制变量的使用是不够的。还要控制
系统资源的使用(例如文件句柄、Socket句柄等等)。
Dm;kkW#S5UL7a0 51Testing软件测试网g$m/f] l/m:YB(x\Ha'r 因此,可重入函数的编写是颇为复杂的。不过,最简单的就是设置临界区保护关键代码。当初,“DOS内核不可重入”是编写TSR(DOS内存驻留程序)的一大难题。后来,
微软设置了一个DOS临界区,才使问题基本得以解决。
51Testing软件测试网Q@i*Y#kCKrV 51Testing软件测试网 u
x!RU;R%pCO 另一方法是上下文切换。将所有关键数据
结构封装起来,并定义其复制操作。当需要重入时,复制一份关键数据结构,然后在其上操作。在回写的时候,这种方法依然需要临界区保护。但可以大大减少锁定的时间,避免死锁的发生。
$xe%tbk,X9{0 51Testing软件测试网W*H QLh qj7["@,[
y6UG 系统在运行状态下,内存数据区可分为:全局静态区、堆和栈。全局静态区和堆由所有线程共享,栈则局部于线程。全局静态区包括所有全局变量和字符串等数据。堆包括动态分配的内存。局部变量、函数调用参数和返回值、返回地址等等都在栈中分配,函数返回后自然释放。
3aRP^~5`l,xY_0 ------------
楼上的全面