我是操作系统的新手,并通过我的操作系统类的笔记阅读,这是给出的问题。我试图通过阅读this讨论来计算创建的总进程数。
提出的问题:
如果,将创建多少个进程(包括父级)
以下程序中的所有fork()/ exec()系统调用都是成功的。假设
exec'ed程序没有fork()。
Main(){
int ii = fork();
if (ii == 0) exec();
fork();
}
答案:
总进程数= 3
根据讨论(我上面包含的页面),我有以下过程
Main(){ //Main program is consider as 1 process
int ii = fork(); //fork #1, now I have 2 total processes
if (ii == 0) exec();
fork(); //fork #2, now I have 4 total processes
}
那么我有4个进程而不是3个进程吗?
答案 0 :(得分:1)
你有4个进程。
使用您最喜欢的编译器也可以用您喜欢的语言轻松验证。在最后一个叉子之后打印一些东西。