fork() 与 vfork() 的区别


在帖子中,我们将了解系统调用 fork 和 vfork 之间的区别 −

‘fork’ 系统调用

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

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

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

  • 在该系统调用中,子进程不能暂停父进程的执行。

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

  • 它使用得更为频繁。

  • 地址空间不会浪费。

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

‘vfork’ 系统调用

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

  • 子进程执行后,父进程开始执行。

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

  • 在该系统调用中,子进程会使父进程的执行暂停。

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

  • 它使用得较少。

  • 地址空间不会浪费。

  • 如果子进程更改了地址空间中的页面,父进程也能看到。

更新于:2021-04-20

760 次浏览

开启您的 职业生涯

完成课程以获得认证

开始
广告