摘要: 同时满足以下4个条件便发生死锁: 1. 互斥:至少存在一个资源非共享,那么申请进程必须等到该资源被释放才能结束。 2. 占有并等待:一个进程必须占有至少一个资源,并等待另一个被其他进程占有的资源。 3. 非抢占:资源被占有后不能被其他进程抢占,只能等到该进程结束后释放。 4. 循环等待:有一组进程{ 阅读全文
posted @ 2017-03-23 20:27 poluner 阅读(121) 评论(0) 推荐(0) 编辑
摘要: exit()退出进程前执行注册的退出处理函数,同时刷新流缓冲区。 _exit()不调用注册函数,直接退出进程。 return用于返回当前函数,在main函数里面,return 0;和exit(0)完成的功能一样。 阅读全文
posted @ 2017-03-23 16:43 poluner 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 逻辑地址:程序所生成的地址。 物理地址:物理内存的地址。 逻辑地址经过内存管理单元MMU转换成物理地址,逻辑地址加上基地址寄存器的值便得到物理地址。 阅读全文
posted @ 2017-03-23 16:22 poluner 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 1. 切换页目录 2. 切换内核栈和硬件上下文 1. 不需要切换页目录,因为线程在同一个进程中,虚拟空间是相同的 2. 切换内核栈和硬件上下文 线程私有的东西:程序计数器pc、寄存器组、栈、私有数据TSD(如errno)。 阅读全文
posted @ 2017-03-23 15:30 poluner 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 1. 无名管道PIPE 作用:情缘关系进程间通信。 原理:是内核中一种特殊的临时文件,用完自动消失,数据采用循环队列的方式在进程间传递。 2. 有名管道FIFO 作用:任意进程间通信。 原理:是文件系统中特殊的永久文件,用完不会消失,但作用仅仅是拥有一个磁盘路径这样的接口,而通信的信息存只放在内存中 阅读全文
posted @ 2017-03-23 15:29 poluner 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 1. 直接打印出指针占多少字节,4字节为32位系统,8字节为64位系统。 2. 大小端判断: 小端:低地址存放数的低位(如:X86) 大端:低地址存放数的高位(如:网络字节顺序) (ARM大小端都支持) 假设数0x1234从0x0000开始存放,小端顺序为: 大端顺序为: 采用union判断,uni 阅读全文
posted @ 2017-03-22 15:21 poluner 阅读(1932) 评论(0) 推荐(0) 编辑
摘要: 1. 首先明确:引用本质是const指针,编译时引用被转化成指针。深入分析C++引用 2. 由于是const类型,所以不能为空,而且初始化有且仅有一次,初始化之后不可更改指向的对象。 3. 引用占据空间,且大小跟指针一样 4. 多态中,父类的引用可以指向子类对象,如果说引用是别名怎么说的过去呢? 5 阅读全文
posted @ 2017-03-22 14:25 poluner 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 1. 重载:在相同作用域中,同名函数但参数列表不同,编译器将参数列表同函数名拼接在一起形成不同的符号,所以说重载必须参数列表不同,而不考虑返回类型。C++函数重载实现原理浅析。注意:重载不是多态,多态体现在虚函数运行时的动态绑定上! 2. 重写:父类虚函数与子类函数同名同参数列表,则为重写。 3. 阅读全文
posted @ 2017-03-21 23:07 poluner 阅读(116) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-03-21 22:10 poluner 阅读(7) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-03-21 15:25 poluner 阅读(5) 评论(0) 推荐(0) 编辑