
进程
文章平均质量分 74
LLLLLLLLLLLLLLL.
这个作者很懒,什么都没留下…
展开
-
使用代码模拟实现僵尸进程, 孤儿进程
在进程运行时,由于某些原因会产生僵尸进程和孤儿进程,僵尸和孤儿两个词语形象的体现某进程的运行状态僵尸进程:当进程加载到内存中时,需要向操作系统申请资源,正常情况下,当一个进程正常退出时,这个进程的资源会被他的父进程或者操作系统回收,如果这些资源在进程退出时没有被操作系统回收,就像一具已经僵硬的尸体,没人处理,形象的称这个进程为僵尸进程,如果僵尸进程一直不被回收,就造成了内存泄漏,试想一下,如果系统...原创 2018-04-14 00:15:48 · 286 阅读 · 0 评论 -
封装fork/wait,实现process_creat函数
先介绍一下wait:wait()会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用wait()时子进程已经结束,则wait()会立即返回子进程结束状态值。子进程的结束状态值会由参数status 返回,而子进程的进程识别码也会一快返回。如果不在意结束状态值,则参数status 可以设成NULL。子进程的结束状态值请参考waitpid()。头文件: #include <sys/wa...原创 2018-04-24 21:22:30 · 352 阅读 · 0 评论 -
用fock实现简易shell(程序替换)
fork之后就会创建则进程,数据、堆、栈有两份,代码仍然为一份但是这个代码段成为两个进程的共享代码段都从fork函数中返回,当父子进程有一个想要修改数据或者堆栈时,两个进程真正分裂子进程在创建的时候会复制父进程的代码。不管是共用代码还是复制代码,这就相当于父进程创建了一个和自己功能完全相同的进程,这样一来,子进程就只能进行和父进程一样的操作动作,这样做实际意义并不大,那怎么让子进程干和父进程不一样...原创 2018-04-21 21:26:28 · 354 阅读 · 0 评论 -
fork和popen/system
先介绍一下fork所需头文件:#include <unistd.h>fork的原型: pid_t fork(void);返回值:pid_t实际上是一个宏定义的int类型当调用成功时,fork的返回值如果是0, 则是子进程在运行,返回值大于零(子进程的pid),则在父进程内运行用调用失败返回-1如何穿件子进程?fork时,操作系统要为子进程开辟空间,分配资源,创建PCB,并为子进程复制一...原创 2018-04-21 21:45:06 · 559 阅读 · 0 评论 -
进程间关系与守护进程
进程组每个进程除了有⼀个进程ID之外,还属于⼀个进程组。进程组是⼀个或多个进程的集合。通常,它们与同⼀作业相关联,可以接收来⾃同⼀终端的各种信号。每个进程组有⼀个唯⼀的进程组ID。每个进程组都可以有⼀个组⻓进程。组⻓进程的标识是,其进程组ID等于其进程ID。 组⻓进程可以创建⼀个进程组,创建该组中的进程,然后终⽌。只要在某个进程组中⼀个进程存在,则该进程组就存在,这与其组⻓进程是否终⽌⽆关。实例如...原创 2018-05-12 14:11:39 · 212 阅读 · 0 评论