热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

对称多处理(SMP)

操作系统学习笔记对称多处理(SMP)SMP:一种通过复用处理器提高程序执行并行性的方式。根据SMP,计算机系统可以分为以下四
操作系统学习笔记 对称多处理(SMP)

  SMP:一种通过复用处理器提高程序执行并行性的方式。

  根据SMP,计算机系统可以分为以下四类:

    单指令单数据流(SISD):一个单处理器执行一个单指令流,对保存在一个存储器中的数据进程进行操作。

    单指令多数据流(SIMD):一个机器指令控制多个处理部件步伐一致的同时执行。每个处理部件都有一个相关的数据处理空间,因此,每条指令由不同的处理器在不同   的数据集合上执行。

    多指令单数据流(MISD):一系列数据被传送到一组处理器上,每个处理器执行不同的指令序列。

    多指令多数据流(MIMD):一组处理器同时在不同的数据集上执行不同的指令序列。

  在MIMD结构中,处理器是通用的,它们必须能够处理执行相应的数据转换所需的所有指令。

  MIMD可以根据处理器的通信进一步细化。如果每个处理器都有一个专用的存储器,则每个处理部件都是一个独立的计算机。计算机间的通信或者借助于固定的路径,或者借助于某些网络设施,这类系统称为集群系统。如果处理器共享一个公用的存储器,每个处理器都访问保存在共享存储器中的程序和数据,处理器之间通过这个存储器相互通信,则这类系统称为共享存储器多处理机系统。

  共享存储器多处理机系统的一个常用分类标准是基于"如何把进程分配给处理器"。最基本的两种手段是主/从结构对称结构

  在主/从结构中,操作系统的内核总是运行在某个特定的处理器上,其他处理器用于执行用户程序和操作系统的使用程序。主处理器负责调度进程或线程,如果一个处于运行的进程或线程需要使用系统的服务(如一次I/O调用),则它必须给主处理器发送请求,并等待服务的处理。这种方式非常简单,一个处理器控制了所有存储器和I/O资源,因此可以简化冲突的解决方案。但是这种方式也有明显的缺点:

  1. 主处理器的失败将导致整个系统的失败;

  2. 由于主处理器必须负责所有的进程调度和管理,因此可能成为性能瓶颈;

  在对称多处理系统中,内核可以在任何处理器上执行,并且每个处理器可以从可用的进程或线程池中进行各自的调度工作。内核也可以由多进程或多线程构成,允许部分内核并行执行。SMP方法增加了操作系统的复杂性,它必须确保两个处理器不会选择同一个进程,并且要确保队列不会丢失,因此需要解决同步的问题。

  

 

SMP系统的组织结构

  SMP系统中有多个处理器,每一个都含有它自己的控制单元,算术逻辑单元和寄存器;每个处理器都可以通过某种互联机制访问一个共享的主存和I/O设备,通常是系统总线。处理器之间还可以通过存储器中的共享地址空间中的消息和状态信息相互通信。存储器通常被组织为可以允许同时有多个对存储器不同独立部分的访问。现代计算机中,处理器通常有一级专用的高速缓存,由于每个高速缓存含有主存中的一部分映像,如果某个处理器修改了其中的一个字,那么其他高速缓存中的这个字将变得无效,这就带来了高速缓存的一致性问题,这个问题的解决通常是通过硬件的方式。

  

 

多处理器操作系统的设计

  并发进程或线程:为了允许多个处理器同时执行相同的内核代码,内核例程必须是可重入的。多处理器执行内核的相同部分和不同部分时,必须正确的管理内核表和管理结构,以避免死锁或非法操作;

  调度:调度可以由任何处理器执行,因此必须避免冲突。如果使用内核级多线程,则可能出现同一时刻,多个处理器同时从同一个进程中调度多个线程的情况;

  同步:因此存在多个进程都可能访问共享地址空间和共享I/O资源的情况,因此需要提供同步机制。同步是指实施互斥和事件排序的机制。锁是一个通用的同步机制;

  存储器管理:多处理器系统为了提高性能,尽可能利用硬件的并行性,如多端口存储器,还必须协调不同处理器上的分页机制,以确保多个处理器共享页或段时页面的一致性问题,以及页替换策略;

  可靠性和容错:当一个处理器处理失败时,操作系统应该提供功能衰减能力,重新组织管理表;

 


推荐阅读
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • 本文详细介绍了Grand Central Dispatch (GCD) 的核心概念和使用方法,探讨了任务队列、同步与异步执行以及常见的死锁问题。通过具体示例和代码片段,帮助开发者更好地理解和应用GCD进行多线程开发。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文详细介绍了 MySQL 的查询处理流程,包括从客户端连接到服务器、查询缓存检查、语句解析、查询优化及执行等步骤。同时,深入探讨了 MySQL 中的乐观锁机制及其在并发控制中的应用。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
author-avatar
指尖青春_388
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有