码迷,mamicode.com
首页 >  
搜索关键字:父进程    ( 1162个结果
linux僵尸进程
由于子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程到底什么时候结束. 那么会不会因为父进程太忙来不及wait子进程,或者说不知道子进程什么时候结束,而丢失子进程结束时的状态信息呢? 不会。因为UNIX提供了一种机制可以保证只要父进程想知道子进程结束时的状态信息,就可以得到。这种...
分类:系统相关   时间:2015-06-03 23:05:31    阅读次数:164
Linux C学习笔记07--管道通信
管道通信属于进程间通信的一种方式,使用方便,但是局限是父进程与子进程间的通信,下面是调试好的代码。程序父进程创建2个管道,分别用于父进程写数据--子进程读数据和子进程写数据--父进程读数据:#include #include #include #include int main(int argc,c...
分类:系统相关   时间:2015-06-02 11:07:29    阅读次数:123
Linux系统编程——特殊进程之僵尸进程
在每个进程退出的时候,内核释放该进程所有的资源、包括打开的文件、占用的内存等。 但是仍然为其保留一定的信息,这些信息主要主要指进程控制块的信息(包括进程号、退出状态、运行时间等)。直到父进程通过 wait() 或 waitpid() 来获取其状态并释放(具体用法,请看《等待进程结束》)。 这样就会导致一个问题,如果进程不调用 wait() 或 waitpid() 的话, 那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵死进程,将因为没有可用的进程号而导...
分类:系统相关   时间:2015-05-25 14:32:47    阅读次数:226
Linux系统编程——进程的控制:结束进程、等待进程结束
当一个进程正常或异常终止时,内核就向其父进程发送 SIGCHLD 信号,相当于告诉父亲他哪个儿子挂了,而父进程可以通过 wait() 或 waitpid() 函数等待子进程结束,获取子进程结束时的状态,同时回收他们的资源(相当于,父亲听听死去儿子的遗言同时好好安葬它)。...
分类:系统相关   时间:2015-05-22 19:10:58    阅读次数:161
进程间通信-无名管道
管道:是一种半双工的通信机制,它一端用来读,另外一端用来写;管道只能用来在具有公共祖先的两个进程之间通信(父进程和子进程或者同一父进程的两个子进程);管道通信消息遵循先进先出的原理,并且数据只能被读取一次,当此段数据被读取后就会清空。管道实质是内存页(page)。 相关函数:os.pipe();它返...
分类:系统相关   时间:2015-05-22 16:55:46    阅读次数:167
CentOS 7 学习笔记(二)systemd
sysVinit启动原理在我们打开Linux电脑的电源后第一个启动的进程就是init。分配给init进程的PID是1。它是系统其他所有进程的父进程。当一台Linux电脑启动后,处理器会先在系统存储中查找BIOS,之后BIOS会检测系统资源然后找到第一个引导设备,通常为硬盘,然后会查找硬盘的主引导记录...
分类:其他好文   时间:2015-05-22 11:04:12    阅读次数:594
IPC——管道(Pipe)
用于进程间通信的有5种常用方式:管道、FIFO、消息队列、信号量、共享存储等。 管道 (亦被称为无名管道,以区分FIFO:有名管道)顾名思义具有两个对外端口,一个称为读端,一个称为写端。一个进程在管道的写端写数据,另一个进程从管道的读端 读出数据。如下图所示: 管道仅局限于父进程与子进程之间的通信。 管道通信的特点: 1.管道通讯是单向的,有固定的读端和写端。 2. 数据被进程...
分类:其他好文   时间:2015-05-20 13:20:23    阅读次数:156
Linux系统编程——vfork() 函数详解
1)fork(): 父子进程的执行次序不确定。 vfork():保证子进程先运行,在它调用 exec(进程替换) 或 exit(退出进程)之后父进程才可能被调度运行。 2)fork(): 子进程拷贝父进程的地址空间,子进程是父进程的一个复制品。 vfork():子进程共享父进程的地址空间(准确来说,在调用 exec(进程替换) 或 exit(退出进程) 之前与父进程数据是共享的)...
分类:系统相关   时间:2015-05-19 21:02:31    阅读次数:246
防止读匿名管道的无限阻塞问题的方法
假设程序维护一个匿名管道,fd[0]读端,fd[1]写端。父进程从管道中读数据,子进程循环读取一个文件并将读到得到内容写入管道。 这时如果不注意的话,很容易出现读管道的无限阻塞。 读管道如下 nread = read(fd[0],buffer,size); 当父进程 向管道中写入最后数据时,最后一次写入的数据可能比size小,也就是管道中的数据少于size。这时我的程序出现了read()一直...
分类:其他好文   时间:2015-05-18 22:57:33    阅读次数:506
fork函数
在Unix/Linux中用fork函数创建一个新的进程。进程是由当前已有进程调用fork函数创建,分叉的进程叫子进程,创建者叫父进程。该函数的特点是调用一次,返回两次,一次是在父进程,一次是在子进程。两次返回的区别是子进程的返回值为0,父进程的返回值是新子进程的ID。子进程与父进程继续并发运行。如....
分类:其他好文   时间:2015-05-18 22:26:59    阅读次数:99
1162条   上一页 1 ... 86 87 88 89 90 ... 117 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!