精华内容
下载资源
问答
  • 计算机系统结构:第6章+多处理机系统.pdf
  • 本ppt讲述:多处理机的概念、问题硬件结构;紧耦合多处理机多cache的一致性问题;多处理机的并行性;多处理机的性能 多处理机的操作系统
  • 计算机系统结构—第七章多处理机.ppt
  • 处理机调度 操作系统 计算机
  • 多处理机系统模型主要有三类:分别是共享存储器处理机、消息传递多计算机、广域分布式系统 共享存储器处理机:获得高速的一种处理方式就是使用并行处理机。这些机器使用许多CPU, 每一个都以“通常”的速度运行...

    多处理机系统模型主要有三类:分别是共享存储器多处理机、消息传递多计算机、广域分布式系统

    • 共享存储器多处理机:获得高速的一种处理方式就是使用并行处理机。这些机器使用许多CPU, 每一个都以“通常”的速度运行,但是总体上会比单个CPU强大得多的计算能力。
    • 消息传递多处理机系统:许多CPU-存储器通过某种高速互联网络连接在一起。这种系统称为消息传递型多计算机。
    • 广域分布式系统:所有计算机通过一个广域网连接起来,如因特网构成了一个分布式系统。

    在这里插入图片描述

    8.1 多处理机

    共享存储器多处理机是有两个或更多的CPU全部共享访问的一个公用的RAM,运行在任何一个CPU上的程序都看到一个普通的(通常是分页)的虚拟地址空间。这个系统唯一特别的性质是,CPU可对存储器字写入某个值,然后读会这个字,得到一个不同的值(因为另一个CPU改写了它)。

    8.1.1 多处理机硬件

    所有多处理机都具有每个CPU可访问全部存储器的性质,而有些多处理机仍有一些其它的性质,即读出每个存储器字的速度是一样快的。这种及其称为UMA(统一存储器访问)多处理机,而另一种则称为NUMA(非一致存储器访问)多处理机。

    1. 基于总线的UMA多处理机体系结构

    通过给每个CPU添加一个高速缓存(cache),这个高速缓存可以位于CPU芯片内部,CPU附近,处理器板上或所有三种方式的组合。因为许多读操作可以在高速缓存中得到满足,总线流量被大大减少了,这样系统就能支持更多的CPU。

    在这里插入图片描述

    高速缓存一致性协议:每一个高速缓存块或者被标记为只读(此时可以存在与多个告诉缓存中),或者被标记为读写(不能出现在多个高速缓存)。如果CPU试图在一个或多个远程高速缓存中写入一个字,总线硬件检测到写,并把一个信号放到总线上通知所有其它的高速缓存。如果其他高速缓存有个"干净"的副本,也就是同存储器内容完全一样的副本,那么它们就可以丢弃该副本并让写在修改之前从存储器中取出高速缓存块。如果某些其它高速缓存中有“脏”副本(被修改的副本),它必须在处理写之前把数据写回存储器或者它通过总线直接传送到写者上。高速缓存这一套规则被称为高速缓存一致性协议。

    2.使用交叉开关的UMA处理机

    连接n个CPU到k个存储器的最简单的电路就是交叉开关。

    在这里插入图片描述

    交叉开关最好的一个特性是它是一个非阻塞网络,即不会因有些交叉点或连线已经被占据而拒绝连接。

    3.使用多级交换网络的UMA多处理机

    在这里插入图片描述

    有一种完全不同的、基于简单2X2开关的多处理机的设计。这个开关有两个输入和两个输出。到达任意一个输入线的消息可以被交换至另一个输出线上去。就我们的目标而言,消息可用由四个部分组成。Module(模块)域指明使用哪个存储器。Address(地址)域指定在模块中的地址。Opcode(操作码)给定了操作,如READ或者WRITE。最后一个可选的Value(值)域中可包含一个操作数。

    这个2X2开关有多种使用方式,用于构建大型的多级交换网络。

    在这里插入图片描述

    4. NUMA多处理机

    这种机器为所有CPu提供一个统一的地址空间,但是访问本地存储器模块快于访问远程存储器模块。因此,在NUMA机器运行的所有NUMA程序无须做任何改变,但是相同的时钟速率下其性能不如UMA机器的性能。

    所有NUMA机器都具有以下三种关键特性:

    1. 就有对所有CPU都可见的的单个地址空间。
    2. 通过LOAD和STORE指令访问远程存储器。
    3. 访问远程存储器慢于访问本地存储器。

    5.多核芯片

    将两个或者多个完整的CPU。通常称为核(Core),放到同一个芯片上(技术上来说是同一个小硅片)。双核、四核和八核的芯片已经很普及了。

    6.众核芯片

    众核芯片是指包括几十、几百甚至成千上万个核心的多核处理器。

    7.异构多核

    一些芯片会把异构GPU和一些通用的处理器核心放在一起。在一块芯片上封装了不同的处理器的系统被统称为异构多核处理器。

    8.在多核心上编程

    8.1.2 多处理机操作系统类型

    1.每个CPU都有自己的操作系统

    静态地把存储器划分成和CPU一样多的各个部分,为每个CPU提供其素有存储器以及操作系统的各自私有副本。这样的明显优点是,允许所有CPu共享操作系统的代码,而且只需要提供数据的私有副本。

    在这里插入图片描述

    2.主从多处理机

    在这种模型下,操作系统的一个副本机器数据表都在一个CPU上,所有的系统调用都重定向到CPU1上。如果有剩余的CPu时间,还可以在CPU1上运行用户进程。这种模型称为主从模型。

    当某个CPU空闲下来时,它向CPU1上的操作系统请求一个进程运行,并被分配一个进程。这个模型的问题是,如果有很多CPU,那么出CPU会称为瓶颈。

    在这里插入图片描述

    3.对称多处理机

    在存储器中有操作系统的一个副本,但任何CPU都可以运行它。在有系统调用时,进行系统调用但CPU陷入内核并处理系统调用。

    在这里插入图片描述

    当一个CPU要运行操作系统时,它必须首先获得互斥信号量。如果互斥信号量被锁住。就得等待。按照这种方式,任何CPu都可以运行操作系统,但任意时刻只有一个CPU可运行操作系统。这样就需要把操作系统分割成互不影响但临界区。每个临界区由其互斥信号量保护,所以一次只能有一个CPU运行它。

    由于这一事实,可以将操作系统分割成不同的互不影响的临界区。每个临界区由其互斥信号量保护,所以一次只有一个CPU可以执行它。采用这种方式,可以实现更多的并行操作。而某些表格,如进程表,可能恰巧被多个临界区使用。

    大多数但现代多处理机都采用这种安排。更进一步,要尽量避免死锁。

    8.1.3 多处理机同步

    我们仔细讨论一下指令TSL(Test and Set Lock)是如果实现临界区的。这条指令的做法:读出一个存储器字并把它存储到一个寄存器中。同时,它对该寄存器字写入一个1.当然这需要两个总线周期来完成存储器的读写。在单处理机中,只要该指令不被中途中断,TSL指令就如实正常运行。

    在这里插入图片描述

    TSL指令必须首先锁住总线,阻止其它CPU访问他,然后进行存储器的读写访问,再解锁总线。对总线枷锁的典型做法是,先使用通风的总线协议请求总线,然后申明已拥有某些特定的总线线路,直到两个周期全部完成。只要始终保持拥有这一特性的总线线路,那么其他CPU就不会得到总线的访问权。这个指令只有在拥有必要的线路和使用它们的协议上才能实现。

    如果正确的实现和使用TSL,就能保证互斥机制正常工作。但是这种互斥方法使用了自旋锁。因为请求的CPU只是在原地尽可能快得对锁进行循环测试

    高速缓存的实现也许能够消除总线竞争的问题,但事实并非如此。理论上,只要提出CPU已经读取了锁字(Lock word),它就可以在其高速缓存中得到一个副本。只要没有其他CPU试图使用该锁,提出请求的CPU就能够用完其高速缓存,当拥有锁的CPU写入一个0高速缓存并释放它时,搞缓存会自动将它在远程高速缓存中的所有副本失效,要求再次读取正确的值。

    问题:通常,拥有锁的CPU也需要这个锁周围的字。由于TSL指令是一个写指令(因为它修改了锁),所以它需要互斥地访问含有锁的高速缓存块。这样每一个TSL指令都使锁持有者的高速缓存中的块失效,并且为请求的CPU取一个私有的、唯一的副本。只要锁拥有者访问到该锁的邻接字,该高速缓存块就被送到其机器。这样一来,整个包含锁的高速缓冲块就会不断地在锁的拥有者和锁的请求者之间来回穿梭,导致了比单个读取一个锁字更大的总线流量。

    解决方案:

    • CPU首先进行一个存读操作来观察锁是否是空闲的,就可以实现这个目标。只有在锁是空闲的,TSL指令才去真正获取它。这种小小的变化,导致的是大多的行为变成读而不是写。
    • 减少总线流量的方式是泗洪柱面的以太网二进制指数补偿算法。不采用轮询,而将一个延迟插入轮询之间,每次延迟时间加倍。
    • 一个更好的思想是,让每个打算获得互斥信号量的CPU都拥有歌词用于测试的私有锁变量。

    在这里插入图片描述

    自旋与切换

    需要加锁的互斥信号量的CPU只是保持等待。有时对于提出请求的CPU而言,只有等待,不存在其他等待的办法。

    自旋直接浪费了CPU周期,重复地测试锁并不是搞笑的工作。不过,切换也浪费了CPU周期,因为必须保存当前线程的状态,必须获得保护就绪链表的锁,还必须选择一个线程,必须装入其状态,并且使其开始运行。

    多数研究工作是用来一种新的模型:一个未能获得互斥信号量的线程先自旋一段时间,若时间超过某个阙值,则切换。

    8.1.4 多处理机调度

    对于多线程的调度,可以分为两类:分别是用户线程的调度和内核线程的调度。

    • 用户线程的调度:,如果线程是由用户空间库维护,而对内核不可见。那么调度一如既往的基于单个进程。如果内核并不知道线程的存在,它就不能调度线程。
    • 内核线程的调度:而对内核线程,是内核选择线程作为调度单位,内核可以选择任意一个进程的任一线程。

    1.分时

    处理独立线程的最简单的算法是,为就绪线程维护一个系统级的数据结构,它可能只是一个链表,但更多但情况下可能是对应不同优先级但一个链表集合。

    在这里插入图片描述

    使用单一数据结构调度一个多处理机,存在的缺点:

    • 随着CPU数量增加引起但对调度数据结构对潜在竞争
    • 线程由于IO阻塞而因为对上下文切换对开销。

    当线程时间片用完时,也可能会发生上下文切换。

    为了避免这种情况,一些系统采用智能调度算法。获得自旋锁的进程设置一个进程范围的标志表示它目前拥有自旋锁,当释放时,就清除该标志。这样调度程序就不会停止拥有自旋锁的线程,相反,还会给更多的时间。

    为了预装缓冲块将提高高速缓存的命中率,从而提高线程的速度。有些多处理机使用了亲和调度。其基本思想是,尽量使一个线程在前一次运行过的同一个CPU上运行。创建这种请合理的一个途径是采用一种两级调度算法。

    两级调度算法:在一个线程创建的时候,他被分给了一个CPU,列如,可以基于哪个CPU在此刻有最小的负载。这种把线程分给CPU的工作在算法的顶层进行,其结果是每个CPU获得了自己的线程集。

    两级调度算法有三个优点:

    • 将负载大致平均的分配在可用的CPU上。
    • 尽可能发挥了高速缓存亲和力的优势
    • 每个CPU提供一个私有的就绪线程链表,使得对就绪线程链表的竞争见到最小,因为试图使用另一个CPU就绪线程链表的机会相对较小。

    2.空间共享

    当线程之间以某种方式彼此相关联的时候,可以使用多处理机调度方法。在多个CPU同时调度多个线程称为空间共享

    最简单的空间共享算法的基本思想:

    假设一组相关的线程时一次性创建的。在其创建的时刻,调度程序检查是否有同线程数量一样多的空闲CPU存在。如果有,每个线程获得各自的CPU并且都开始运行。如果没有足够的CPU,就没有现车开始运行,直到有足够的CPU开运行。

    8.2 多计算机

    多计算机是紧耦合CPU,不共享存储器。每台计算机中有自己的存储器。

    在这里插入图片描述

    8.2.1 多计算机硬件

    一个多计算机系统的基本节点包括一个CPU、存储器、一个网络接口、有时候还有一个硬盘。

    1. 互联技术

    在每个节点上有一个网卡,带有一根或两根网卡上接出的电缆。这些电缆或者连接到其他节点上去,或者链接到交换机上。

    在多计算机中可采用两种交换机制:

    • 存储转发包交换:每个消息首先被分解(由用户软件或网络接口进行)称为有最大长度限制的快,称为报。该交换机制称为存储转换包交换,由源节点的网络接口卡注入到第一个交换机的报组成。
    • 电路交换:它包括由第一个交换机建立的,通过所有交换机而到达目标交换机的一条路径。一旦电路建立,比特流就从源到目的地通过整个线路不停的传输。在所设计的交换机汇总,没有中间缓存,电路交换需要有一个建立阶段,它需要一点时间。但是一旦建立完成,速度就很快。在包发送结束后,该路径必须被删除。

    在这里插入图片描述

    2. 网络接口

    在多计算机中,所有节点里都有一块插卡板,它包含节点与互连网络的连接,这使得多计算机连城一体。

    很多接口板上有一个完整的CPU,可能另外还有一个或多个DMA通道。它们被称为网络处理器,并且其功能日趋强大。这种设计一位这主CPU将一些工作分给网卡。

    8.2.2 底层通信软件

    问题:如果说进出RAM的复制是性能瓶颈,那么进出内核的额外复制会将端到端的延迟加倍 ,并把吞吐量降低一半。为了避免进出RAM的复制称为系统性能瓶颈。我们有以下三种解决方案:

    1. 将接口板映射到所有需要它的进程中去,但是这样做就需要有一个机制来避免竞争。
    2. 需要某种同步机制,如注入一些同步互斥信号量。

    1. 节点至网络接口通信

    最快的方法是使用板上的DMA芯片直接将他们从RMA复制到板上,这种方法的问题上,DMA使用物理地址。而用户进程通常不知道有关的物理地址,并且独立于CPU运行,除非存大I/O MMU。

    2. 远程直接内存访问

    在上述情况下,降低数据的复制量都需要很大的代价。为了应对这个问题,一些网络接口支持远程直接内存访问技术,允许一台机器直接访问另一台机器的内存。RDMA不需要操作系统地参与,直接从应用的内存空间中读取或者写入数据。

    8.2.3 用户层通信软件

    1.发送和接受

    发送一条消息的系统调用:

    send(dest,&mptr); 
    

    接受消息的调用:

    receive(addr,&mptr)
    

    2.阻塞调用和非阻塞调用

    阻塞调用:当一个进程调用send时,它指定一个目标以及发送消息到该目标的缓冲区。当消息发送时,发送进程被阻塞(挂起)。在消息已经完成发送出去之前,不会执行跟随在调用send后面的指令。

    非阻塞调用:如果send是非阻塞的,在消息发出之前,它立即将控制返回给调用者。这种机制的

    在这里插入图片描述

    通常是由系统设计者作出在阻塞原语和非阻塞原语之间的选择。当然少数系统两种都可以使用。

    问题:非阻塞原语的性能优点被其缺点抵消了——直到消息被送出发送者才能修改消息缓冲区。进程在传输过程中重写消息的后果十分严重,更糟的是,发送进程不知道传输何时结束,所以根本不知道什么时候重用缓冲区是安全的。

    解决方案:

    1. 让内核复制消息到内核缓冲区,然后让进程继续。
    2. 当消息发送之后中断发送,告知缓冲区又可以使用了(用户级中断引发编程问题,而且可能引发竞争条件)
    3. 让缓冲区写时复制。在消息发送出去之前,若有修改,则进行复制(会引发不必要的复制)

    这样在发送端的选择是:

    1. 阻塞发送(CPU在消息传输期间空闲)
    2. 待有复制操作的非阻塞发送(CPU时间浪费在额外的复制上)。
    3. 带有中断操作的非阻塞发送(造成编程困难)。
    4. 写时复制(最终可能造成额外的复制)

    8.2.4 远程过程调用

    尽管消息传递模型提供了一种构造多计算机操作系统的便利,但是它也有不可救药的缺陷:构造所有相同通信的泛型都是输入/输出。

    远程过程调用:运行程序调用其他CPU的过程。当机器1的进程调用机器2的过程时,在机器1中的调用进程被挂起,在机器2中被调用的过程被执行。可以在参数中传递从调用者到调用者的信息,并且可以在过程的处理结果中返回消息。根本不存在对程序可见的消息传递或者I/O。这种技术成为远程过程调用(RPC)。

    在这里插入图片描述

    8.2.6 多计算机调度

    将进程分配到工作节点的工作十分重要。

    因为每个节点都拥有自己的进程,因此可以应用任何本地调度算法,但是仍有可能使用多处理机调度。

    8.2.7 负载均衡

    1.图论确定算法

    将节点分为子网,寻找子网之间流量最小的组合

    在这里插入图片描述

    2.发送者发起的分布式启发算法

    在这里插入图片描述

    当进程创建时,他就运行在创建它的节点上,除非该节点过载了。如果该节点过载了,该节点则随机选择一个节点并询问其负载情况。探查工作不会永远进行,在N次探查之后,如果没有合适的主机,算法就终止。且进程继续在原有机器上运行。

    在负载重的情况下,所有机器都会持续得对其他机器进行探查,徒劳地试图找到一台愿意接收工作的机器,这样的尝试会导致巨大的开销。

    3.接受者发起的分布式启发算法

    由接受者要求更多的工作

    8.3 分布式系统

    分布式系统的每一个节点都是一台完整的计算机,带有全部的外部设备。其次一台多计算机的所有节点一般分布在一个房间内,这样他们就可以通过专门的网络进行高速网络通信。而分布式系统中的节点则可能分散在全世界范文内。

    8.3.1 网络硬件

    网络主要有两种——覆盖一栋建筑物的LAN(局域网)和更大范围的WAN(广域网)

    LAN最重要的类型是以太网

    在这里插入图片描述

    1.以太网

    以太网有其最大电缆长度限制,以及可连接的最多的计算机台数限制。要想超过其中一个限制,就要在一座大建筑物或校园中连接多个以太网,然后用一种成为桥接器的设备把这些意外网连接起来。

    为了避免碰撞问题,现代以太网使用交换机。如果能人后较大的交换机成本,可以使每台机器都拥有自己的端口,从而消除所有的碰撞。作为一种妥协方案,每个端口上连接少量计算机还是可能的。

    2.因特网

    Internet包括了两类计算机,主机和路由器。主机有PC机,路由器是专用的交换计算机,它在许多进线中的一条线上接收进来的包,并在许多个出口线中的一条线傻姑娘按照其路径发送包。

    当一个包到达某个路由器使,该路由器抽取目的地地址并在一个表格进行查询,以找出用哪根出口线发送该包以及传送哪个路由器。路由表是高度动态的,并且随着路由器和链路维护,恢复以及通信条件的变坏在连续不断的更新。

    8.3.2 网络服务和协议

    1.网络服务

    计算机网络为使用网络的主机和进程提供服务。面向连接的服务是对电话系统的一种模仿,而无连接服务则是对邮政系统的一种模仿。

    可靠的,面向连接的服务有两种变种——消息序列和字节流

    不可靠的(意味着没有确认)无连接服务,常常称作是数据报服务。

    2. 网络协议

    用于特定计算机通信的这些规则的集合称为协议。

    所有的现代网络都使用所谓的协议栈把不同的协议一层层叠加起来。每一层解决不同的问题。

    大多数分布式系统都使用Internet 作为基础,因为这些系统使用的关键协议是IP和TCP协议。IP协议是数据报协议,发送者可以向网络上发出长达64kb的数据报并且网它们到达。TCP使用IO来提供面向连接的数据流。为了使用TCP,进程需要首先与一个远程进程建立连接。被请求的进程需要通过机器的IP地址和机器的端口号确定,而对进入的连接感兴趣的进程监听端口。这些工作完成之后,只需要把字节流放入连接。

    DNS作为一个数据库把主机的ASCII名称名称映射为对应的IP地址。

    8.3.4 基于文件系统的中间件

    分布式系统采用一个文件系统模型意味着只存在一个全局文件系统,全世界的用户都能够读写他们各自具有授权的文件。通过一个进程将数据写入文件而另一个进程把数据读出的办法可以实现通信。

    8.3.5 基于对象的中间件

    8.3.6 基于协作的中间件

    展开全文
  • 处理机是处理计算机系统中存储程序数据,并按照程序规定的步骤执行指令的部件。程序是描述处理机完成某项任务的指令序列。指令则是处理机能直接解释、执行的信息单位。 2.中央处理器(CPU,Central Processing ...

    概念:
    1.处理机包括

    中央处理器,主存储器,输入-输出接口,加接外围设备就构成完整的计算机系统。

    1. 处理机是处理计算机系统中存储程序和数据,并按照程序规定的步骤执行指令的部件
    2. 程序是描述处理机完成某项任务的指令序列
    3. 指令则是处理机能直接解释、执行的信息单位

    2.中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,

    是一台计算机的运算核心(Core)和控制核心( Control Unit)

    它的功能主要是解释计算机指令及处理计算机软件中的数据

    CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。

    CPU从逻辑上可以划分成3个模块,分别是控制单元、运算单元和存储单元,这三部分由CPU内部总线连接起来


    3.内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

    展开全文
  • 多处理机系统:主要是为了提高计算能力,满足对一些工业问题的计算,比如天气预测,围绕机翼的气流建模,世界经济模拟等。主要有三种模型:分别是1.共享存储器处理机2.消息传递多计算机3.广域分布式系统对于第一种...

    多处理机系统:主要是为了提高计算能力,满足对一些工业问题的计算,比如天气预测,围绕机翼的气流建模,世界经济模拟等。主要有三种模型:

    分别是

    1.共享存储器多处理机

    2.消息传递多计算机

    3.广域分布式系统


    对于第一种,所有cpu通过一个共享存储器通信。

    第二种是许多cpu-存储器通过某种高速互联网网络连接在一起,每个存储器局部对应一个CPU,且只能被该CPU访问。这些CPU通过互联网发送消息通信。这种模型更容易构建,但是编程比较困难。

    第三种所有计算机系统通过一个广域网连接起来,构造一个分布式系统。


    下表是三种多处理机系统的比较

    项目多处理机多计算机分布式系统
    节点配置CPUCPU, RAM, 网络接口完整的计算机
    节点外设全部共享共享exc每个节点全套外设
    位置同一机箱同一房间全球
    节点间通信共享RAM专用互联传统网络
    操作系统一个,共享多个,相同的可能都不同
    文件系统一个,相同    一个,相同每个节点都有
    管理一个机构一个机构多个机构

    接下来详细描述这三种模型。



    一.多处理机

    1.1 多处理机硬件

    有些多处理机的每个存储器的速度是一样快的,这些机器称为UMA(统一存储器访问),相反,NUMA(非一致存储器访问)多处理机就没有这种特性。

    a.基于总线的UMA多处理机体系结构

    b.使用交叉开关的UMA多处理机

    c.使用多级交换网络的UMA多处理机

    d.NUMA处理机

    e.多核芯片:将多个cpu放在同一芯片上(同一小硅片)。


    二.多计算机

    多处理机的缺点,构造困难,造价高昂。而多计算机容易构造,因为核心部件就是一台配有高性能网络接口卡的pc,用来连接多个计算机。

    多计算机调度

    每个节点都有自己的存储器和进程,因此可以应用任何本地调度算法。

    负载平衡

    一旦一个进程被指定给了某个计算节点,就不再有什么可控制的,因此哪个进程被指定给哪个节点的决策是很重要的。这与多处理机系统相反,在多处理机系统中所有进程都在同一个存储器上,可以随意调度到任何CPU上运行,因此值得考察怎样以有效的方式把进程分配到各个节点上。这种算法就是负载均衡

    1.图论确定算法

    进程对于CPU和存储器的需求是已知的,然后以最小的网络流量完成进程的分配工作。

    2.发送者发起的分布式启发算法

    当进程创建时,就运行在创建它的节点上,除非节点过载,然后会随机选择另一个节点并询问其负载情况,若该节点负载较低,则将新的进程送到该节点上。若负载较高,则寻找新的节点,若到最后所有节点负载都很大,则继续运行在本节点上。

    3.接受者发起的分布式启发算法

    只要有一个进程结束,系统检查是否有足够的工作可做,若没有,则随机选择某台机器并要求它提供工作。

    算法的优点在于:在关键时刻,不会对系统增加额外的负担。上一个算法会在机器负载很大时,做了大量的探查工作,增加负载,而接受者发起算法,则不会这样,只会在工作少也就是负载小时,进行探查。



    分布式系统

    与多计算机相比,也是具有独立的CPU和存储,但是耦合度更为松散,分布式系统的节点可能分布在全世界范围,而多计算机只是分布在一个房间中。而且多计算机节点运行同样的操作系统,共享一个文件系统。而分布式系统则可以运行不同的操作系统和文件系统。

    分布式面对不同硬件和操作系统实现某种统一管理的途径是,在操作系统顶部添加一层软件,称为中间件,如下图所示:



    从某种意义上说,中间件就像分布式系统的操作系统。


    展开全文
  • 摘要:多机系统中的计算机间数据交互是实现多机系统协同工作的关键,也是实现系统备用功能的主要手段.为了分析多机系统内部数据交互方法的优点缺点,对专用接口数据交互.基于共享存储区数据交互分布式数据交互3...
  • 第8章 多处理机系统 根据消息传递的方法 1. 共享存储器处理机 2. 消息传递多计算机 3. 广域分布式系统 处理机 共享存储器处理机,其两个或更的CPU全部共享访问一个共用的RAM,运行在任何一个CPU上的...

    8章 多处理机系统

    根据消息传递的方法

    1. 共享存储器多处理机

    2. 消息传递多计算机

    3. 广域分布式系统

    多处理机

    共享存储器处理机,其两个或更多的CPU全部共享访问一个共用的RAM,运行在任何一个CPU上的程序都看到一个普通(可分页)的虚拟地址空间。

    多处理机硬件

    UMA:Uniform Memory Access

    基于单总线的UMA

    最简单的多处理机是基于单总线的,多个处理器与一个集中的存储器相连,每个处理机可以分为不同存储器模块中的单元,以及与其它处理机进行通信。

    为了解决总线带宽的限制,可以为每个CPU添加一个高速缓存,甚至,还可以有一个私有存储器,它通过一个指定的私有总线访问。这样,私有数据可以放进去,共享数据可以放入共享存储器。


    使用交叉开关的的UMA

    连接nCPUK个存储器的最简单电路就是交叉开关,每个交叉开关均为其中两个结点(CPU与存储器)之间提供一条专用连接通路。

    交叉开关最好的特性是非阻塞网络,缺点在于交叉点数量以指数级增长


    使用多级交换网络的UMA

    在单级交叉开关网络结构的基础上,将多个单级交叉开关分级连接起来,形成了多级开关网络。在相邻交叉开关级之间,设置固定的物理连接。处理机何如存储器模块分别位于网络的两侧,每台处理机通过网络访问存储器模块,而且所有处理机的访问方式都是一样的,机会均等。


    Omega网络的全混洗

    NUMA多处理机

    各个节点之间通过一条公共总线或者互连模块进行连接和信息交互,每个节点又可以由多个处理机组成,它们分别拥有各自独立的本地存储器、IO设备等,并通过一条局部总线与一个单独的主板上的共享存储器连接。


    NUMA的三层存储器:1、本地存储器 2、群内共享存储器 3、全局共享存储器或其它节点存储器

    基于目录的多处理机,维护一个表示每个告诉缓存行的位置和状态的数据库。当一个高速缓存行被引用时,就查询数据库找出它的位置以及它是干净的or脏的。

    多处理机操作系统类型

    1. 每个CPU都与自己的操作系统

    2. 主从多处理机

    3. 对称多处理机:在存储器里有操作系统和的副本,任何CPU都可以运行它。

    多处理机同步

    必须采用一个合适的互斥信号量协议,保证所有的CPU顺利工作,任何互斥信号量的核心都是一条指令,该指令允许检测一个存储器并以一种不可见的方式操作设置。TSLTest and Set Lock

    减少总线流量的方法:

    1. 高速缓存,带锁

    2. 以太网二进制指数补偿算法,不采用连续轮询,而是把一个延迟循环插入轮询,如果锁忙,延迟被加倍成为两条指令。。。

    3. 让每个打算获得互斥信号量的CPU都拥有各自的测试用私有锁变量

    多处理机调度

    1. 分时系统,时间片调度

    2. 空间共享

    3. 群调度

    多计算机

    多计算机硬件

    互连技术:星形、环形、网格、双凸面、立方体、超立方体

    交换机制:存储转发包交换、电路交换

    负载均衡

    1. 图论确定算法

    2. 发送者发起分布式启发算法

    3. 接收者发起分布式启发算法

    4. 竞标算法

    分布式系统

    网络硬件:以太网、因特网

    网络服务:面向连接、无连接

    网络协议:IPTCP

    基于文档的中间件

    基于文件系统的中间件

    基于共享对象的中间件

    基于协作的中间件

    展开全文
  • 处理机调度的层次调度算法的目标 作业与作业调度 进程调度 实时调度 死锁概述 处理机调度的层次调度算法的目标 处理机调度的层次 高级调度。 又称长程调度或作业调度。它的调度对象为作业,只...
  • 计算机操作系统处理机的调度

    万次阅读 2019-03-30 10:24:59
    处理机调度层次: 1.高级调度:它调度的对象是作业。其主要功能是根据某种算法,决定讲外存上处于后备队列中的哪几个作业调入内存,为它们创建进程,分配必要的资源,并将它们放入就绪队列。 2.低级调度:它调度...
  • 操作系统处理机调度算法

    千次阅读 多人点赞 2018-06-21 17:26:21
    道程序系统中,调度实际上是一种资源分配,即对处理机资源的分配;处理机调度算法是指根据处理机分配策略所规定的处理机分配方法; 处理机调度 处理机调度的层次 高级调度 高级调度又称为长程调度或者...
  • 操作系统8————处理机调度

    千次阅读 2019-02-02 17:29:01
    道程序系统中,调度实质是一种资源分配,处理就调度算法是指根据处理机分配策略所规定的处理机分配算法。一个作业从获得处理机执行到作业运行完毕,可能会经历多级处理机调度。下面介绍处理机的层次。 1....
  • 操作系统处理机管理

    千次阅读 2017-03-14 09:37:58
    处理机管理可归结为对进程的管理。 为什么需要进程?  在单道程序系统中,程序只能够顺序的执行,即两个程序只能等一个执行完再执行下一个。这样就使程序的执行具有三个特型:顺序性、封闭性和可再现性。而到了...
  • 不对,抢占调度方法定义:允许调度程序根据某种原则,将已分配给该进程的处理机,重新分配给另一进程,由题不能判断CPU是否处于空闲状态 高级调度低级调度的主要任务是什么?为什么引入中级调度? (1)...
  • 计算机操作系统教程(第3版)
  • 低级调度的主要任务数为内存中处于就绪态的作业分配处理机。 (2)为了提高内存的利用率与系统吞吐量。 ps:(中级调度是将作业调出掉回,高级调度是掉入,作业一次掉入,次掉回,所以中级调度频次更高) 何谓作业...
  • 操作系统第三章处理机调度与死锁

    千次阅读 2018-07-05 21:26:54
    第三章:处理机调度与死锁 处理机调度算法的目标 处理机调度算法的共同目标 资源利用率:CPU的利用率=CPU有效工作时间/(CPU有效工作时间+CPU空闲等待时间) 公平性 平衡性 策略强制执行 批处理系统的目标 ...
  • 处理机和处理器的区别

    千次阅读 2018-07-08 20:48:06
    处理机处理机计算机系统中存储程序数据,并按照程序规定的步骤执行指令的部件。程序是描述处理机完成某项任务的指令序列。指令则是处理机能直接解释、执行的信息单位。处理机包括中央处理器(cpu),主存储器,...
  • 处理机和cpu的区别

    千次阅读 多人点赞 2017-02-13 11:55:42
    处理机计算机系统中存储程序数据,并按照程序规定的步骤执行指令的部件。程序是描述处理机完成某项任务的指令序列。指令则是处理机能直接解释、执行的信息单位。处理机包括中央处理器(cpu),主存储器,输入-...
  • 操作系统实验-单处理机系统的进程调度

    千次阅读 多人点赞 2018-12-17 17:43:56
    通过模拟进程控制方法处理机系统下的进程调度,了解进程的结构、进程的创建与撤销,进程的组织及进程的状态及其转换,掌握进程调度策略。 (二)实验材料仪器设备 Windows操作系统环境下的个人微机。 (三...
  • 多处理机Cache一致性问题及解决办法

    万次阅读 2016-07-17 15:25:30
    2. 解决办法解决多处理机Cache一致性问题提出了两种解决办法:侦听一致性协议基于目录的一致性协议。由于多数SMP(对称多处理机)结构是采用总线互连的,侦听一致性协议是基于侦听总线事务来保持Cache一致性的协议...
  • 操作系统知识点总结(第三章 处理机调度与死锁)

    千次阅读 多人点赞 2019-03-16 17:23:10
    基于计算机操作系统(第四版) 第三章 处理机调度与死锁 处理机的三级调度:高级调度、低级调度、中级调度。 在道批处理、分时实时三种类型的OS中,都必须配置这级调度。 处理机调度算法的共同目标:资源...
  • 处理机调度习题

    2012-01-22 14:14:09
    处理机调度习题 计算机操作系统习题 处理机调度习题 计算机操作系统习题
  • 微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们分别是不同的概念,区别很大。具体来说:一、微处理器,是指由一片或少数几片大规模集成电路组成的中央处理器。这些电路有着执行控制部件以及算术逻辑...
  • 高级调度主要用于道批处理系统中,而在分时实时系统中不设置高级调度。 2.低级调度(Low Level Scheduling)低级调度又称为进程调度或短程调度,其所调度的对象是进程(或内核级线程)。其主要功能是,根据某种...
  • 文章目录第一章 计算机系统概述1.1 操作系统的基本概念1.1 练习题1.2 操作系统的发展与分类1.2 练习题1.3 操作系统的运行环境1.3 练习题...处理机管理:进程控制,进程同步,进程通信,死锁处理,处理机调度等 存储器管
  • 操作系统中的处理机是什么?CPU?内核?

    千次阅读 多人点赞 2018-03-21 11:36:37
    处理机计算机系统中存储程序数据,并按照程序规定的步骤执行指令的部件。处理机包括中央处理器,主存储器, I/O 接口。处理机再加上外围设备eg:鼠标?键盘?等构成完整的计算机系统。处理器:中央处理器(Central...
  • 分时操作系统和多道程序操作系统区别

    千次阅读 多人点赞 2015-10-26 17:44:49
    分时操作系统和多道程序操作系统的区别  多道程序系统是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。 两个或两个以上程序在计算机系统中同处于开始和结束之间的状态。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 470,091
精华内容 188,036
关键字:

多处理机系统和多计算机系统的差别