10 2013 档案

摘要:一、死锁什么是死锁?其条件是什么?怎样避免死锁? 死锁的概念:在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态。 死锁产生的原因主要是:(1)系统资源不足;(2) 进程推进顺序非法。 产生死锁的必要条件: (1)互斥(mutualexclusion),一个资源每次只能被一个进程使用; (2)不可抢占(nopreemption),进程已获得的资源,在未使用完之前,不能强行剥夺; (3)占有并等待(hold andwa... 阅读全文
posted @ 2013-10-23 11:18 z折腾 阅读(323) 评论(0) 推荐(0)
摘要:一、简单单链表先上代码Chain.h#includetemplateclass Chain;templateclass ChainNode{/*要将私有成员数据或函数暴露给另一个类,必须将后者声明为友元类。*/ friend class Chain;private: T data; ChainNode* link; };templateclass Chain{private: ChainNode* first;/*链表长度,即链表元素的个数*/ int n;public: Chain(){first=NULL;n=0;} ~Chain(); ... 阅读全文
posted @ 2013-10-22 13:33 z折腾 阅读(243) 评论(0) 推荐(0)
摘要:转载http://www.cnblogs.com/lihaosky/articles/1673341.html一、Wait#include /* 提供类型pid_t的定义 */ #include pid_t wait(int *status) 简介 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进 程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。 参数status用来保存被收集进程退出时的一些状态,它是一个指向i... 阅读全文
posted @ 2013-10-22 06:06 z折腾 阅读(274) 评论(0) 推荐(0)
摘要:转载http://www.cnblogs.com/scrat/archive/2012/06/25/2560904.html什么是僵尸进程 僵尸进程是指它的父进程已经退出(父进程没有等待(调用wait/waitpid)它),而该进程dead之后没有进程接受,就成为僵尸进程,也就是(zombie)进程。 僵尸进程是怎么样产生 一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。 在Linux进程的状态中,僵尸... 阅读全文
posted @ 2013-10-22 05:57 z折腾 阅读(349) 评论(0) 推荐(0)
摘要:转载http://www.cnblogs.com/leoo2sk/archive/2009/12/11/talk-about-fork-in-linux.html给出如下C程序,在linux下使用gcc编译:1234567891011121314#include "stdio.h"#include "sys/types.h"#include "unistd.h"intmain(){pid_t pid1;pid_t pid2;pid1 = fork();pid2 = fork();printf("pid1:%d, pid2:% 阅读全文
posted @ 2013-10-22 05:36 z折腾 阅读(455) 评论(0) 推荐(0)