fork() 和 vfork() 的区别

在这篇文章中,我们将了解系统调用 fork 和 vfork 之间的区别 -

'fork' 系统调用

  • 在这个系统调用中,子进程和父进程有独立的内存空间。

  • 子进程和父进程同时执行。

  • 此调用使用写时复制作为替代。

  • 子进程无法在此系统调用中暂停父进程的执行。

  • 一个进程的页面不会受到其他进程页面的影响。

  • 它的使用频率更高。

  • 没有地址空间被浪费。

  • 如果子进程改变了地址空间中的页面,它对父进程是不可见的。

“vfork”系统调用

  • 在这个系统调用中,父进程和子进程共享同一个地址空间。

  • 一旦子进程被执行,父进程就开始执行。

  • 此系统调用不使用写时复制技术。

  • 子进程在这个系统调用中挂起父进程的执行。

  • 一个进程的页面会受到另一个进程页面的影响。

  • 它的使用频率较低。

  • 没有地址空间被浪费。

  • 如果子进程改变了地址空间中的页面,它可以被父进程看到。

以上是 fork() 和 vfork() 的区别 的全部内容, 来源链接: utcz.com/z/355325.html

回到顶部