上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 39 下一页
摘要: 1. 创建/获取一个共享内存#include #include /* For mode constants */#include /* For O_* constants */int shm_open(const char *name, int oflag, ... 阅读全文
posted @ 2015-02-19 15:14 挨踢人啊 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 共享内存API#include #include int shmget(key_t key, size_t size, int shmflg);void *shmat(int shmid, const void *shmaddr, int shmflg);int shmdt(const void ... 阅读全文
posted @ 2015-02-19 15:02 挨踢人啊 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 概述 共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据(如图)。 共享内存 VS. 其他IPC形式 用管道/消息队列传递数据 用共享内存传递数据 ... 阅读全文
posted @ 2015-02-19 14:51 挨踢人啊 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 1. 创建/获取一个消息队列#include /* For O_* constants */#include /* For mode constants */#include mqd_t mq_open(const char *name, int oflag)... 阅读全文
posted @ 2015-02-18 19:45 挨踢人啊 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 消息队列综合案例消息队列实现回射客户/服务器 server进程接收时, 指定msgtyp为0, 从队首不断接收消息server进程发送时, 将mtype指定为接收到的client进程的pid client进程发送的时候, mtype指定为自己进程的pidclient进程接收时, 需要将msgtyp... 阅读全文
posted @ 2015-02-18 19:26 挨踢人啊 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 消息发送/接收APImsgsnd函数int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);参数 msgid: 由msgget函数返回的消息队列标识码, 也可以是通过ipcs命令查询出来的一个已经存在的消息队列的ID号... 阅读全文
posted @ 2015-02-18 19:19 挨踢人啊 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 消息队列概述 消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法(仅局限于本机); 每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值. 消息队列也有管道一样的不足: (1)每个消息的最长字节数的上限(MSGMAX); (2)系统中消息队列的总条数也有一... 阅读全文
posted @ 2015-02-18 17:58 挨踢人啊 阅读(228) 评论(0) 推荐(0) 编辑
摘要: FIFO具名/命名管道 (匿名)管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。 如果我们想在不相关的进程之间交换数据,可以使用FIFO文件来做这项工作,它经常被称为命名管道;命名管道是一种特殊类型的文件. 创建一个命名管道1)命名管道可以从命令行上创建: $ mk... 阅读全文
posted @ 2015-02-18 17:45 挨踢人啊 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 进程的同步与互斥 进程同步: 多个进程需要相互配合共同完成一项任务。 进程互斥: 由于各进程要求共享资源,而且有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥;系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源, 而在进程中涉及到互斥资源的... 阅读全文
posted @ 2015-02-18 17:21 挨踢人啊 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 三种不同精度的睡眠1.sleep#include unsigned int sleep(unsigned int seconds);RETURN VALUE Zero if the requested time has elapsed, or the number of seconds lef... 阅读全文
posted @ 2015-02-18 16:19 挨踢人啊 阅读(263) 评论(0) 推荐(0) 编辑
摘要: Sigaction#include int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);功能: sigaction函数用于改变进程接收到特定信号... 阅读全文
posted @ 2015-02-18 16:07 挨踢人啊 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 信号在内核中的表示 执行信号的处理动作称为信号递达(Delivery),信号从产生到递达之间的状态,称为信号未决(Pending)。进程可以选择阻塞(Block)某个信号。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作。 注意,阻塞和忽略是不同,只要信号被... 阅读全文
posted @ 2015-02-18 15:50 挨踢人啊 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 信号分类 不可靠信号Linux信号机制基本上是从UNIX系统中继承过来的。早期UNIX系统中的信号机制比较简单和原始,后来在实践中暴露出一些问题,它的主要问题是: 1.进程每次处理信号后,就将对信号的响应设置为默认动作。在某些情况下,将导致对信号的错误处理;因此,用户如果不希望这样的操作,那么... 阅读全文
posted @ 2015-02-18 15:31 挨踢人啊 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 中断 中断是系统对于异步事件的响应, 进程执行代码的过程中可以随时被打断,然后去执行异常处理程序; 计算机系统的中断场景:中断源发出中断信号 -> CPU判断中断是否屏蔽屏蔽以及保护现场 -> CPU(查询中断向量表, 找到中断服务程序的入口地址)执行中断处理程序 ->(处理完中断之后... 阅读全文
posted @ 2015-02-18 15:01 挨踢人啊 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 概述 守护进程是在需要在后台长期运行不受终端控制的进程,通常情况下守护进程在系统启动时自动运行,在服务器关闭的时候自动关闭;守护进程的名称通常以d结尾,比如sshd、xinetd、crond、atd等。守护进程编程规则 调用umask将文件模式创建屏蔽字设置为一个已知值(通常是0) ... 阅读全文
posted @ 2015-02-18 11:32 挨踢人啊 阅读(179) 评论(0) 推荐(0) 编辑
摘要: Wait的背景 当子进程退出的时候,内核会向父进程发送SIGCHLD信号,子进程的退出是个异步事件(子进程可以在父进程运行的任何时刻终止) 子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程,它只保留最小的一些内核数据结构,以便父进程查询子进程的退出状态。 父进程查询子进程的... 阅读全文
posted @ 2015-02-18 11:22 挨踢人啊 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 进程的几种终止方式(1)正常退出 从main函数返回[return] 调用exit 调用_exit/_Exit(2)异常退出 调用abort 产生SIGABOUT信号 由信号终止 Ctrl+C [SIGINT] ...(并不完全, 如return/pthread_ex... 阅读全文
posted @ 2015-02-18 11:02 挨踢人啊 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 孤儿进程与僵尸进程孤儿进程: 如果父进程先退出,子进程还没退出那么子进程的父进程将变为init进程。(注:任何一个进程都必须有父进程)//生成孤儿进程int main(int argc, char *argv[]){ pid_t pid = fork(); if (pid 0) ... 阅读全文
posted @ 2015-02-18 10:44 挨踢人啊 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 进程 VS. 程序什么是程序? 程序是完成特定任务的一系列指令集合。什么是进程? [1]从用户的角度来看:进程是程序的一次执行过程 [2]从操作系统的核心来看:进程是操作系统分配的内存、CPU时间片等资源的基本单位。 [3]进程是资源分配的最小单位 [4]每一个进程都有自己独立的地址... 阅读全文
posted @ 2015-02-18 10:19 挨踢人啊 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 文件共享 一个进程打开了两个文件文件表条目(file-table-entry): 1.文件状态标志(file-status-flags): 读/写/追加/同步/非阻塞等; 2.当前文件偏移量 3.v节点指针//验证int main(int argc, char *argv[])... 阅读全文
posted @ 2015-02-18 09:59 挨踢人啊 阅读(245) 评论(0) 推荐(0) 编辑
上一页 1 ··· 29 30 31 32 33 34 35 36 37 ··· 39 下一页