对称多处理(Symmetrical Multi-Processing)简称SMP,是指在一个计算机液源上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。它是相对非对称多处理技术而言的、应用十分广泛的并行技术。
在这种架构中,一台电脑不再由单个CPU组成,而同时由多个处理器运行 *** 作系统的单一复本,并共享内存和一台计算机的其他资源。虽然同时使用多个CPU,但是从管理的角度来看,它们的表现就像一台单机一样。
系统将任务队列对称地分布于多个CPU之上,从而极大地提高了整个闹陵态系统的数据处理能力。所有的处理器都可以平等地访问内存、I/O和外部中断。在对称多处理系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上。
扩展资料
有两种方法可以在一个SMP中使应用程序并行化,如下所述:
(1)传统方法是把应用程序分解为多个进程。这些进程使用进程间通信(IPC)方法进行通信,例如管道、信号量或者共享内存。必须能够阻塞进程使其等待事件的发生(例如来自其它进程的消息),并且进程必须用类似锁的东西协调对汪枯共享对象的访问。
(2)另一种方法是使用面向 UNIX(POSIX)线程的可移植 *** 作系统接口。线程和进程一样存在协调的问题,并有类似的处理机制。因此一个单独的进程可以同时有很多线程运行在不同的处理器上。协调这些线程并且使得对共享数据的访问序列化是开发者的责任。
在并行化一个应用程序的时候,考虑线程和进程两者各自的优势并且决定使用哪种方法。线程可能比进程快,并且它对内存的共享也比较容易。另一方面,进程的实现更容易分布到多个机器或者群集中。如果一个应用程序需要创建或者删除新实例,则线程会更快(在派生进程中开销更大)。就其它功能而言,线程的开销和进程差不多。
参考资料来源:百度百科-对称多处理器
参考资料来源:百度百科-对称多处理
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)