摘要: 实验内容:有3个进程,其中一个为父进程,其余两个是该父进程创建的子进程,其中一个子进程运行"ls -l"指令,另一个子进程暂停5s之后异常退出,父进程先用阻塞方式等待第一子进程的结束,然后用非阻塞方式等待另一个子进程退出,等待收集到第二个子进程结束的信息,父进程就返回。 第二种代码写法: 阅读全文
posted @ 2016-06-24 19:12 我有一壶酒 阅读(943) 评论(0) 推荐(0) 编辑
摘要: ftok函数的定义:系统建立IPC通讯 (消息队列、信号量和共享内存) 时必须指定一个ID值。通常情况下,该id值通过ftok函数得到。 头文件 #include <sys/types.h> #include <sys/ipc.h> 函数原型: key_t ftok( const char * fn 阅读全文
posted @ 2016-06-19 15:24 我有一壶酒 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 消息队列就是一些消息的列表。用户可以在消息队列中添加消息和读取消息等。消息存在于内核中,有“队列ID”来标识 msgget函数语法: msgsnd函数语法: msgrcv函数语法: msgctl函数语法: 添加消息代码: 读取消息的程序代码: 阅读全文
posted @ 2016-06-19 15:15 我有一壶酒 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 共享内存原理示意图 shmget函数语法: shmat函数语法 shmdt函数语法 代码分析: 阅读全文
posted @ 2016-06-19 15:01 我有一壶酒 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 信号量的概述:信号量是用来解决进程之间的同步与互斥问题的一种进程之间通信机制,包括一个称为信号量的变量和在该信号量下等待资源的进程等待队列,以及对信号量进程的两个原子操作(PV操作)。其中信号量对应于某一个资源,取一个非负的整形值。信号量值指的是当前可用的该资源的数量,若它等于0则意味着目前没有可用 阅读全文
posted @ 2016-06-19 11:11 我有一壶酒 阅读(936) 评论(0) 推荐(0) 编辑
摘要: 信号的概念:信号在软件层次上对中断机制的一种模拟。是一种异步通信方式,如果该进程当前并未处于执行态,则该信号就由内核保持起来,直到进程恢复执行再传递给它;如果一个信号就被进程设置为阻塞,则该信号的传递被延迟,知道其阻塞被取消时才被传递给进程。 signal()函数处理信号 代码分析: 阅读全文
posted @ 2016-06-19 10:46 我有一壶酒 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 编写两个程序,一个程序是对管道的写数据、另一个是对管道的读数据。 有名管道的创建mkfifo 读数据:fifo_read.c 写数据: 阅读全文
posted @ 2016-06-19 10:25 我有一壶酒 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 管道的概念:管道是基于文件描述符的通信方式,当一个管道建立时,它会创建两个文件描述符fd[0]和fd[1],其中fd[0]固定用于读管道,而fd[1]固定用于写管道,这样就构成了一个半双工的通道 无名管道:他只能用于亲缘关系的进程的通信(也就是父子进程或者兄弟进程之间),半双工通信发送,对它的读写可 阅读全文
posted @ 2016-06-19 10:20 我有一壶酒 阅读(1038) 评论(0) 推荐(0) 编辑
摘要: 1、信号量的初始化sem_init()函数语法 2、信号量sem_wait()操作,里面传递的参数首先-1,然后判断里面的参数-1之后是否>=0,是 则执行后面程序,否 则卡死在那里直到参数>=0 为止 信号量sem_post()操作,里面传递的参数+1, 代码分析:生产者和消费者问题 简单点的代码 阅读全文
posted @ 2016-06-19 09:36 我有一壶酒 阅读(964) 评论(0) 推荐(0) 编辑
摘要: 1、互斥锁的初始化pthread_mutex_init()函数语法 2、互斥锁上锁、判断上锁、解锁、销毁锁pthread_mutex_函数语法 代码分析: 阅读全文
posted @ 2016-06-19 09:25 我有一壶酒 阅读(402) 评论(0) 推荐(0) 编辑