摘要:
三次握手? 什么是三次握手? 一般情况下,连接是由客户端向服务端发起的。 第一次,客户端发送一个TCP数据报并将SYN同步位置为1,表示要建立连接,此时客户端会从CLOSED状态变为SYN_SEND状态; 第二次是服务端向客户端发送ACK,并且也将SYN置为1,一是表示自己收到了客户端建立连接的请求 阅读全文
摘要:
编写高质量代码的基本方法 通过控制结构简化代码 通过数据结构简化代码 一定要有错误处理 注意性能优先的代价 拒绝修修补补不断重构代码 性能优先策略带来的隐藏代价 软件工程师的人力成本远大于所消耗的计算资源成本时,提高代码编写的工作效率将更有价值; 质量保证的人力成本和质量保证的成效也比所消耗的计算资 阅读全文
摘要:
没有银弹的含义 软件危机:由于软件规模越来越大,软件复杂性越来越高,可靠性问题也越来越突出,传统的个人设计,个人实现的方式不再满足要求,迫切需要改变软件生产方式,提高软件开发效率,软件危机随之爆发。 “在10年内无法找到解决软件危机的杀手锏(银弹)。 在大型软件中打造抽象的软件概念模型,最难的点是缺 阅读全文
摘要:
软件的内在特性 软件的基本特点是前所未有的复杂性,为了降低复杂度我们在不同层面大量采用了抽象方法建立软件概念模型。为了应对易变性,我们努力保持软件设计和实现上的完整性和一致性。 系统的三种类型 S系统:有规范定义,可从规范派生 P系统:需求基于问题的近似解,但现实世界保持稳定 科研活动大多数属于上面 阅读全文
摘要:
什么是需求分析? 需求分析就是需求分析师对用户期望的软件行为进行表述。 谁来表述 → 需求分析师 谁有期望-> 用户 期望什么?-> 期望的软件行为 怎样表述?-> 在获取需求的基础上,用对象或实体的状态、属性和行为来进行准确描述和建模。 需求的类型 功能需求:根据所需的活动描述所需的行为 非功能需 阅读全文
摘要:
在了解守护进程之前,需要先知道什么是什么是终端?什么是作业?什么是进程组?什么是会话? 在 Linux 中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。 守护进程就是一个生存周期 阅读全文
摘要:
什么是回调函数? 粗暴的说,如果一个函数作为另一个函数的参数传入,这种函数就可以称为回调函数(这句话并不严谨,但为了说明问题可以这么理解)。C语言里面,一般就是一个函数的参数列表中有函数指针,函数指针指向的函数就是一个回调函数。 为什么要有回调函数? 那为什么不直接在函数体内调用,而非要把函数指针作 阅读全文
摘要:
在上一篇博客中,我们已经熟悉并使用了匿名管道,这篇博客我们将讲述进程间通信另外两种常见方式——命名管道与共享内存。 1.命名管道 管道是使用文件的方式,进行进程之间的通信。因此对于管道的操作,实际上还是用诸如write,read等接口实现。 匿名管道应用的一个限制就是只能在具有亲缘关系(如父进程与子 阅读全文
摘要:
1.进程间通信介绍 1.1 进程通信的基本概念 在之前我们已经学习过进程地址空间。Linux 环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用 阅读全文
摘要:
目的 理解PIM-DM 的应用场景 掌握PIM-DM 的基本配置 理解PIM-DM 中剪枝和嫁接的原理 理解PIM-DM 中的Assert 机制 原理 Source-Specific Multicast 即指定信源组播模型,是指接收者已经通过其它手段预先知道了组播源的具体位置,直接在接收者与其制定的 阅读全文