June 2009 Archives

多进程编程学习

June 7, 2009 10:45 PM

计算机的cpu越来越廉价,在一些需要大量计算的公司和科研单位,集成机器(cluster)也变得很普遍。这就会引出了一个问题,怎么安排任务才能让这么多cpu得到充分的利用?这个问题其实早就有人考虑到了, PBS就是用来批量提交任务的程序。PBS功能强大,但是未必就能够满足所有要求。

要编写个性化的进程管理程序需要了解在Lunix/unix下面已经包括了的进程编程所需要的库函数。简单的说,首先可以通过fork()函数生成子进程。调用fork()后会有两个返回,子进程如果成功生成会返回0,父进程返回的是PID。然后可以调用exec族函数,将子进程替换成所要执行的程序。进程在执行完后并会留下僵尸(zombie)进程,可以使用wait()函数返回执行情况并完全释放资源。关于进程编程有一个完整的教程----《系统调用跟我学:1234》。

以下这个小程序展示如何生成一个进程,执行任务,并且当任务完成后捕捉到子进程的信息。

顿悟

June 4, 2009 8:01 PM

本来以为是假的。

现在看来是真的。