Linux
turn__back
这个作者很懒,什么都没留下…
展开
-
僵尸进程和孤儿进程
什么是僵尸进程? 一个子进程在其父进程没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。如果其父进程还存在而一直不调用wait,则该僵尸进程将无法回收,等到父进程结束后,会被init回收。验证:#include#include#includeint main(){ pid_t id=fork(); if(0 == id)原创 2017-04-14 17:11:53 · 439 阅读 · 0 评论 -
银行家算法实现
一:银行家算法中的数据结构1)可利用资源向量Available是个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目。如果Available[j]=K,则表示系统中现有Rj类资源K个。2)最大需求矩阵Max这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K。3)分配矩阵Al原创 2016-06-26 16:21:30 · 1049 阅读 · 0 评论 -
匿名管道和命名管道
一:匿名管道(pipe)。 是一种最基本的IPC机制,由pipe函数创建。 调用pipe函数时在内核中开辟一块缓冲区用于通信。而我们把这块缓冲区叫做管道。 #include int pipe(int fd[2]); 其参数:为一个输出型的参数。其中fd[0]中保存读端口的文件描述符,fd[1]中保存写端口的文件描述符。 其返回值:原创 2017-05-12 20:48:52 · 974 阅读 · 0 评论 -
Linux-消息队列
消息队列是进程间通信System V版本(消息队列、信号量、共享内存)之一。所谓System V版本就是其生命周期随内核(及时进程结束,消息队列也不会被删除),这是与管道的不同。还有一个不同点就是:管道是以数据流方式来发送(接受)数据,而消息队列是以数据块的方式来发送(接受)数据。首先,下面是有关消息队列的系统调用:1、int msgget(key_t key, int msgfl原创 2017-06-12 19:41:49 · 371 阅读 · 0 评论 -
使用gdb如何调试多进程和多线程
一、gdb调试的一些常用指令。1、首先,要想对一个程序进行调试,就必须在编译的时候加-g选项(生成Debug版本),默认为Release版本。2、运行该程序:run(简写r)3、查看代码:list(简写l)4、打断点:break(简写b)后跟行号(或者函数名、文件名:行号)5、查看所有断点:info b6、跳转到下一断点处:continue(简写c)7、删除断点:del原创 2017-06-15 16:33:37 · 665 阅读 · 0 评论