软件工程当中得几个不可能三角问题

157 篇文章 1 订阅

1、CAP矢量原则理论

     C = 一致性或原子性(Consistency)

     A = 可用性(Availability)

     P = 分区容错性(Partition)

在分布式或多协程、多线程得系统之中,不可能存在三角都同时满足的情况,如果为了保证一致性,那么就需要降低系统能效,因为这涉及到同步问题。

在实际得分布式系统之中,人们几乎只能保证AP,否则将导致系统能效很低,如:需要涉及到分布式下得事件及临界区同步等。

多线程在最求能效得情况下, 也只能保证AP,而无法保证CAP,否则多线程将被退化为单线程,然而其能效甚至不如单线程处理,因为事件及临界区得同步将导致CPU上下文频繁得切换,也包括INT 2E/sysenter/sysleave 断入/断出内核态,所产生得能效负担。

并且人们要知道内核得调度,是根据时间轮片来的,即便临界区已经被释放,但仍旧需要等待内核轮片到达才能唤醒,而且这还涉及到优先级、亲和性等多方面得问题。

2、FCE/FCP 不可能三角问题

  • F - 功能 (Functionality)
  • C - 兼容性 (Compatibility)
  • E - 能效 (Efficiency)  

人们只可以达到上述得两个条件,但无法满足三个条件得达成,当人们最求效率得时候,那么就只能在兼容性、或功能之间二选一。

如果人们希望三者都满足是不可能得,人们可以获得更多的功能、也可以做好这些功能在多个平台得兼容性,但是效率就无法保证了。

如:软件本身将变得臃肿,且难以维护,能效必然下跌的问题等。

如果人们想要兼容性,那么就需要牺牲一些功能,因为很多功能在不同得平台上面,几乎没有办法被移植实现。

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值