进程控制
tanghui19900420
这个作者很懒,什么都没留下…
展开
-
信号通信2
说明:只供学习交流,转载请注明出处 六,捕捉或忽略信号进程对于信号有3种处理方法:不做任何处理(采用系统默认的处理方法)、忽略信号和捕获信号。忽略信号和捕获信号都需要修改进程对于信号的默认处理,即在收到信号时设置具体的处理函数。Linux系统提供了两个系统调用用于完成这种功能,分别是signal函数和sigaction函数 signal函数的信息如下表所示:signal函数原创 2013-05-17 11:21:40 · 618 阅读 · 0 评论 -
无名管道
说明:只供学习交流,转载请注明出处 一,管道的基本概念管道是单向的、先进先出的,它把一个进程的输出和另一个进程的输入连接在一起。一个进程(写进程)在管道的尾部写入数据,另一个进程(读进程)从管道的头部读出数据。无名管道又被称为pipe,是Linux所支持的IPC方式的一种。它具有如下特点:(1):只能用于血缘关系的进程之间通信。(2):属于半双工的通信模式(进程在发送数据的原创 2013-05-14 14:15:17 · 1073 阅读 · 0 评论 -
命名管道
说明:只供学习交流,转载请注明出处 一,有名管道的概念有名管道又称为命名管道或被称为FIFO(first-in,first-out)。是Linux所支持的IPC方式的一种。区别于无名管道,命名管道可以用于没有亲缘关系的进程之间的通信。命名管道作为特殊的设备文件存在于文件系统中,具有文件名,文件属性及存放路径等信息,也就是说利用命名管道进行操作后,我们可以在相应的路径下查找到它,更方便编原创 2013-05-14 14:18:07 · 1064 阅读 · 0 评论 -
信号量2
说明:只供学习交流,转载请注明出处 七,semctl函数在使用信号量之前,需要对信号量集中的每个元素进行初始化操作。semctl函数提供了该项功能。该函数的具体信息如下表:semctl函数 头文件#include #include #include 函数原型int semctl(int semid, int原创 2013-05-22 14:08:21 · 741 阅读 · 0 评论 -
信号量1
说明:只供学习交流,转载请注明出处 一,信号量的基本概念信号量(又名:信号灯)与其他进程间通信方式不大相同,主要用途是保护临界资源。进程可以根据它判定是否能够访问某些共享资源。除了用于访问控制外,还可用于进程同步。 在多进程环境里,运行一个进程或修改其他进程可能正在使用的数据,往往导致数据的数值不可预测。使用信号量避免了这个问题的出现。信号量用于控制多个进程对共享资源或数原创 2013-05-22 14:05:32 · 1218 阅读 · 0 评论 -
守护进程的日记实现
说明:只供学习交流,转载请注明出处 五,守护进程的日记实现:由于守护进程不拥有控制终端,因此无法将进程运行信息输出显示。但有时候需要根据进程提供的信息来进行系统管理和维护工作。为此,Linux系统提供了一种特殊的机制来解决守护进程的日志问题。syslogd守护进程通过接收其他守护进程的信息,并将这些信息记录在指定位置来解决日志记录问题。syslogd守护进程会根据消息级别来判断是将消息原创 2013-05-12 17:48:11 · 765 阅读 · 0 评论 -
守护进程
说明:只供学习交流,转载请注明出处 一,简介:守护进程,也称为精灵进程,是一种运行在后台的特殊进程,它不存在控制终端,并周期性地执行某项任务或等待处理某项任务。Linux系统启动时往往需要启动很多的系统服务程序,例如著名的apache、telnet、ftp等服务程序,这些系统服务程序往往是运行在后台的。人们将这些服务程序称为守护进程(daemon)。由于守护进程运行在后台中,不可能向终原创 2013-05-12 17:42:57 · 620 阅读 · 0 评论 -
进程相关的系统调用3
说明:只供学习交流,装载请注明出处 一,进程等待: wait函数头文件#include #include 函数原型pid_t wait(int *status);返回值成功失败是否设置errno结束的子进程的PID和结束状态-1原创 2013-05-11 18:19:54 · 633 阅读 · 0 评论 -
进程相关的系统调用2
说明:只供学习交流,转载请注明出处 一,exec函数族Linux系统提供了exec函数族用于对创建新进程中的数据段、代码段和堆栈段进行替换。进程调用exec函数族中的函数后,其代码段会被替换成新的代码段。同时,获得新程序的数据段和堆栈段,进程的进程号保持不变。exec函数族中的函数定义主要包括如下的几种形式:int execl(const char *path, const cha原创 2013-05-10 16:41:28 · 645 阅读 · 0 评论 -
进程相关的系统调用1
说明:只供学习交流,转载请注明出处 一,获取IDgetpid和getppid函数 头文件#include #include 函数原型pid_t getpid(void);pid_t getppid(void);返回值getpid返回当前进程id号。getppid返回父进程id原创 2013-05-09 18:01:41 · 730 阅读 · 0 评论 -
进程的基本概念
说明:只供学习交流,转载请注明出处 一, 进程的定义:进程是一个具有一定独立功能的程序的一次运行活动。 二, 进程和程序的区别:程序是静态的,进程是动态的,程序运行起来就是进程。进程具有的特点是:(1):动态性;(2):并发性;(3):独立性;(4):异步性; 三, 进程分类:在Linux系统中,根据进程的特点,进程可分为3大类:交互进程、批处理原创 2013-05-08 12:33:02 · 897 阅读 · 0 评论 -
消息队列2
说明:只供学习交流,装载请注明出处 六,msgsnd函数创建完消息队列后,为了通过消息队列进行进程间的通信,信息的发送方必须向消息队列发送信息。信息的接收方需要从消息队列中接收消息。发送消息和接收消息使用的函数分别是msgsnd函数和msgrcv函数。msgsnd函数的具体信息如下表:msgsnd函数 头文件#include #include原创 2013-05-19 17:47:01 · 718 阅读 · 0 评论 -
消息队列1
说明:只供学习交流,装载请注明出处 一,概念消息队列实际上就是一个消息链表,而消息是链表中具有特定格式及优先级的记录。进程按照一定的规则在消息链表中添加新的消息,而需要消息的进程可以从消息队列中获得所需的信息。消息队列和管道类似,消息被读走了就木有了。 目前主要有两种类型的消息队列:POSIX消息队列以及系统V消息队列,系统V消息队列目前被大量使用。系统V消息队列是随内核持续的原创 2013-05-19 17:44:03 · 793 阅读 · 0 评论 -
共享内存2
说明:只供学习交流,转载请注明出处 五,shmat函数shmat函数与shmdt函数用于实现对共享内存的操作。shmat函数用于将共享内存连接到指定的进程地址空间中。当共享内存连接到指定地址空间后,进程将获得指向该内存段的指针,然后可以根据指针实现对共享内存段的访问。完成对共享内存段的操作后,需要调用shmdt函数将共享内存段从进程的地址空间分离。shmat函数的具体信息如下原创 2013-05-18 17:19:08 · 725 阅读 · 0 评论 -
共享内存1
说明:只供学习交流,转载请注明出处 一,共享内存的基本概念共享内存是IPC(进程间通信)中最简单的方式之一。共享内存充许两个或多个进程访问同一块内存,就如同malloc()函数向不同进程返回了指向同一个物理内存的指针。当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更改。因为所有进程共享同一块内存。共享内存在各种进程间通信中具有最高的效率。访问共享内存区域和访问进程独有的原创 2013-05-18 17:17:14 · 726 阅读 · 0 评论 -
POSIX IPC基本概念
说明:只供学习交流,转载请注明出处 一,前言使用信号和管道进行进程通信存在一定的限制。例如,使用信号传递的信息有限,使用管道虽然能够传输一定量的信息,但是只能传输无格式的字节流。为了解决这些问题,20世纪70年代,AT&T发行的system V版本的Unix中引入了3中新的进程间通信(IPC)机制,分别是:消息队列、共享内存和信号量。在POSIX标准中,这些进程间通信机制被编入PO原创 2013-05-18 17:12:58 · 1543 阅读 · 1 评论 -
进程间通信概述
说明:只供学习交流,转载请注明出处 一,为什么进程间需要通信?1、数据传输一个进程需要将它的数据发送给另一个进程。2、资源共享多个进程之间共享同样的资源。3、通知事件一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件。4、进程控制有些进程希望完全控制另一个进程的执行(如Debug进程此时控制进程希望能够拦截另一个进程的所有操作,并能及时知道它的状原创 2013-05-14 14:13:13 · 548 阅读 · 0 评论