欢迎来到360期刊网
360期刊网
客服电话:4006-587-789 客服在线时间:09:00~22:30(节假日不休息) 客服邮箱:360qikan@vip.163.com
当前位置: 首页 > 论文范文 > 理工论文 >

UNIX环境下的信息多进程处理

时间:2018-02-08 13:33来源:未知 作者:360期刊网 点击:

  UNIX环境下的信息多进程处理

  田兆东 苗 强

  (沈阳化工学院辽宁沈阳110142)

  摘要:在这个信息爆炸的时代,信息处理是一个庞大而复杂的工程,必须面向多用户分时并行,而UNIX系统在多进程和多线程处理方面有很广泛的应用。本文就解析了{莹UNIX平台下如何进行多进程的并行处理。

  关键词:信息处理;UNIX;进程;并行

  中图分类号:TP273 文献标识码:A 文章编号:1000-9795( 2010) 01-0136-01

  一、引言

  UNIX是一个分时、多用户、多任务系统,具有良好的可移植性,精巧性和一致性。信息处理在随着时代的进步和需求必然转向多用户的高实时性海量处理,而此时我们使用多进程处理就会带来很大的方便,多进程处理具有如下特点:

  ①并行化,一件复杂的事情可以分解成若干个简单事件来处理。

  ②简单有序,为每个进程设计好相应功能,并通过硬顶的通讯机制将他们有机地结合起来,对每个进程的设计是简单的。

  ③互不干扰,这个特点是系统的特点,各进程是独立的。

  ④事务化,例如在一个数据电话查询系统中,将程序设计成一个进程只处理一次查询即可,当电话查询开始时,产生这样一个进程对付这次查询;另一个电话进来时,主控程序又产生一个这样的进程对付,每个进程完成查询任务后消失。

  本文就UNIX下进程对信息的处理做一下简单介绍。

  二、进程的创建

  fork

  #include pid_t fork0;

  当一个进程调用了fork以后,系统会创建一个子进程。这个子进程和父进程不同的地方只有他的进程ID和父进程ID,其他都一样。为了区分父进程和子进程,必须跟踪fork的返回值,对于父进程fork返回子进程的ID,而对于fork子进程返回0。根据这个返回值来区分父子进程。有时进程为了早一点完成任务就创建子进程来争夺资源。一旦子进程被创建,父子进程一起从fork处继续执行,相互竞争系统的资源。有时候希望子进程继续执行,而父进程阻塞直到子进程完成任务。这个时候可以调用wait或者waitpid。

  #include

  #include

  pid_t wait(int *stat_loc);

  pid_t waitpid(pid_t pid,int *stat_loc,int options);

  wait系统调用会使父进程阻塞直到一个子进程结束或者是父进程接受到一个解除阻塞的信号。成功时(因一个子进程结束)wait将返回子进程的ID,否则返回一1。

  三、进程的执行

  exec0

  #include

  int execl(path,argO,...,argn,(char*)0)

  char *path,*argO,...,*argn;

  int execv(path,argv)

  char *path,*argv[];

  int execle(path,argO,...,argn,(char*)O,envp)

  char *path,*arg0,…,*argn,木envp[];

  int exec.ve(path,argv,envp)

  char *path,*argv[],*envp[l;

  int execvp(file,argv)

  char *file,4argv口;

  功能:执行一个文件

  这是一个系统调用族,用于将一个新的程序调入本进程所占的内存,并覆盖之产生新的内存进程映象。新的程序可以是可执行文件或SHELL批命令。当C程序被执行时,是如下调用的:

  main(int argc,char *argv[],char *envp[]); +

  arge是参数个数,是各个参数字符串指针数组,envp是新进程的环境变量字符串的指针数组。arge至少为1,argv[0]为程序文件名,所以,在上面的exec系统调用族中,path为新进程文件的路径名,file为新进程文件名,若file不是全路径名,系统调用会按PATH环境变量自动找对应的可执行文件运行。若新进程文件不是一个可执行的目标文件(如批处理文件),则execlp0和execvp0会将该文件内容作为一个命令解释器的标准输入形成system0。arg0,…等指针指向.\0.结束的字符串,组成新进程的有效参数,且该参数列表以一个空指针结束。反过来,arg0至少必须存在并指向新进程文件名或路径名。同样,argv是字符串指针数组,argv[0]指向新进程文件名或路径名,并以一空指针结束。envp是一个字符串指针数组,以空指针结束,这些字符串组成新进程的环境。

  参考文献:

  [1][美]James Rumbaugh.Booh,G UML用户指南[J].机械工业出版社.2001,6.

  [2][美]希尔特.C语言大全:第四版[M],北京:电子工业出版社,2001,9.

  [3][美lMichael Jang红帽linux 9从入门到精通[M].北京:电子工业出版社,2003,10.

  The Multi-processing of The Information System in UNIX

  Tian Zhaodong Miao Qiang

  (Shenyang Institute of Chemical Technology, Shenyang 110142, China)

  the UNIX multi-process of how to carry out parallel processmg.

  Key words : information processing; UNIX; process; parallel

在线投稿