精华内容
下载资源
问答
  • 常用的系统切换策略
    千次阅读
    2020-11-12 15:25:35

    什么是系统重构

    它是一套严谨而安全的过程方法,它通过一系列行之有效的方法与措施,保证软件在优化的同时,不会引入新的BUG,保证软件改造的质量。
    系统重构,就是在不改变软件的外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变更。

    系统重构,在我理解有一种是系统内部的重构,也就是既有代码,还有一种是推翻老系统,建立一套新系统。

    系统重构原则和方法

    1、建议采用“迭代式”重构
    考虑将一次重构拆分为多次“迭代”行为,然后每一个重构步骤能快速部署上线并得到反馈,以便评估重构的效果,及时作出调整。从项目风险的角度来说,通过将重构分成多个迭代,能有效的控制迭代的风险,每一个步骤,重构团队(开发和测试)都能集中一点吃透,并进行充分的测试。如果直接将重构1,2个月后的版本,一下丢给测试同学去验证,效果可见一斑。

    至于如何来拆分重构,并没有一个统一的标准,但是我个人的看法,每次重构的工作量,不应该超过1个正常的迭代(2周时间)。

    2、对系统着手重构前,以及在系统开发中,都要提前考虑好切换方案以及方案在执行过程中的落地。新系统做好了,和老系统无法兼容,没有好的迁移方案,最后卡这了,系统推不去,对团队是一个很大的打击。

    系统重构可以参考两本书:《重构-改善既有代码的设计》,《重构与模式》

    系统重构可能面临的问题

    1、新老系统功能的兼容。主要在于老数据,在新系统功能中可用、展现完整,并且可以按新功能继续向下走。对于旧系统识别到的一些坑,尽量避开就是。后期做测试,要更多的关注旧数据在新系统中的表现。

    2、老数据迁移新系统后的数据完整性,若不完整,需要补充,否则新功能在展现旧数据时,会出现不可用的情况。比如由于表结构不一致,表字段不统一,新增的扩展数据等等。

    3、若涉及到工作流审批,流程审批能否兼容。新旧切换前,有两个选择:一是可以全部走完老流程,二是将未走完的流程全部回退到起点,在新系统中重新发起审批,并自动推动到对应节点,再继续向下走。

    4、老系统对外的接口在新系统中是否保持统一,否则要重新对外变更接口,比如端口、方法名、参数、返回值等等,尽量保持接口定义不变,造成不必要的麻烦

    5、确保新系统与外围系统的交互是否完整,新系统接替旧系统,与外围系统的交互同样要保留,不能新系统一上线,其他的系统服务涉及到旧系统的地方不可用

    6、针对一些特别老旧的系统,且在文档缺失严重的情况下,必须深入旧系统的使用、源代码逻辑,全面了解旧系统的功用,以便 能在新系统中完整的保持功能,不然容易学到了形,却遗漏了某些点。

    7、迁移系统分主次,尽量避免统一迁移,而是逐步迁移

    8.新老系统并存的架构
    image.png

    更多相关内容
  • 为了实现自主可控计算机高可靠的需求,提出了一种双机系统切换的设计方案,并完成双机系统切换仲裁原理与策略及软件实现。采用国产龙芯处理器2I(2J)+VxWorks+双机热备份方案,完成了主备选择、数据及程序同步设计...
  • 切换系统在运行中常受到干扰、时滞等影响,致使切换系统很难准确实施已确定的切换策略,因此系统的稳定性不能得到保证,鉴于此,本文基于模糊方法研究切换系统的稳定性问题,以增强系统的鲁棒性。将切换系统转换成T-...
  • :交流牵引系统在多模式调制方式下运行时会产生切换电流冲击,为保证平滑切换,论述了一种先由异步 SPWM调制向普通同步SPWM调制切换.再由普通同步SPWM调制向分段特定谐波消除脉宽调制(Selected Harmonic Eliminate ...
  • 介绍了关于PID控制回路的整定和无扰动切换等方面介绍了力控控制策略在控制系统中的应用的详细说明,提供运动控制器的技术资料的下载。
  • 面向4G系统的资源感知切换策略的仿真设计与实现.doc
  • MISO SWIPT系统的新型联合发射波束成形和接收时间切换策略
  • 面向4G系统的资源感知切换策略,刘宇,, 4G移动通信系统由于业务传输速率更高,QoS体系更为复杂,需要考虑的因素不单一是导频信号的强度,以导频强度作为未来系统的唯一切
  • 面向4G OFDMA系统的新型切换策略,王宗文,王永涛,在4G系统中,随着高速业务的迅猛增长,单用户所需信道资源越来越多,传统切换策略资源一次性分配对目标小区剩余资源提出苛刻要求�
  • 切换系统中经典研究模型,对切换控制策略进行验证。
  • 讨论了一类二阶不确定线性切换离散系统的控制问题, 应用监督控制技术提出一种新型的适 应性鲁棒镇定切换型控制策略。通过将该控制策略应用于磁悬浮轴承不平衡周期性振动的主动控制实 验, 验证了该方法的...
  • ERP系统信息化资料:kl-DAT-XX SAP ERP项目上线切换策略20140616v3.022.pptx
  • 考虑一类单输入线性切换系统的可镇定性问题, 利用变结构控制对系统进行降维.通过对系统滑动模态的...给出了具体的容许镇定策略集合, 并对二阶切换系统给出了详细的容许镇定策略.仿真实例验证了所提出结论的有效性.</p>
  • 切换技术维持着蜂窝移动通信系统中用户通信的连续进行,而其所采用的策略将直接影响切换的效果。根据TD-SCDMA系统的特点,提出了一种基于业务信道信号质量预留信道优先排队接力策略。该策略把移动用户划为业务信道...
  • 考虑一类单输入线性切换系统的可镇定性问题,利用变结构控制对系统进行降维。通过对系统滑动模态的...给出了具体的容许镇定策略集合,并对二阶切换系统给出了详细的容许镇定策略。仿真实例验证了所提出结论的有效性。
  • 双驱纯电动汽车模式划分及切换策略研究,胡建军,庞滔,本文针对一款双驱纯电动汽车的模式划分及模式切换控制策略展开研究。通过对驱动系统的工作特性进行分析,建立了系统在主电机单独
  • 基于改进贝叶斯方法的卫星网络补偿切换策略优化研究,尚颖,唐碧华,网络补偿切换策略根据源和目的终端切换引起的数据包失序分别采用整序算法和时延算法进行处理,有效改善了系统的传输性能。但是在
  • 电力自动化终端自治控制模式切换及功能配置策略研究.pdf
  • 对异构网络系统间的切换策略进行研究,提出1种基于业务(流)的切换策略,该策略可以为某些具有优先权的业务(流)选择切换代价最小的目标网络.通过这种方式,把满足切换条件的业务流合理分布到代价更为合适的网络,...
  • 星地混合网络的切换呼叫接入策略研究,周赟,刘元安,在星地混合网络中,当目标小区或系统的业务量比较大时,相较于正在进行的通信业务因为切换的发生而被迫中断,用户更希望直接阻塞
  • 针对传统的软切换技术是理想化条件下的模型,在现实环境的一些特殊情况下,不利于高效的利用信道...分析结果表明该策略系统切换呼叫到达强度较高时,不仅仅扩大了系统容量而且从整体上提高了系统切换的服务质量。
  • 根据快速分层移动IPv6的特点提出了一种有效的缓存管理策略,对比快速切换协议的缓存管理机制,该策略将MAP引入到系统的缓存管理中,从而提高了整个系统的缓存利用率.用NS-2模拟表明,该策略大大降低了切换过程中的...
  • 系统采用基于优先权的非抢占式进程调度策略,完成一次进程调度和进程切换系统时间开销为 1μs。在 T 时刻就绪队列中有 3 个进程 P1、P2 和 P3,其在就绪队列中的等待时间、需要的 CPU 时间和优先权,如下表所示...

    某系统采用基于优先权的非抢占式进程调度策略,完成一次进程调度和进程切换的系统时间开销为 1μs。在 T 时刻就绪队列中有 3 个进程 P1、P2 和 P3,其在就绪队列中的等待时间、需要的 CPU 时间和优先权,如下表所示
    优先权值大的进程优先获得 CPU,从 T 时刻起系统开始进程调度, 则系统的平均周转时间

    A. 54 μs
    B. 73 μs
    C. 74 μs
     D. 75 μs

    审题:题目中,在T时刻已经到达三个进程,基于非抢占式优先权的调度方法,由此可知调度顺序:P2-->P3-->P1

     

    根据表中数据可得式子:

    P2:1+15+24=40;(P2先到,进行一次进程调度和切换(1),选择了P2进程进行运行(24),加上已经在就绪队列里等待的时间(15))

    P3:18+1+24+1+36=80;(本身P3已在队列里等待(18),但是此时优先级更高的P2被调度了,所以需要等待进程调度P2的时间(1),然后等待P2运行的时间(24),P2运行完了,就可以进行进程切换和调度(1),P3自己上处理机(36))

    P1:30+1+24+1+36+1+12=105;(本身P1在就绪队列里呆了30,然后终于可以被调度了,突然发现有优先级比自己更高的P3,P2,所以要先等待他们两个完成了,P1才可以上处理机。首先P1需要等待进程去调度P2的时间(1),以及P2运行的时间(24);P2结束,P3上处理机,调度和切换P3(1),P3运行(36);P3终于运行完成,轮到了P1,先进程调度和切换到P1(1),加上P1自己的运行时间(12))

    平均周转时间多个作业周转时间的平均值

    可知系统的平均周转时间:(40+80+105)/3=75

    故该题选择D

    这一题做错,原因现在回想起来觉得非常无语。开始以为等待时间是说要运行他了,他要让cpu等一会。。其实就是题目看的不认真。题目说的是在就绪队列中的等待时间,T时刻他们已经等了那么久了,T时刻要开始要进行调度了。还有一个原因就是误以为,进程调度和进程切换各自需要1个时间。说白了就是概念不清晰,以及语文不好哈哈哈。理解不行。

    狭义的进程调度:从就绪队列选一个要运行的进程,他就只是选一下这个动作(这个进程可以是刚刚被暂停的进程,也可以是另一个进程)

    广义的进程调度:包含了选择一个进程和进程切换两个步骤

    进程切换:指一个进程让出处理机,由另外一个进程占用处理机的过程

    展开全文
  • 给出实现线性开关系统渐近稳定的切换策略。该策略的提出基于以下思想 :首先将 线性开关系统通过切换渐近稳定到原点问题看成系统误差最小化问题,然后基于梯度优化方法选 择要运行的子系统,构成切换序列。另外,提出...
  • 针对基于柔性多状态开关的配电网柔性互联系统存在的多模式运行与切换、馈线负荷不均衡和主变重载问题,提出了基于虚拟同步机技术的负荷均衡调控策略和主变重载自动调控策略。首先,根据馈线与主变的负载状态,将系统...
  • 考虑到控制器的数字化实现, 建立系统的离散切换系统模型, 提出在采样周期内使系统性能最优的切换控制策略. 仿真结果表明, 该控制策略能实现对指令电流的精确跟踪, 降低功率器件的开关频率, 从而有效地提高系统的...
  • 探讨了具有变时滞摄动切换系统的鲁棒状态反馈镇定问题。利用单 Lyapunov函数方法和多 Lyapunov函数方法 ,设计了使系统镇定的鲁棒状态反馈镇定控制律和切换策略。仿真结果表明 ,所设计的控制律和切换策略正确、有效。
  • 提高系统可用性的那些架构策略

    千次阅读 2021-12-08 13:26:57
    系统高可用面临的挑战有哪些? 1.资源不可用 在实际业务中,出现资源不可用的原因种类可能很多,有的概率很低,比如网线被挖断了,机房失火,地震等等导致网络不可用,有的概率相对来说很高比如服务器硬件资源不足,服务器...

    系统高可用面临的挑战有哪些?

    1.资源不可用

    在实际业务中,出现资源不可用的原因种类可能很多,有的概率很低,比如网线被挖断了,机房失火,地震等等导致网络不可用,有的概率相对来说很高比如服务器硬件资源不足,服务器故障等等。这些问题都可能会导致对应的资源不可用。

    2.资源不均衡

    由于系统架构设计的时候没有针对高并发和大流量进行可伸缩设计,导致无法应对并发很大的场景,出现系统瘫痪甚至崩溃。

    3.节点功能异常

    这种情况是最常见的,由于代码是人写的,bug和漏洞都是难免的,所以在实际业务中大概率会出现功能节点异常的问题。同时系统引入的一些第三方库或者中间件当中也有可能包含一些问题,会导致节点功能异常。

    解决问题的思路和策略

    1.尽可能避免问题发生

    避免问题发生是最直接的解决思路,比如我们可以通过UPS(Uninterruptible Power System)来避免服务器断电。可以引入移动、电信两条网线,来避免由于运营商网络问题导致的服务器不可用。通过实现机房异地部署,防止由于地震等自然灾害导致的服务器不可用。增加冗余的机器,避免在特殊场景下资源不足的问题。

    2.发生问题之后能实现故障迁移

    通过实现服务和服务器的冗余部署,确保在某个节点出现问题之后,能够实现功能的平滑过渡,不会由于某个服务或者节点故障导致系统不可用。

    3.降低故障对业务的影响

    如果故障无法以正面的方式解决,我们就要努力降低故障带来的影响。流量太大的时候,我们可以通过限流,来保证部分用户可以正常使用,或者说通过对一些非核心业务进行降级处理,保证核心业务的可用性。

    4.发生故障之后能够实现快速恢复

    可以通过监控系统快速定位到故障节点,然后修复故障节点,使系统恢复到正常状态。

    高可用方案的架构原则和方案

    1.系统冗余无单点

    确保系统的各个服务节点都是有冗余的,当一个节点出现问题的时候能切换到备用节点,保障系统的可用性。保障网络的可用性,也可以引入多条线路(如接入移动和联通两条线路),一条线路出问题的时候切换到备用线路。很多直播软件为了保障运行,就会接入多条线路。数据库也可以通过主库和从库的设计,实现数据库的冗余,提升可靠性。对于一些对可用性要求高的软件,会实现机房的异地冗余部署,避免由于地震等自然灾害导致的服务不可用。

    2.支持水平扩展,可伸缩

    为了应对大流量和高并发的出现,系统的各个节点需要是可伸缩的,支持水平扩展。可以通过Ngnix,将请求和压力分流到多台机器上,实现硬件机器的扩展。同时可以在每台机器上运行更多的服务实例,应对海量请求。也可以引入CDN,将部分静态资源放到CDN上,降低服务端的带宽压力。

    3.系统可以进行降级操作

    在服务器资源不够用的时候,为了保障运行,通常采用的手段有降级、限流和熔断。

    降级: 比如双11的时候为了应对短时间内的高并发,淘宝就会暂时关闭部分非核心功能比如评论、返积分等来保障核心业务的正常运行。

    限流:我们也可以通过设置Ngnix的并发数,进行限流操作,保障部分用户的正常业务,拒绝其它的请求,防止由于短时间的高并发引起系统瘫痪。

    熔断: 当某个服务出现异常的时候,直接关闭该服务,在请求链路中绕过该服务,在后续服务正常之后再进行补偿操作。

    4.允许出现状态差异的中间态

    在高并发的场景下,很多时候为了提高系统可用性,会出现状态不一致的问题,比如修改状态保存到了缓存中而并没有落到数据库里,此时读取数据库的时候会出现状态不一致。系统应该允许出现暂时的状态不一致,只要能保证状态最终一致即可

    5.完善的系统监控体系

    完善的监控体系对于系统提前预警和问题排查定位以及修复问题之后的快速恢复都是很关键的。通过监控系统,我们可以实时诊断当前系统的运行状态怎么样。

    高可用架构的落地实践

    1.通过引入两条网络线路,一主一备保障网络的高可用

    2.负载均衡层进行双节点和Keepalived部署,当一个节点出问题的时候,切换到另一个节点上保障负载均衡的高可用。

    3.负载均衡层通过设置并发数进行限流设置。

    4.Web应用节点多节点部署,可根据需求进行伸缩扩展。同时负载均衡层通过路由切换对应的Web应用,当一个节点出问题的时候,快速切换到正常的节点上。

    5.后台业务服务是无状态的可以进行多节点部署,可以根据需要进行伸缩扩展。并且当某个节点出问题之后,可以进行熔断操作,在调用链路中绕过对应的节点。

    6.数据库通过读写分离分库分表,降低数据库的访问压力。

    7.通过对数据库进行主从配置,当主库出问题的时候,从库马上顶上,确保数据访问的高可用。

    展开全文
  • 几种常用的操作系统调度策略

    万次阅读 2017-08-16 17:23:04
    但如果是Pi>Pj,则立即停止Pj的执行,做进程切换,使i 进程投入执行。显然,这种抢占式的优先权调度算法能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中...

    一、先来先服务和短作业(进程)优先调度算法

    1.先来先服务调度算法

    先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。

    2.短作业(进程)优先调度算法

    短作业(进程)优先调度算法SJ(P)F,是指对短作业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而短进程优先(SPF)调度算法则是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。

    二、高优先权优先调度算法

    1.优先权调度算法的类型

    为了照顾紧迫型作业,使之在进入系统后便获得优先处理,引入了最高优先权优先(FPF)调度算法。此算法常被用于批处理系统中,作为作业调度算法,也作为多种操作系统中的进程调度算法,还可用于实时系统中。当把该算法用于作业调度时,系统将从后备队列中选择若干个优先权最高的作业装入内存。当用于进程调度时,该算法是把处理机分配给就绪队列中优先权最高的进程,这时,又可进一步把该算法分成如下两种。

    1) 非抢占式优先权算法

    在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。这种调度算法主要用于批处理系统中;也可用于某些对实时性要求不严的实时系统中。

    2) 抢占式优先权调度算法

    在这种方式下,系统同样是把处理机分配给优先权最高的进程,使之执行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程。因此,在采用这种调度算法时,是每当系统中出现一个新的就绪进程i 时,就将其优先权Pi与正在执行的进程j 的优先权Pj进行比较。如果Pi≤Pj,原进程Pj便继续执行;但如果是Pi>Pj,则立即停止Pj的执行,做进程切换,使i 进程投入执行。显然,这种抢占式的优先权调度算法能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中。

    2.高响应比优先调度算法

    在批处理系统中,短作业优先算法是一种比较好的算法,其主要的不足之处是长作业的运行得不到保证。如果我们能为每个作业引入前面所述的动态优先权,并使作业的优先级随着等待时间的增加而以速率a 提高,则长作业在等待一定的时间后,必然有机会分配到处理机。该优先权的变化规律可描述为:
    操作系统
    由于等待时间与服务时间之和就是系统对该作业的响应时间,故该优先权又相当于响应比RP。据此,又可表示为:
    操作系统
    由上式可以看出:

    (1) 如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而该算法有利于短作业。

    (2) 当要求服务的时间相同时,作业的优先权决定于其等待时间,等待时间愈长,其优先权愈高,因而它实现的是先来先服务。

    (3) 对于长作业,作业的优先级可以随等待时间的增加而提高,当其等待时间足够长时,其优先级便可升到很高,从而也可获得处理机。简言之,该算法既照顾了短作业,又考虑了作业到达的先后次序,不会使长作业长期得不到服务。因此,该算法实现了一种较好的折衷。当然,在利用该算法时,每要进行调度之前,都须先做响应比的计算,这会增加系统开销。

    三、基于时间片的轮转调度算法

    1.时间片轮转法

    1) 基本原理

    在早期的时间片轮转法中,系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU 分配给队首进程,并令其执行一个时间片。时间片的大小从几ms 到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程在一给定的时间内均能获得一时间片的处理机执行时间。换言之,系统能在给定的时间内响应所有用户的请求。

    2.多级反馈队列调度算法

    前面介绍的各种用作进程调度的算法都有一定的局限性。如短进程优先的调度算法,仅照顾了短进程而忽略了长进程,而且如果并未指明进程的长度,则短进程优先和基于进程长度的抢占式调度算法都将无法使用。而多级反馈队列调度算法则不必事先知道各种进程所需的执行时间,而且还可以满足各种类型进程的需要,因而它是目前被公认的一种较好的进程调度算法。在采用多级反馈队列调度算法的系统中,调度算法的实施过程如下所述。

    (1) 应设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。例如,第二个队列的时间片要比第一个队列的时间片长一倍,……,第i+1个队列的时间片要比第i个队列的时间片长一倍。

    (2) 当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,……,如此下去,当一个长作业(进程)从第一队列依次降到第n队列后,在第n 队列便采取按时间片轮转的方式运行。

    (3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1~(i-1)队列均空时,才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权进程。

     

    本文出自:http://www.wypblog.com/archives/251

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 227,952
精华内容 91,180
热门标签
关键字:

常用的系统切换策略