文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Linux学习笔记--进程

Linux学习笔记--进程

时间:2010-04-29  来源:wanpengcoder

Linux学习笔记--进程


进程的产生:

1.进程号:
getpid()---当前进程id
getppid()---父进程id

2.fork()---复制进程,子进程id与父进程id不同,内存等与父进程不同,其他与父进程共享。

3.system()---当这个函数中的命令执行完毕之后才能继续本进程,也就是说它可以阻塞本进程。

4.exec()函数系列---新进程代替原进程,只有id与原id相同。
 ---普遍用法:使用fork()分岔进程,在新进程中调用exec()函数,这样exec()就占用了原来系统资源来运行(id没换但内容换了,挂得还是羊头卖得却是狗日)

5.init---进程都是有init直接或间接fork()出来的。

进程间的通信:

1.管道:

int pipe(int filedes[2])---创建管道,如进程A、B,则每个进程都有读和写两个描述符,在通信的时候关闭不用的那个。

命名管道 mkfifo

2.消息队列:

ftok()---键值构造函数,下面的函数需要这里的键值

msgget()---创建一个消息队列或者访问一个现有队列。

msgsnd()---向队列传递消息

msgrcv()---接收消息队列中的消息

msgclt()---向内核发送一个cmd命令,内核根据此来判断进行何种操作。


信号量:控制多个进程共享资源的访问。

semget()---新建信号量,返回信号的id

semmlt()---发送命令建立value个初始值的信号量

semop()---向信号量发送命令

semctl()---信号量控制的其他操作

共享内存:通过共享内存区域实现进程之间的通信

shmget()---创建一个新的共享内存段或者访问一个现有的共享内存段,返回段标识符

shmat()---获取共享内存的地址

shmdt()---删除,实际上是断开,断开后shmid_ds的shm_nattch-1,当==0时真正的删除内存段

shmctl()---对共享内存的控制

信号:最为古老的进程之间的通信方式

进程可以屏蔽大多数信号,除了SIGSTOP SIGKILL

signal()---信号获取函数,对此信号挂接用户自己的处理函数

很明显,上面这些很多函数的名字都是有规律可循的,用法也差不多……

好了,明天继续---线程

相关阅读 更多 +
排行榜 更多 +
崩溃大陆2鱼竿如何获取

崩溃大陆2鱼竿如何获取

冒险解谜 下载
狙击手行动

狙击手行动

冒险解谜 下载
狙击突围行动最新版

狙击突围行动最新版

冒险解谜 下载