进程是一个具有独立功能的程序关于某个数据集合的一次可以并发执行的运行活动,是处于活动状态的计算机程序.
进程的状态:用户状态/内核状态/内存中就绪/内存中睡眠/就绪且换出/睡眠且换出/被抢先/创建状态/僵死状态.
fork ,exec,wait,exit
Linux 下的进程通信手段:
1.管道-用于进程间通信,半双工,双方通信需要两条管道,无名管道只能用于父子进程与兄弟进程之间,单独构成一种独立的文件系统,并且只存在于内存中.可以读出与写入数据.写入缓冲区末尾,从缓冲区的头读出数据.
只能传无格式的字节流,缓冲区大小也受到限制.
2.信号-在软件层次上对中断机制的一种模拟.信号是进程序通信机制中惟一的异步通信机制.可靠与不可靠,实时与非实时信号.期 信号产生---在进程中注册---在进程中注销---信号处理函数执行完毕
信号灯---提供进程间共享资源访问控制机制,相当于内存中标志,进程可以据它判定是否能访问某些共享资源,进程也可以改标志.用于进程同步与访问控制.
3.消息队列---消息可当作一个记录,有特定的格式及优先级.消息队列就是一个消息的链表,是随内核持续的.
4.共享内存---最有用的进程间通信方式,最快的IPC形式,进程共享内存,通过同步机制,如互斥锁与信号量来实现.
5.信号量---作为进程间以及同一进程不同线程之间的同步手段.
6.socket -用于不同计算机之间的通信.