1.进程标识
每个进程都有非负整型标示的唯一进程ID。系统中有一些特殊的进程,如ID为0的进程为调度进程,常被称为交换进程(swapper)。进程ID为1的进程为init进程,此进程负责启动UNIX系统。init进程是一个普通的用户进程,但是它是以超级用户权限运行的。init进程会成为所有孤儿进程(父进程已死亡的进程)的父进程。
除了进程ID,UNIX进程还有其他一些标示符。他们可以通过下列函...
分类:
其他好文 时间:
2014-09-25 17:41:55
阅读次数:
220
孤儿进程 父进程先死,子进程托孤给一号进程#include #include #include int main(void){ pid_t pid; pid = fork(); if(-1 == pid) { return 0; } ...
分类:
系统相关 时间:
2014-09-24 21:18:37
阅读次数:
195
fork函数调用特点 一次调用,两个返回 为什么? 每个进程在各自的地址空间中返回---->站在Linux内核角度思考fork调用fork是一个系统调用,在Linux内核中完成fork返回值为什么设计成pid>0是父进程, =0是子进程? 一个父进程可以有N个子进程,父亲找儿子的...
分类:
系统相关 时间:
2014-09-23 18:56:35
阅读次数:
240
??
1 wait/waitpid
僵尸进程:
子进程退出,父进程没有回收子进程资源(PCB),则子进程变成僵尸进程
孤儿进程:
父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为1号
进程init进程,称为init进程领养孤儿进程
2依赖的头文件
#include
#include
3函数声明
pid_t wait(int...
分类:
其他好文 时间:
2014-09-21 01:48:29
阅读次数:
418
一,进程复制(或产生)
使用fork函数得到的子进程从父进程的继承了整个进程的地址空间,包括:进程上下文、进程堆栈、内存信息、打开的文件描述符、信号控制设置、进程优先级、进程组号、当前工作目录、根目录、资源限制、控制终端等。
子进程与父进程的区别在于:
1、父进程设置的锁,子进程不继承(因为如果是排它锁,被继承的话,矛盾了)
2、各自的进程ID和父进程ID不同
3、子进程的未决...
分类:
系统相关 时间:
2014-09-20 16:51:29
阅读次数:
447
由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新进程(子进程)的进程 id。将子进程id返回给父进程的理由是:因为一个进程的子进程可以多于一个,没有一个函数使一个进程可以获得其所有子进程的进程id。对子进程来说,之所以fork返回0给它,是因为它随时可以调用getpid()来获取自己的pid;...
分类:
系统相关 时间:
2014-09-20 16:35:19
阅读次数:
1371
进程间通信 共享内存(剪切板) 匿名管道只能实现父子进程间的通信(以文件系统为基础): 匿名管道是什么,有什么用,怎么用 1、创建父进程,也就是在解决方案中建立一个parent的工程 2、在parent中通过createpipe创建匿名管道,并获得匿名管道的读、写句柄 3、在父进程中通过Create...
分类:
其他好文 时间:
2014-09-19 20:57:56
阅读次数:
289
??
1fork()函数
子进程复制父进程的0到3g空间和父进程内核中的PCB,但id号不同。fork调用一次返回两次,有以下特点:
A:父进程中返回子进程ID
B:子进程中返回0
C:读时共享,写时复制
2fork()依赖的头文件
#include
3fork()函数说明:
pid_tfork(void); ...
分类:
其他好文 时间:
2014-09-16 23:43:01
阅读次数:
295
在Linux中,文件描述符都是属于进程的,用整数来表示。通过fork,虽然子进程和父进程都是打开同样的文件,但文件描述符却是不同的。 同样的文件描述符值在不同进程对应不同的文件描述符值数组。 所以文件描述符透...
分类:
移动开发 时间:
2014-09-16 00:28:49
阅读次数:
240
由于内存管理的一些机制,进程的用户空间是相互独立的,一般是不能相互访问的,唯一例外的是共享内存。因此我们需要利用一些介质来完成进程间的通信。进程间通信方式:(1)管道linux中的管道分为无名管道和有名管道,前者用于父进程和子进程间的通信,后者用于任意两个进程间..
分类:
其他好文 时间:
2014-09-14 02:36:27
阅读次数:
226