TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网互联网干货linux中fork和exec有什么区别思维导图

linux中fork和exec有什么区别思维导图

  收藏
  分享
免费下载
免费使用文件
Sure 浏览量:22022-09-14 22:36:27
已被使用0次
查看详情linux中fork和exec有什么区别思维导图

linux中fork和exec的区别:1、fork用于创建一个新的进程,称为子进程,而exec则是用指定的程序替换当前进程的全部内容;2、exec的前后进程id没有改变,而fork重新创建了子进程后id改变了。

树图思维导图提供 linux中fork和exec有什么区别思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 linux中fork和exec有什么区别思维导图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:522ec76fbce61521c1850e5641543e8e

思维导图大纲

linux中fork和exec有什么区别思维导图模板大纲

fork

调用fork可以创建一个新的进程称为子进程, 调用fork函数的进程称为父进程, 子进程的所有内容都和父进程相同, 除了pcd(进程控制模块)

如果这两个进程都没有对内存做写操作的话, 那么两个进程共享调用fork函数的进程的内存页, 这样表面上看fork创建进程比exec创建进程快

但只要两个进程其中一个对内存做了修改, 那么在修改之前, 就会把内存页复制一份给子进程用

exec

调用exec创建进程, 实际上不是创建进程, 更准确的说是加载可执行文件, 调用exec后会把exec中指定的可执行文件加载到调用exec的进程的空间内

并把调用exec的进程的内存更新为exec中指定的可执行文件的内

区别

fork主要是Linux用来建立新的进程(线程)而设计的,exec()系列函数则是用来用指定的程序替换当前进程的全部内容

因此exec()系列函数常常在前三个函数使用以后调用,来建立一个全新的程序运行环境。Linux用init进程启动其余进程的过程通常都是这样的

fork是最简单的调用,不须要任何参数,仅仅是在建立一个子进程并为其建立一个独立于父进程的空间

我们用fork函数创建新进程后,经常会在新进程中调用exec函数去执行另外一个程序(比如在我们写程序时需要使用我们之前的写过的某个程序的功能,通过该方式直接去调用一个可执行程序可以大大的简化我们的程序)

当进程调用exec函数时,该进程被完全替换为新程序。因为调用exec函数并不创建新进程,所以前后进程的ID并没有改变

父进程通过fork()的方式产生一个一模一样的子进程,创建出来的子进程再以exec函数的方式来执行其实际要执行的进程,最终就成为一个可以执行某些特定功能的子进程

一个进程一旦调用exec类函数,它本身就“死亡”了,系统把代码段替换成新的程序的代码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,唯一留下的,就是进程号

也就是说,对系统而言,还是同一个进程,不过已经是另一个程序了。即调用exec族函数后,其后面的程序都不会在执行了

相关思维导图模板

科技计划项目资金预算编制总体要求的学习和整理思维导图

树图思维导图提供 科技计划项目资金预算编制总体要求的学习和整理 在线思维导图免费制作,点击“编辑”按钮,可对 科技计划项目资金预算编制总体要求的学习和整理  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:49470946de6296e1813ed1ed5efc14ba

低效和超龄导购员的管理计划思维导图

树图思维导图提供 低效和超龄导购员的管理计划 在线思维导图免费制作,点击“编辑”按钮,可对 低效和超龄导购员的管理计划  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:f7df47e61db6c5c13a363faab8770506