今天我们来学习一些Unix操作系统进程之间的知识。这部分知识很重要,所以我们应好好的学习这部分知识。进程通讯是unix中很重要的知识。
进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。
产生一个新的Unix操作系统进程主要有以下3种方法:
1,fork调用;
2,System调用;
3,Exec调用;
我们常说的进程通讯编程主要有以下3种方法:
1,Message queue队列编程;
2,Tcp/IP socket编程;
3,共享内存编程;
一、Unix操作系统进程调用
1,产生进程Fork调用例子:
功能:创建一个新的进程.
语法:#include unistd.h
说明:本系统调用产生一个新的进程, 叫子进程, 是调用进程的一个复制品.
调用进程叫父进程, 子进程继承了父进程的几乎所有的属性:
实际UID,GID和有效UID,GID.环境变量.附加GID.调用exec()时的关闭标志.UID设置模式比特位.GID设置模式比特位.进程组号.会话ID.控制终端.当前工作目录.根目录.文件创建掩码UMASK.文件长度限制ULIMIT.预定值, 如Unix操作系统优先级和任何其他的进程预定参数, 根据种类不同决定是否可以继承.
还有一些其它属性.但Unix操作系统子进程也有与父进程不同的属性:
进程号, 子进程号不同与任何一个活动的进程组号.父进程号.
子进程继承父进程的文件描述符或流时, 具有自己的一个拷贝并且与父进程和其它子进程共享该资源.
子进程的用户时间和Unix操作系统时间被初始化为0.子进程的超时时钟设置为0.子进程的信号处理函数指针组置为空.子进程不继承父进程的记录锁.
返回值: 调用成功则对子进程返回0, 对父进程返回子进程号, 这也是最方便的区分父子进程的方法. 若调用失败则返回-1给父进程,子进程不生成.
这样,我们就介绍完了关于Unix操作系统进程之间的知识。希望大家能够了解更多。
【编辑推荐】