平行而且分布式计算

同时大数据的可用性和同时用户数量的增长互联网对“并行”或同时执行计算任务的需求施加特别的压力。并行计算和分布式计算在计算机中出现在许多不同的主题领域科学,包括算法计算机体系结构网络操作系统,软件工程.在21世纪早期,多处理器设计和其他复杂应用程序运行速度更快的策略出现了爆炸性增长。并行和分布式计算建立在基本的系统概念之上,例如并发性、互斥性、状态/内存操作的一致性、消息传递和共享内存模型。

从多个单处理器创建一个多处理器cpu处理器之间需要物理链接和通信机制,以便它们可以并行操作。紧密耦合的多处理器共享内存因此,可以通过将信息存储在所有处理器都可以访问的内存中进行通信。松耦合的多处理器(包括计算机网络)通过物理链路相互发送消息进行通信。计算机科学家研究了各种多处理器架构。例如,检查可能的配置,其中数百甚至数千个处理器可能链接在一起,以找到几何这支持最有效的系统吞吐量。显示出其一拓扑结构超立方体,其中每个处理器直接连接到固定数量的邻居:两个用于二维正方形,三个用于三维立方体,类似地,用于高维超立方体。计算机科学家还研究在这种多处理器机器上进行计算的方法(例如,算法来充分利用体系结构以及避免数据传输中冲突的技术)。一种驻留在机器上的软件,它使使用某一特定功能成为可能,特别是其操作系统,是一个积分这是调查的一部分。

并发性是指同时执行多个过程(可能访问共享数据),可以是真正同时执行(如在多处理器上),也可以是以不可预测的交错顺序执行。现代编程语言,如Java包括封装和称为“线程”,允许程序员定义线程之间发生的同步并发过程或任务。

并发控制中有两个重要的问题死锁和竞争条件。当一个进程无限期持有的资源被两个或多个其他进程同时请求时,就会发生死锁。因此,调用该资源的进程都不能继续;它们处于僵持状态,等待资源被释放。操作系统可以使用各种预防或检测和恢复技术来处理这种情况。另一方面,当两个或多个并发进程为一个变量赋值不同时,就会出现竞态条件,结果取决于哪个进程先赋值(或最后赋值)。

防止死锁和竞争条件是非常重要的,因为它可以确保完整性底层应用程序的。一般的预防策略被称为进程同步。同步要求一个进程在继续之前等待另一个进程完成某些操作。例如,一个进程(写入器)可能正在向某个主存区域写入数据,而另一个进程(读取器)可能想要从该区域读取数据。的读取器和写入器必须同步,以便写入器在读取器处理数据之前不会覆盖现有数据。类似地,在该区域写入数据之前,读取器不应该开始读取。

随着网络的出现,分布式计算变得可行的.分布式计算是一种由计算机执行的计算集团连接在一起的计算机协同工作。这种计算通常需要分布式操作系统来管理分布式资源。重要的问题是工作负载共享,它试图利用多台计算机的访问来更快地完成工作;任务迁移,通过在机器之间有效地分配作业来支持工作负载共享;以及自动任务复制,它发生在不同的站点,以提高可靠性。

基于平台的发展

基于平台的开发是针对特定类型的计算机和应用程序的设计和开发操作系统(“平台”)。基于平台的开发考虑到系统特定的特征,例如在网络编程,多媒体开发,移动应用程序开发,以及机器人.平台,例如互联网或者一个安卓平板电脑让学生在内部和周围学习环境受特定的约束硬件、应用程式设计接口(api),以及特别服务。这些环境与“通用”编程完全不同,因此需要分开研发的努力。

例如,考虑一个应用程序的开发安卓平板电脑.Android编程平台被称为Dalvic虚拟机(DVM),该语言是其变体Java.然而,Android应用程序不仅被定义为对象和方法的集合,而且还被定义为“意图”和“活动”的集合,它们大致对应于GUI用户在操作应用程序时看到的屏幕。XML编程也是需要的,因为它是定义应用程序的布局的语言用户界面.最后,Android应用程序开发中的I/O同步比传统平台上的要求更高,尽管保留了Java文件管理的一些原则。

实时系统为基于平台的开发提供了更广泛的环境。这个词实时系统指的是嵌入到汽车、飞机、制造装配线和其他设备中的计算机,用于实时控制过程。实时任务通常以固定的时间间隔重复。例如,每秒钟收集一次传感器数据,并生成一个控制信号。在这种情况下,调度理论用于确定如何在给定的处理器上调度任务。需要实时操作的系统的一个很好的例子是防抱死制动系统(ABS)在汽车上;因为这是至关重要的,ABS立即反应刹车踏板的压力,并开始一个程序泵刹车,这样的应用程序被称为有一个硬的最后期限.其他实时系统据说有软期限,即如果系统的响应稍微延迟,就不会发生灾难;订单运输和跟踪系统就是一个例子。“尽最大努力”的概念出现在实时系统设计中,因为软截止日期有时会溜走,而硬截止日期有时会通过计算不是最优的结果来满足。例如,空中交通管制员屏幕上的大多数细节都是近似值(例如,高度),不需要更精确地计算(例如,到最近的英寸)才能有效。