![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux进程
KingOfMyHeart
会好起来的.
展开
-
fork()
fork():sys_fork()系统调用 fork() 通过 sys_fork() 进入do_fork()时,其clone_flags为 SIGCHLD,也就是说,所有的标志位均为0,所以copy_files(),copy_fs(),copy_sighand()以及copy_mm()全都真正执行了也就是这四项资源全都复制了,linux32位上的3G地址空间都被子进程复制子进程拥有了父...原创 2019-05-17 16:23:49 · 229 阅读 · 0 评论 -
clone()
clone是Linux为创建线程设计的(虽然也可以用clone创建进程)。所以可以说clone是fork的升级版本,不仅可以创建进程或者线程,还可以指定创建新的命名空间(namespace)、有选择的继承父进程的内存、甚至可以将创建出来的进程变成父进程的兄弟进程等等。clone函数功能强大,带了众多参数,它提供了一个非常灵活自由的常见进程的方法。clone可以让你有选择性的继承父进程的资源,你...原创 2019-05-17 16:32:47 · 2402 阅读 · 0 评论 -
vfork()
vfork():sys_vfork()经过系统调用sys_vfork()进入do_fork()时,因其clone_flags为 VFORK | CLONE_VM | SIGHLD,所以只执行了copy_files()、copy_fs()以及copy_sighand而copy_mm(),则因标志位CLONE_VM为1,只是通过指针共享其父进程的存储空间,包括用户空间堆栈在内这里的共享...原创 2019-05-17 16:23:29 · 1860 阅读 · 0 评论 -
僵尸进程孤儿进程以及守护进程
一.僵尸进程描述一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中,这种进程称之为僵死进程。如何产生一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用 exit,它的作用是使进程退出,但也仅仅限于将一个...转载 2019-08-06 09:05:51 · 450 阅读 · 0 评论 -
exec
一、进程替换:1.exec族函数的作用:将fork()产生的子进程的.text和.data段替换成目标进程的.text和.data”换核不换壳“2.linux下进程产生机制:1.编辑一个helloworld程序2.gcc -o main main.c 得到一个可执行文件main3.在我们的终端bash执行./main,实际上bash也是一个进程第3步发生了什么:1.首先系统进行...原创 2019-05-17 10:22:34 · 296 阅读 · 0 评论 -
聊聊进程(基本概念、进程的产生以及多进程编程)
//部分图片来源于网络,若侵联系删除一、进程基本概念:1. 我们经常是写程序,那你知道程序究竟是什么:程序 = 指令+数据,是一个可执行文件,是一个指令序列,是静态的。2.进程的定义:实际上,一个程序运行起来我们就称为一个进程,进程是动态的,是系统资源和调度的独立单位。3.进程控制块:PCB1.是操作系统用于管理和控制进程的额一个专门的数据结构;2.记录进程的各种属性,描述进程动...原创 2019-05-16 11:39:31 · 780 阅读 · 0 评论