多处理机系统的分类
紧密耦合MPS和松散耦合MPS
从多处理机之间耦合的紧密程度上,可把MPS分为两类:
紧密耦合
松散耦合
对称多处理器统和非对称多处理器系统
根据系统中所用处理器的形同与否,可将MPS分为如下两类:
对称多处理器系统SMPS
非对称多处理器系统ASMPS
多处理机的分布式同步算法
①所有结点具有相同的信息②所有结点仅基于本地信息做出判断③为了作出最后的判定,所有的结点负担相同的职责④为了做出最后的判定,所有的结点要付出同样的工作量⑤通常一个结点发生故障,不会导致整个系统的崩溃。
多处理机的同步锁机制
自旋锁在总线上设置一个自旋锁,该锁最多只能被一个内核进程持有。当一个内核进程需要使用总线,对某个存储单元进行读写访问时,先请求自旋锁,以获得对总线的使用权。如果该锁被占用,那么这个进程就会一直进行“旋转”,循环测试锁的状态,直到重新可用。如果锁未被占用,请求该锁的内核进程便能立刻得到它,并且继续执行,直到完成对指定存储单元的读写操作后,才释放该锁。可见,自旋锁可以在任何时刻防止多个内核进程同时进入临界区,因此可以有效地避免多处理器上并发运行的内核进程对总线资源的竞争。
读-复制修改锁(RCU,Read-Copy Update)对于被RCU保护的共享文件(数据结构),无论读者和写者,都是以读的方式对其进行访问的。对于读者而言,不需要获得任何锁就可以访问它;对于写者而言,在访问它时,先制作该文件的一个副本,只对副本上的内容进行修改,然后使用一个回调机制,即向系统中一个称为垃圾收集器的机构,注册一个回调函数。在适当的时机,由垃圾收集器调用写者注册的回调函数,把指向原来数据的指针,重新指向新的被修改的数据,完成最后的数据释放或修改操作。
多处理机系统的调度算法及其性能评价指标
自调度方式
直接由单处理机环境下的调度方式演变而来的。在系统中设置有一个公共的进程或线程就绪队列,所有的处理器在空闲时,都可到该队列中取得一进程(或线程)来运行。可以采用在单处理机环境下所用的调度算法,如先来先服务调度算法、最高优先权算法和抢占式最高优先权优先调度算法。
成组调度方式
专用处理器分配
动态调度
该调度算法允许进程在执行期间动态地改变其线程的数目。操作系统和应用程序能够共同地进行调度决策。操作系统负责把处理机分配给作业,而每个作业负责将分配到的处理机再分配给自己的某一部分可运行任务。
多媒体操作系统的进程实时调度算法
最简单的实时调度算法
在多媒体服务器中,将为所播放的每一部数字电影建立一个进程。其主要任务是,不断接受从硬盘上传来的帧,经适当处理后,便送往屏幕。最简单的实时调度方法是,假定所要播放的电影都具有相同的类型,如都是采用相同的制式、分辨率和压缩比的彩色数字电影。
速率单调调度(Rate Monotonic Scheduling)算法
RMS算法是一个静态的、优先级驱动的算法,适用于抢占式优先级调度方式以及实时任务是周期性的情况。在采用该算法时,系统中的进程应满足如下条件:
(1) 在系统中允许同时存在周期性进程和非周期性进程,所有周期性任务具有固定的周期。
(2) 所有的进程之间相互独立,互不依赖。
(3) 对于周期性进程而言,所有进程在一个周期中,所需完成的工作量是相同的,而且任务还必须在周期内完成,不会影响到下一个周期的任务。