程序并发执行时的特征
间断性:因相互制约
失去封闭性:主要由共享资源引起
不可再现性:程序的执行结果与程序运行的速度有关.
并发性(concurrence)是指两个或两个以上的事件或活动在同一时间间隔内发生。
*** 作系统是一个并发系统,并发性是它的重要特征, *** 作系统的并发性指它应该具有处理和调度多个程序同时执行的能力。多个 I/O设备同时在输入输出;设备 I/O和CPU计算同时进行;内存中同时有多个系统和用户程序被启动交替、穿插地执行,这些都是并发性的例子。发挥并发性能够消除计算机系统中部件和部件之间的相互等待,有效地改善系统资源的利用率,改进系统的吞吐率,提高系统效率。例如,一个程序等待 I/O时,就出让 CPU,而调度另一个程序占有 CPU执行运行。这样,在程序等待 I/O时,CPU便不会空闲,这就是并发技术。
并发性虽然能有效改善系统资源的利用率,但却会引发一系列的问题,使 *** 作系统的设计和实现变得复杂化。如:怎样从一个运行程序切换到另一个运行程序?以什么样的策略来选择下一个运行的程序?怎样将各个运行程序隔离开来,使之互不干扰,免遭对方破坏?怎样让多个运行程序互通消息和协作完成任务?怎样协调多个运行程序对资源的竞争?多个运行程序共享文件数据时,如何保证数据的一致性? *** 作系统必须具有控制和管理程序并发执行的能力,为了更好的解决上述问题, *** 作系统必须提供机制和策略来进行协调,以使各个并发进程能顺利推进,并获得正确的运行结果。
另外, *** 作系统还要合理组织计算机工作流程,协调各类硬软件设施工作,充分提高资源的利用率,充分发挥系统的并行性,这些也都是在 *** 作系统的统一指挥和管理下进行的。采用了并发技术的系统又称为多任务系统( multitasking system),计算机系统中,并发实际上是一个物理 CPU在若干道程序之间多路复用,这样就可以实现运行程序之间的并发,以及CPU与 内存 I/O设备、I/O设备与 I/O设备之间的并行,并发性的实质是对有限物理资源强制行使多用户共享以提高效率。在多处理器系统中,程序的并发性不仅体现在宏观上,而且体现在微观上(即在多个CPU上)也是并发的,又称并行的。并行性( parallelism)是指两个或两个以上事件或活动在同一时刻发生。在多道程序环境下,并行性使多个程序同一时刻可在不同CPU上同时执行。而在分布式系统中,多台计算机的并存使程序的并发性得到了更充分的发挥。可见并行性是并发性的特例,而并发性是并行性的扩展。由于并发技术的本质思想是:当一个程序发生事件(如等待 I/O)时出让其占用的CPU而由另一个程序运行,据此不难看出,实现并发技术的关键之一是如何对系统内的多个运行程序(进程)进行切换的技术。
如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的。一、数据库结构的设计
在一个系统分析、设计阶段,因为数据量较小,负荷较低。我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力物力,而整个系统也不可避免的形成了一个打补丁工程。
所以在考虑整个系统的流程的时候,我们必须要考虑,在高并发大数据量的访问情况下,我们的系统会不会出现极端的情况。(例如:对外统计系统在7月16日出现的数据异常的情况,并发大数据量的的访问造成,数据库的响应时间不能跟上数据刷新的速度造成。具体情况是:在日期临界时(00:00:00),判断数据库中是否有当前日期的记录,没有则插入一条当前日期的记录。在低并发访问的情况下,不会发生问题,但是当日期临界时的访问量相当大的时候,在做这一判断的时候,会出现多次条件成立,则数据库里会被插入多条当前日期的记录,从而造成数据错误。),数据库的模型确定下来之后,我们有必要做一个系统内数据流向图,分析可能出现的瓶颈。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)