笔试记录-9.9

9.9笔试记录

文章目录

  • 动态规划分类
  • 常见的设计模式
  • 死锁的条件
  • PV操作
  • 类图关系画法
  • iptabls
  • 分布式数据库特征


动态规划分类

主要是线性,区间,树形等。

常见的设计模式

构建器(Builder)模式使用简单对象并使用逐步方法构建复杂对象。 这种类型的设计模式属于创建模式,因为此模式提供了创建对象的最佳方法之一。

常见的设计模式: link

死锁的条件

1、互斥: 某种资源一次只允许一个进程访问,即该资源一旦分配给某个进程,其他进程就不能再访问,直到该进程访问结束。
2、占有且等待: 一个进程本身占有资源(一种或多种),同时还有资源未得到满足,正在等待其他进程释放该资源。
3、不可抢占: 别人已经占有了某项资源,你不能因为自己也需要该资源,就去把别人的资源抢过来。
4、循环等待: 存在一个进程链,使得每个进程都占有下一个进程所需的至少一种资源。
当以上四个条件均满足,必然会造成死锁,发生死锁的进程无法进行下去,它们所持有的资源也无法释放。这样会导致CPU的吞吐量下降。所以死锁情况是会浪费系统资源和影响计算机的使用性能的。那么,解决死锁问题就是相当有必要的了。

PV操作

1.什么是PV操作
  PV操作是由P操作原语和V操作原语组成(原语是不可能中断的过程),操作对象是信号量。具体的:
  P(S):① 将信号量S的值减1,即S=S-1;② 如果S>=0,则该进程继续执行;否则进程进入等待队列,置为等待状态。
  V(S):① 将信号量S的值加1,即S=S+1;② 如果S>0,则该进程继续执行;否则释放等待队列中第一个等待信号量的进程。(因为将信号量加1后仍然不大于0,则表示等待队列中有阻塞的进程。)
2.PV操作的意义
  使用PV操作和信号量可以实现进程间的同步和互斥。
3.什么是信号量
  信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号的下一个进程。信号量的值与相应资源的使用情况有关。当信号量的值大于0时,表示当前可用资源的数量;当信号量的值小于0时,其绝对值表示当前阻塞等待使用该资源的进程个数。(信号量值只能用PV操作来改变。)
  一般的,当信号量S>=0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须阻塞等待别的进程释放该类资源才能继续运行。而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S<=0,表示此刻有进程正在阻塞等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。

类图关系画法

笔试记录-9.9_第1张图片

iptabls

iptables不是防火墙,是防火墙用户代理
  用于把用户的安全设置添加到安全框架中
  安全框架是防火墙
  安全框架的名称为netfilter
  netfilter位于内核空间中,是Linux操作系统核心层内部的一个数据包处理模块
  iptables是用于在用户空间对内核空间的netfilter进行操作的命令行工具
  netfilter/iptables功能
  netfilter/iptables可简称为iptables,为Linux平台下的包过滤防火墙,是开源的,内核自带的,可以代替成本较高的 企业级硬件防火墙,能够实现如下功能:
  数据包过滤,即防火墙
  数据包重定向,即转发
  网络地址转换,即可NAT 
iptables的相关指令:https://blog.csdn.net/weixin_39874350/article/details/110490979

分布式数据库特征

1、独立透明性(分布透明性)
数据独立性是数据库方法追求的主要目标之一,分布透明性指用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节,也不必关心重复副本(冗余数据)的一致性问题,同时也不必关心局部场地上数据库支持哪种数据模型。分布透明性的优点是很明显的.有了分布透明性,用户的应用程序书写起来就如同数据没有分布一样.当数据从一个场地移到另一个场地时不必改写应用程序。当增加某些数据的重复副本时也不必改写应用程序,数据分布的信息由系统存储在数据字典中,用户对非本地数据的访问请求由系统根据数据字典予以解释、转换、传送。
2、集中节点结合
数据库是用户共享的资源在集中式数据库中,为了保证数据库的安全性和完整性,对共享数据库的控制是集中的,并设有DBA负责监督和维护系统的正常运行。在分布式数据库中,数据的共享有两个层次:
一是局部共享,即在局部数据库中存储局部场地上各用户的共享数据,这些数据是本场地用户常用的。
二是全局共享,即在分布式数据库的各个场地也存储可供网中其它场地的用户共享的数据,支持系统中的全局应用。
3、复制透明性
用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过网络传输数据,提高了系统的运行和查询效率。但是对于复制数据的更新操作,就要涉及到对所有复制数据的更新。
4、易于扩展性
在大多数网络环境中,单个数据库服务器最终会不满足使用。如果服务器软件支持透明的水平扩展,那么就可以增加多个服务器来进一步分布数据和分担处理任务。

你可能感兴趣的:(面试)