fork.c源代码读后理解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FORK.C的读后理解 在本次操作系统的实习中,我按照老师给出的流程要求,在熟悉linux系统的基本操作上,花了一天半的时间,专门阅读的有关文献,和参看了linux系统的fork.c文件的源代码。 收获了许多东西,下面,将我的体会列出如下:、 首先,在linux系统中,只有唯一一个函数可以参与系统或者用户子进程的创建,那就是fork.c中间的fork函数。 1是一个十分重要的系统调用,一位一个进程想要创建他的一个或者多个子进程,只能通过1函数调用。其具体的工作流程大致如下,首先,进程向系统发出调用1的请求,系统通过执行1函数,复制出一个几乎和父进程一样的子进程,这个子进程除了进程的id号不同之外,机会和它的父进程拥有相同的资源。包括uid和gid,如果系统要让子进程运行其他的任务,可以调用相关函数,必如execve函数,将目标代码段复制进入子进程的空间中。在这个期间,父子进程可以平行执行。 例如linux系统的初始化,通过1函数一步一步的创建出用户进程 1号进程 ->tty终端进程 ->Login进程 ->用户进程 其次,1函数在调用的过程中,有它独有的特性,必如调用一次,返回两次值,一次是给父进程返回子进程的id,表示父进程可以产生多个子进程,表示所属关系,而子进程返回id值为0,表示从属关系,同时子进程也可以通过相关函数实现对父进程的获取。如getfatherid()函数。 另外,父进程和子进程,在通过1函数调用之后,可以共享很多的资源,可以实现在同样的资源池里分享资源。必如: 实际用户I D、实际组I D、有效用户I D、有效组I D。 ? 添加组I D。 ? 进程组I D。 ? 对话期I D。 ? 控制终端。 ? 设置-用户- I D标志和设置-组- I D标志。 ? 当前工作目录。 ? 根目录。 ? 文件方式创建屏蔽字。 ? 信号屏蔽和排列。 ? 对任一打开文件描述符的在执行时关闭标志。 ? 环境。 ? 连接的共享存储段。 ? 资源限制。 但是在1函数的作用下,父子进程也有许多不相同的地方必如: ? fork的返回值。 ? 进程I D。 ? 不同的父进程I D。 ? 父进程设置的锁,子进程不继承。 ? 子进程的未决告警被清除。 但是在调用1函数的时候,也是有风险的,必如在系统已经存在进程过多,无法分配足够的id给新进程的时候,在改父进程的子进程过多,超过限定值,处于失控状态的时候。 最后,是我在阅读了相关代码和书籍之后,总结出来的fork.c文件在系统创建子进程的流程图。 失败返回重来 返回子进程pid 对子进程的资源进行初始化 将父进程内容拷贝进新分配的内存空间 将子进程的pcb插入队列中 申请系统内存堆栈 系统接到请求后,为新进程申请资源,调用fork

文档评论(0)

803322fw + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档