fork函数可以创建一个带有自己独立虚拟地址空间的新进程。

当fork函数被当前进程调用的时候,内核为新进程创建各种数据结构,并且分配它一个唯一的PID。为了给这个新进程创建虚拟内存。它创建了当前进程的mm_struct,区域结构和页表的原样副本。它将两个进程的每个页面都标记成只读,并且将两个进程中的每个区域接哦古都标记成私有的写时复制。

当fork在新进程返回的时候,新进程现在的虚拟内存刚好和调用的fork时存在的虚拟内存相同。当这两个进程中的任意一个后来进行写操作,写时复制机制就会创建新的页面,因此,也就为每个进程保持了私有地址空间的抽象概念。

execve函数在虚拟内存和内存映射中将程序加载到内存的过程中扮演了关键的角色。

假设当前运行的程序执行了execve调用,就会执行删除已存在的用户区域,映射私有区域,映射共享区域,设置程序计数器。

fork函数与execve函数相关推荐

  1. linux_exec函数族-execl函数-execlp函数-execle函数-execv函数-execvp函数-execve函数

    接上一篇:linux_进程类相关学习-fork函数-getpid函数-getppid函数-getuid函数-geteuid函数-getgid函数-getegid函数-进程之间共享数据-进程gdb调试 ...

  2. system函数与exec函数

    文章目录 system函数与exec函数 system函数 exec系列函数 system函数与exec函数 启动另一个新的进程 system函数   >> system函数的原型: #i ...

  3. Linux 执行新程序:execve() 函数

    系统调用execve()函数作用 在Linux程序中,通过调用execve(),进程能够以全新程序来替换当前运行的程序.再次过程中,将丢弃旧有程序,进程的栈.数据以及堆段会被新程序所替换.这个 exe ...

  4. execve()函数的研究

    exec簇函数,最后,都是调用了execve这个函数! 这个函数的作用,就是去执行一个文件! 典型的用法,就是在shell中,执行一个文件,比如说,一个编译好的文件,叫做helloworld,那么,在 ...

  5. Linux0.11 execve函数(六)

    系列文章目录 Linux 0.11启动过程分析(一) Linux 0.11 fork 函数(二) Linux0.11 缺页处理(三) Linux0.11 根文件系统挂载(四) Linux0.11 文件 ...

  6. linux中execve函数的用法

    在父进程中fork一个子进程,在子进程中调用exec函数启动新的程序.exec函数一共有六个,其中execve为内核级系统调用,其他(execl,execle,execlp,execv,execvp) ...

  7. Linux系统调用之execve函数与标准C库exec函数族(有关于进程方面的函数族)

    前言 如果,想要深入的学习Linux系统调用里面的execve函数与标准C库中的exec函数族,还是需要去自己阅读Linux系统中的帮助文档. 具体输入命令: man 2 execve man 3 e ...

  8. linux:exec族函数, exec族函数配合fork使用,system 函数,popen 函数

    1.exec族函数 精彩博文: https://blog.csdn.net/u014530704/article/details/73848573 ​ ​ ​ path:   比如说 ./a.out ...

  9. 4进程原语:fork()函数,getpid()函数和getppid()函数,getuid()函数,getgid()函数,vfork()

     1fork()函数 子进程复制父进程的0到3g空间和父进程内核中的PCB,但id号不同.fork调用一次返回两次,有以下特点: A:父进程中返回子进程ID B:子进程中返回0 C:读时共享,写时 ...

  10. linux中execve的用法,Linux 的 execve 函数

    execve 函数是所有执行程序函数最底层的实现了,其参数为 int execve (const char *__path, char *const __argv[], char *const __e ...

最新文章

  1. SAP MM模块常用概念--供应商评价
  2. php修改http header,php header函数的常用http头设置
  3. 让你的照片更鲜艳------hsv拉伸
  4. 云计算的下半场:云原生
  5. python object单引号变成双引号_Python学习第163课--Linux命令行中的单引号和双引号...
  6. MATLAB 循环结构解析
  7. 【最大连接数】Linux的文件最大连接数
  8. mysql2 connector_2.升级mysql-connector 5到8遇到的问题
  9. (cljs/run-at (JSVM. :all) 细说函数) 1
  10. SQL 数据库基础知识总结(一)
  11. OpenCASCADE VS2010 SP1编译
  12. 四川大学计算机学院优秀毕业论文,(完整版)四川大学本科_毕业论文(设计)_有关规定...
  13. 输出10000以内的质数C语言
  14. Unity WebGL基于js通信实现网页录音
  15. 测试电脑整机功耗软件,最真实的耗电!PConline权威整机功耗评测
  16. P5708 【深基2.习2】三角形面积
  17. 基于STM32F429动态信号测试分析系统
  18. fashion-mnist简介和使用及下载
  19. Android记账本APP开发进阶版
  20. C# Microsoft Speech 选择音频输出设备

热门文章

  1. C#,入门教程——一个优秀程序员的修炼之道
  2. 【VS插件】VS2012设置透明背景
  3. Windows7不再卡五叶草,更新了bootx64.efi和bootmgfw.efi文件,支持安全启动,不用关闭安全启动和打开csm支持.
  4. .Net程序员学用Oracle系列(18):PLSQL Developer 攻略
  5. plsqldev连oracle,plsqldev怎么联接oracle客户端
  6. GIS专业书籍、文档、数据、网站、工具等干货
  7. 十三肝了2晚的《IDEA操作手册-终极秘籍》终于来了...
  8. PowerDesigner如何生产数据字典
  9. 铁路车辆工程使用计算机软件,铁路车辆工程论文
  10. bochs运行xp_bochs xp 镜像下载|bochs xp精简版下载_ - 极光下载站