微软认证考试:探秘Windows7系统中的POSIX子系统2

牛课网 考试宝典 更新时间:2024-05-19 01:53:22

微软认证考试:探秘Windows7系统中的POSIX子系统2

在复习微软的过程中还是不够全面,为了帮助广大考生系统全面的复习好《微软认证》,我们考吧(kao8.cc)整理了微软考试辅导知识,希望本次汇编的辅导资料希望对你的考试有所帮助,预祝你考试顺利。

首先,稍微修改一下刚刚的代码:

#include

#include

int main(int argc,char **argv){

if(fork()){

printf("This is parent process.");

for(;;);

}

else{

printf("This is chile process.");

for(;;);

}

return 0;

}

使用GCC编译这段代码并将编译所得的程序修改为exe后缀,随后关闭所有的POSIX进程。找一个好用一点的进程监视软件(推荐Sysinternals的Process Explorer),看看现在的进程状况。大致应该如下所示:

需要注意的是posix.exe进程已经不存在了。回想前文所述,posix.exe是POSIX的会话进程,没有posix.exe也就间接说明了没有POSIX应用程序正在运行。

现在我们启动刚才编译的程序,现在Process Explorer的界面应该如下所示:

嗯嗯,我们的程序和它fork出的子进程正在高高兴兴地运行着,因为我们在程序中添加了死循环所以进程不会立刻退出,而是像没有出口的自旋锁一样饕餮着CPU资源...嗯,这些都不重要,重要的是posix.exe的重回人间就是那个pid为5556的进程。现在,只要我们在运行着test1.exe的Shell中按下Ctrl+C,test1.exe父子就和posix.exe先生一起去进程天国报到了^^

(顺便插一句题外话,.Net Framework 4的TPL中好像有提供SpinLock结构支持自旋锁的功能,虽然使用自旋锁的花销会比较小,但是请谨慎使用这个结构,尤其是不要用于可能发生长时间锁定的操作——否则会发生什么,骤然上涨的CPU使用率曲线...毕竟自旋锁就是通过循环实现的,不同于互斥锁,自旋锁会一直处于忙等的状态,直到时间片结束,然后是下一个时间片...下下个时间片...)

编辑推荐:

2014年微软认证考试考前专项训练试题汇总

微软认证:Windows系统直接运行命令汇总 

2014年《微软认证》MCITP考试高分必备模拟试卷汇总

考试宝典安装说明

宝典适用于手机、电脑、平板,您可安装客户端或在浏览器使用。

电脑版

手机版

网页版

考试宝典咨询
服务热线

TEL:029-88699698