当前位置: 首页 > news >正文

四川网站建设费用百度指数是免费的吗

四川网站建设费用,百度指数是免费的吗,横沥镇网站仿做,备案信息 网站名目录一、fork函数二、vfork函数1.函数的原理2.函数的隐患3.解决函数隐患的方法在Linux的进程学习中,常使用fork函数来创建子进程,但其实还有一个vfork函数也可以创建子进程。但是这两个函数的实现机制不同,fork函数使用了写实拷贝技术&#x…

目录

  • 一、fork函数
  • 二、vfork函数
    • 1.函数的原理
    • 2.函数的隐患
    • 3.解决函数隐患的方法

  在Linux的进程学习中,常使用fork函数来创建子进程,但其实还有一个vfork函数也可以创建子进程。但是这两个函数的实现机制不同,fork函数使用了写实拷贝技术,而vfork函数不是这样。

  在看本文前,需要对虚拟内存有一定的了解,因为创建子进程离不开虚拟内存。

一、fork函数

pid_t fork(void);

  fork函数运用的是写实拷贝技术,子进程不但会复制父进程的pcb的信息,也会复制父进程的虚拟空间和页表

  所以在刚创建子进程后,子进程和父进程映射的是同一块物理内存,因此实现了父子进程代码共享。

fork初始

  但是如果子进程需要修改数据,比如程序中有一个变量a,子进程想要修改a的数据,那么系统就会给子进程在物理内存重新开辟一块空间存储a的数据,子进程要修改就修改自己的a,不要去修改父进程的a。这样就保证了父子进程的数据独有
修改变量

二、vfork函数

pid_t vfork(void);

1.函数的原理

  vfork与fork相比,vfork创建的子进程只复制了父进程的pcb,并没有复制虚拟空间和页表。父子进程使用的是同一块虚拟空间和页表,因此父子进程映射的是同一块物理内存。

vfork

2.函数的隐患

(1)由于vfrok创建的子进程和父进程共用虚拟空间和页表,因此访问的是同一个内存空间,那么一旦子进程改变了某个数据,父进程的数据同样会随之改变。

(2)更严重的问题是,会导致调用栈混乱。

  当程序运行一个函数时,就要先将函数压入函数调用栈,当运行完毕才会将函数出栈。vfork创建的父子进程共用调用栈,当父进程运行A函数时,需要把A函数压入函数调用栈,如果在A函数还没运行完的时候时间片就用完了,就需要切换到子进程。子进程运行的是B函数,子进程还没运行完B函数的时候时间片就用完了,因此切换到父进程运行。父进程在这个时间片把函数A运行完了,因此函数A需要出栈,但此时函数调用栈的栈顶是B函数,就会将B函数出栈,从而造成调用栈混乱。

  结合下图来理解:

调用栈混乱

3.解决函数隐患的方法

  既然vfork函数如上所述的缺点,那么自然要有相应的解决方法。

  如果用vfrok函数创建子进程,当子进程运行时,父进程会被阻塞。父进程被阻塞到什么时候?一直到子进程退出,或者是子进程进行了程序替换后。这样就可以解决上面的缺点。

http://www.15wanjia.com/news/9161.html

相关文章:

  • 备案的博客网站可以做别的吗百度资源平台链接提交
  • 网站建设及营销方案网络营销品牌推广
  • 工程承包平台关键词排名优化易下拉软件
  • 自学网站开发哪个网站好企业网站seo案例
  • 做网站能自己找服务器吗游戏推广一个月能拿多少钱
  • 深圳网站建设服seo是什么意思蜘蛛屯
  • 网站页面建设规划文案淘宝推广费用多少钱一天
  • 去除wordpress评论电子邮件优化大师最新版本
  • c2c网站方案郑州网络推广服务
  • 创建免费网站需要什么条件百度快照客服电话
  • pc网站做移动端适配东莞seo网站排名优化
  • 做熊猫tv网站的目的搜索优化推广公司
  • 网站建设的频道是什么长尾关键词挖掘词工具
  • 集团网站建设哪家好交换友情链接的好处
  • 电子商务网站建设的背景福州排名seo公司
  • 中国做外贸网站有哪些百度知道网址
  • 装修网站怎么做的好购物网站页面设计
  • 网站建设和维护怎么学互联网营销师考试题及答案
  • 网站绑定ftp网络营销平台有哪些
  • 张家口建设网站线上营销平台
  • 专题网站建站vi设计
  • 做网站客户给不了素材百度快速收录
  • 东莞自适应网站建设互联网营销培训课程
  • 上海门户网站论坛关键词优化公司前十排名
  • 易语言网站开发推广搜索引擎
  • 如何用手机做网站吗长沙seo网站优化公司
  • PHP网站开发工程师网站策划书模板
  • 如何编写一套网站模板互联网线上推广
  • 企业网站制作开发佛山网站建设制作
  • 基于云平台网站群建设公司做网络推广哪个网站好