专业课学习记录2(2018)

软件工程:
1.说明下工程与科学的区别
“科学”是运用定理,定律等思维形式反映现实世界各种现象的本质和规律的知识和理论体系。“工程”是用科学和技术去解决实际问题的某种范围的应用单元。
区别在于:科学是系统理论知识,能用于指导实践;而工程则是运用科学和技术进行的一种实践活动,科学是工程学科的基础和保障,工程可以反映和检验科学的正确性和先进性以至于让科学更好的服务于人类。同时科学知识的易教育性,使工程领域再扩大从业规模的同时保证他们的素质。

2.什么是集成测试,什么是单元测试,单元测试用例和集成测试用例用什么区别?
单元测试是在软件开发过程中要进行的最低级别的测试活动,针对软件设计的最小单元——模块。
集成测试是根据实际情况对程序模块采用适当的集成测试策略组装起来,对系统的接口以及集成后的功能进行正确性检验。
区别:
测试对象不同。单元测试对象是实现了具体功能的程序单元,集成测试对象是概要设计规划中的模块及模块间的组合。
测试方法不同。单元测试中的主要方法是基于代码的白盒测试,集成测试中主要使用基于功能的黑盒测试。
测试时间不同,集成测试晚于单元测试。
测试内容不同,单元测试主要是模块内程序的逻辑,功能,参数传递,变量引用,出错处理及需求和设计中具体要求方面的测试,集成测试主要验证各个接口,接口见的数据传递关系,及模块最后能否达到预期效果。

3.功能性需求和非功能性需求(2019考过)
软件的功能性需求是描述一个系统的行为,与系统的功能性相关。功能需求是指提供了什么服务,实现了什么功能。软件非功能性需求是详细描述了一个系统的性能特点,系统应该做成什么样与系统架构相关,非功能性需求是指效果怎么样,性质怎么样。

4.软件体系结构的设计视角(2019考过)
逻辑视图 :设计的对象模型(使用面向对象的设计方法时)
过程视图 :捕捉设计的并发和同步特征
物理视图 :描述了软件到硬件的映射,反应了分布式特性
开发视图 :描述了在开发环境中软件的静态组织结构

5.质量模型的可用性
可用性就是指系统修复故障的能力,它关注的方面包括如何检测系统故障,系统故障发生的频度,出现故障发生什么情况,允许系统有多长时间非正常运行,什么时候可以安全的出现故障等。

单一职责原则SRP:
一个高内聚的类不仅要是信息内聚的,还应该是功能内聚的,也就是说,信息和行为除了要集中之外,还要联合起来表达一个内聚的概念,而不是简单的堆砌。

计算机网络部分:
1.TCP/IP
中译名位传输控制协议/因特网协议,又名位网络通讯协议,是Internet最基本的协议,Internet国际互联网络的集成,由网络层的IP协议和传输层的TCP协议组成,TCP/IP定义了电子设备如何连入互联网,以及数据如何在他们之间传输的标准。TCP/IP是一个协议族,是因为TCP/IP协议包括TCP,IP,UDP,ICMP,RIP,TELNETFTP,SMTP,ARP,TFTP等许多协议,这些协议一起称为TCP/IP协议。

2.RIP
是一种网关协议(IGP),是一种动态路由选择协议,用于自治系统内的路由信息的传递,RIP协议基于距离矢量算法,使用”跳数“来衡量到达目标地址的路由距离。
3.NAT
中文意思是”网络地址转换“,它是一个IETF标准,允许一个整体机构用一个公用IP地址出现在Internet上,顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术
4.DNS(域名系统)
万维网上作为域名和IP地址相互映射的一个分布i是数据库,能够使用户方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
5.FTP
用于Internet上的控制文件的双向传输。同时,它也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵循同一种协议来传输文件。

6.简述三次握手过程,并简述为什么要进行第三次握手。
第一次握手:建立连接时,客户端发送syn包到服务器,并进入SYN_SEND状态,等待服务器确认。
SYN:同步序列编号。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成第三次握手。
第三次握手是为了保证信息传达的确定性,确保信息没有丢失,之间的连接依然通畅。

7.比较RIP和OSPF的区别
RIP是一种分布式的基于距离向量的路由选择协议。
OSPF是一种分布式的基于链路状态的路由选择协议。

RIP:仅与相邻的路由器交换状态,路由器交换的信息是当前本路由器所知道的全部信息,即路由表,按固定的时间间隔交换路由信息。
OSPF:向本自治系统所有的路由器发送信息,发送的信息是与本路由器的相邻的所有路由器的链路状态,即本路由器周边的网络拓扑,只有当链路状态发生改变时,路由器猜想所有路由器用洪范法发送信息。

在RIP中,每个路由器只知道到所有路由器的距离以及吓一跳路由器,不知道全网的拓扑结构,切由于所处位置不同,每个路由器的路由表不用,发生网络故障时,要经过很长时间才能将信息传送给所有路由器,即所谓的“好消息传的快,坏消息传的慢”,收敛慢。
在OSPF中,由于交换的信息是相邻的路由器的链路状态,故每一个路由器都能建立其一个链路状态数据库,即全网的拓扑结构图,该数据库在全网范围是一致的(这称为“链路状态数据库的同步”)。在OSPF中,链路数据库能较快的更新,故OSPF更新过程收敛快

RIP协议使用运输层的用户数据报UDP进行传送,OSPF直接使用IP数据报进行传送。

操作系统:
1.特权指令:
所谓特权指令是指具有特殊权限的指令,由于这类指令的权限最大,所以如果使用不当,就会破坏系统或其他用户信息。因此为了安全起见,这类指令只能用于操作系统或其他系统软件,而一般不直接提供给用户使用。

2.程序的局部性原理
程序的局部性原理是指程序在执行时出现局部性的规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分,他们倾向于引用的数据项邻近于其他引用过的数据项,或者邻近于最近自我引用过的数据项。比如缓存机制,CPU指令执行顺序处理。

3.内部碎片
内部碎片就是以及分配出去(能明确指出属于哪个进程)却不能被利用的内存空间。

Linux fork()
https://blog.csdn.net/jason314/article/details/5640969、

直接地址索引
间接地址索引
https://blog.csdn.net/qq_34649947/article/details/72777785

经典的三状态模型和转化图:
在这里插入图片描述

在这里插入图片描述
运行:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。

就绪:当一个进程获得了除处理机以外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。

阻塞:也称为等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时停止运行,这是即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。

七状态等待模型
在这里插入图片描述
挂起原因:当系统资源尤其是内存资源不能满足进程运行的要求时,必须把某些进程挂机,对换到磁盘交换区,释放它占有的某些资源,暂时不参与低级调度,起到平滑系统负荷的目的。也可能系统出现故障,需要暂时挂起一些进程,以便故障消除后再解除挂起并恢复进程运行。

低级调度又称为进程调度、短程调度,它决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。在批处理,分时,实时三类系统中,进程调度必须被配置,因而是一种最基本的调度。与中级调度——交换,高级调度——作业调度相对应。
低级调度的功能:
1、保存处理机的现场信息。
2、按某种算法选取进程。
3、把处理器分配给进程。

LRU(Least recently used,最近最少使用)
FIFO(First in First Out 先进先出算法):总是淘汰最先调入内存的页面

银行家算法:死锁避免
将当下可用的资源先分配给满足条件的进程,然后收回该进程的资源,重复上述步骤即可。

PV算法:理发师问题。
分析:
(1)设置理发师的资源信号量为barber,初值为初始状态可用的资源数,故设barber初值为0(因为没有顾客的时候理发师在睡觉呀)。
(2)设置顾客的资源信号量为customers,初值为0(刚开始没有顾客来)。
(3)用互斥信号量mutex实现进程互斥。
(4)用变量waiting来记录等待的顾客数,判断有没有空闲椅子。

在这里插入图片描述

数据结构
1.二叉树的性质
1.一颗非空二叉树的第i层上最多2^i-1(i>=1)
2.深度为h的二叉树至多有2^h-1个节点
3.对于任何一颗二叉树T,如果其终端节点数为n0,度为2的节点数为n2,则n0=n2+1;
证明:总结点数:n0+n1+n2=N;
边数=总结点数-1;
边数=2n2+n1;
即2n2+n1+1=N
n0=n2+1;

内排序的时间复杂度(尚未深入理解)
https://blog.csdn.net/hellozhxy/article/details/79911867

在这里插入图片描述

在这里插入图片描述

3.先序排序 后序排序 中序排序

4.哈夫曼树
思想:构造带权最少的二叉树
选择当前最小权值的两个节点,合并后加入到原来的节点中,重复。
n个叶子节点的哈夫曼树,其总节点的个数:2n-1
因为每次选出2个,就增加一个新的节点

5.AVL树
见2019

6.堆排序
目的:为保存中间比较结果,减少后面的比较次数,又不占用大量的附加存储空间
堆排序属于交换排序的一种,把数组建树,从下往上,从右往左比较子节点和父节点的数,按父节点大于子节点交换,最后根节点就是最小的数。
把根节点与末尾元素交换,再次建堆。将堆顶元素与末尾元素交换,得到第二大元素。如此反复进行交换、重建、交换。。
这里,必须说明一下,所谓的交换,实际上就是把最大值从树里面拿掉了,剩下参与到排序的树,其实只有总结点的个数减去拿掉的节点个数了。

7.B-树
https://blog.csdn.net/v_JULY_v/article/details/6530142

8.单源最短路径(DijKstra)
基本思想:把图中所有顶点分为两组,第一组包括已确定最短路径的顶点,初始时只含一个源点,记为集合S,第二组包括尚未确定最短路径的顶点,记为V-S.按最短路径长度递增的顺序逐个把V-S中的顶点加到S中,直到从V0出发可以达到的所有顶点都包括S中。

其中B树和内排序一些概念还未完全掌握

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值