支持对称多处理器结构的操作系统设计

合集下载

多核处理器体系结构及并行程序设计

多核处理器体系结构及并行程序设计


13
Floating Point
Integer
Floating Point
Integer
L1 D-Cache and D-TLB
L1 D-Cache and D-TLB
Even 2 floating point threads can be executed at the same time now (per processor) as there are multiple floating point execution units
– 只共享系统总线,独立缓存 – 高性能,资源冲突少

9

双核技术 VS. 超线程技术
• 双核是真正意义上的双处理器
– 不会发生资源冲突 – 每个线程拥有自己的缓存、寄存器和运算器
• 一个3.2GHz Smithfiled在性能上并非等同于3.2GHz P4 with HT 的2 倍
Integer
Rename/Alloc uop Queues Schedulers
BTB & I-TLB Decoder
Trace Cache
Floating Point
uCode ROM
2 threads CANNOT be executed at the same time (per processor) if
BTB & I-TLB Decoder
Trace Cache
Floating Point
uCode
ROM

14

多核技术与超线程技术的结合
Dual Core
2 threads/socket
Dual Core with Hyper-Threading

第7章 Windows操作系统的特点及使用

第7章  Windows操作系统的特点及使用

★这些同步对象都有一个用户指定的对象名称, 这些同步对象都有一个用户指定的对象名称 对象名称,
不同进程中用同样的对象名称来创建或打开对 从而获得该对象在本进程的句柄。 象,从而获得该对象在本进程的句柄。
14
★从本质上讲,这组同步对象的功能是相同的, 从本质上讲,这组同步对象的功能 相同的 功能是
它们的区别在于适用场合和效率会有所不同: 它们的区别在于适用场合和效率会有所不同: 区别在于适用场合和效率会有所不同 (1)互斥对象(mutex)就是互斥信号量,在一 互斥对象(mutex)就是互斥信号量, 个时刻只能被一个线程使用。 个时刻只能被一个线程使用。 (2)信号量对象(semaphore)就是资源信号量, 信号量对象(semaphore)就是资源信号量, 初始值的取值范围在0到指定最大值之间, 初始值的取值范围在0到指定最大值之间,用于 限制并发访问的线程数。 限制并发访问的线程数。 (3)事件对象(event)相当于“触发器”,可 事件对象(event)相当于“触发器” 用于通知一个或多个线程某事件的出现。 用于通知一个或多个线程某事件的出现。
★ Windows 2000/XP高级服务器和Windows 2000/XP 2000/XP高级服务器和Windows 高级服务器和
数据中心服务器支持一个引导选项,允许用户拥有3GB 数据中心服务器支持一个引导选项,允许用户拥有3GB 服务器支持一个引导选项 的地址空间。 的地址空间。
16
7.3.2 用户内存空间分配方式
3
7.1 Windows概述 Windows概述
★从1983年微软公司宣布Windows的诞生到现在,微软Windows 1983年微软公司宣布Windows的诞生到现在 微软Windows 公司宣布Windows的诞生到现在, 系列操作系统的功能不断发展完善, 系列操作系统的功能不断发展完善 , 在市场中成为操作系 统平台的主流软件 主流软件。 统平台的主流软件。 ★其开发经历了三个主要阶段: 其开发经历了三个主要阶段: 三个主要阶段

对称多处理SMP中进程间通讯对操作系统的要求

对称多处理SMP中进程间通讯对操作系统的要求

第9 期
王弘: 对称多处理 2-) 中进程间通讯对操作系统的要求
・ J/・
支持公有和私有两种访问键。如果键是公有的, 系 统中所有的进程通过权限检查后, 均可以找到 !"!# 只能 $%& ’ ()* 对象的引用标识符。值得注意的是, 通过引用标识符引用 !"!$%& ’ ()* 对象
[ +]
下, 操作系统应该能对两种并发程序设计模型— — — 共享存储程序设计模型和消息传递程序设计模型提 供支持, 其中前者能直接对应共享存储的体系结构, 从而较好地对应 2-) 系统, 后者能通过显式的任务 间消息的传递进行通讯, 能够较好地对应分布式存 储模型, 但在 2-) 系统中也可以实现, 操作系统也 应该对其提供有效的支持, 在 45678 中, 两种并发程序设计模型分别对应 的机制实现是 I&65 IG%6-) 和 -)(*., 在其它的支 持 2-) 的操作系统中, 也应该有类似的实现机制, -)(*. 中的共享内存体系是由 2"!$%&’ ()* 机制实 现的, 操作系统应该对这种机制提供实现, 或者使用 其它方法 来 提 供 对 共 享 内 存 的 支 持, 以 避 开 2"!# $%&’ ()* 共享内存机制的限制, 对于 2"!$%&’ ()* 机制, 为了和其他系统保持 兼容, 操作系统应当对消息队列、 信号量和共享内存 这三种典型机制提供实现, 并提供一类系统调用用 于创建和管理共享存储空间的进程组, 此外, 操作系 统需要提供支持命名通信、 消息路由控制和消息的 流量控制等进程间通讯的必要机制, 并实现多处理 器间的远程过程调用, 只有对上述机制提供了实现的操作系统, 才能 适应 2-) 体系中进程间通讯的要求, 从而对对称多 处理 2-) 体系结构提供支持,

SMP 对称多处理

SMP 对称多处理

SMPSMP,英文缩写,有.对称多处理,移动智能网,系统边际电价,共享内存多处理器,SMP公司,标准管理规程等的英文简写。

目录简介平时所说的双CPU系统,实际上是对称多处理机系统中最常见的一种,通常称为2路对称多处理,它在普通AMD Athlon 64 X2的商业、家庭应用之中并没有太多实际用途,但在专业制作,如3DMaxStudio、Photoshop等软件应用中获得了非常良好的性能表现,是组建廉价工作站的良好伙伴。

随着用户应用水平的提高,只使用单个的处理器确实已经很难满足实际应用的需求,因而各服务器厂商纷纷通过采用对称多处理系统来解决这一矛盾。

在中国国内市场上这类机型的处理器一般以4个或8个为主,有少数是16个处理器。

但是一般来讲,SMP结构的机器可扩展性较差,很难做到100个以上多处理器,常规的一般是8个到16个,不过这对于多数的用户来说已经够用了。

这种机器的好处在于它的使用方式和微机或工作站的区别不大,编程的变化相对来说比较小,原来用微机工作站编写的程序如果要移植到SMP机器上使用,改动起来也相对比较容易。

SMP结构的机型可用性比较差。

因为4个或8个处理器共享一个操作系统和一个存储器,一旦操作系统出现了问题,整个机器就完全瘫痪掉了。

而且由于这个机器的可扩展性较差,不容易保护用户的投资。

但是这类机型技术比较成熟,相应的软件也比较多,因此现在中国国内市场上推出的并行机大量都是这一种。

PC服务器中最常见的对称多处理系统通常采用2路、4路、6路或8路处理器。

目前UNIX服务器可支持最多64个CPU的系统,如Sun公司的产品Enterprise10000。

SMP系统中最关键的技术是如何更好地解决多个处理器的相互通讯和协调问题。

系统结构对称多处理机的系统结构,主要指处理器、存储器、输入输出(I/O)设备三者之间的连接,它对我们更好地理解多处理机操作系统是非常必要的。

多处理器与存储器之间的连接:1、多端口存储器方式:这是最简单的连接。

电力系统中,SCADA系统

电力系统中,SCADA系统

在电力系统中,SCADA系统应用最为广泛,技术发展也最为成熟。

它作为能量管理系统(EMS系统)的一个最主要的子系统,有着信息完整、提高效率、正确掌握系统运行状态、加快决策、能帮助快速诊断出系统故障状态等优势,现已经成为电力调度不可缺少的工具。

它对提高电网运行的可靠性、安全性与经济效益,减轻调度员的负担,实现电力调度自动化与现代化,提高调度的效率和水平中方面有着不可替代的作用。

根据ARC的一项报告,电力行业SCADA系统全球展望,全球电力工业SCADA系统市场在2004年超过了12亿美元,预计至2009年将超过15亿美元,其复合年增长率可超过4%。

SCADA系统的效率,越来越重要的是能集成在公司的业务系统中。

SCADA系统必须能向企业的所有需要的节点提供实时的数据。

对于电气设施,一个典型的运行网络通常包括地理信息系统geographic information systems (GIS),客户管理系统customer management systems (CMS),职工或维护管理系统以及ERP。

SCADA的信息必须与人力资源和资产优化程序集成,以有效的作用于业务过程的改变,提高传送和分配系统的可靠性,提高性能,改善客户服务,降低运行成本。

论用Linux/PC构建电力系统SCADA通用平台周拥华1,程时杰1,黄立滨2,罗成2(1.华中科技大学电气工程学院,湖北武汉430074;2.河南许昌许继集团,河南许昌461000)摘要:为向我国220kV及以上电压等级的SCADA系统提供可靠性高、普遍实用、具有自主知识产权且性能价格比高的系统软硬件平台,结合计算机技术发展的最新成果,论述了基于Intel架构的PC服务器与Linux操作系统用于构建SCADA平台的必要性和可行性,同时提出了平台的构建方案。

从电力系统中广泛存在的监控后台需求出发,讨论了现有Solaris/Sparc、MS Windows/Intel等多种方案的局限性,并针对PC的局限,着重论述了各项关键指标的解决办法。

操作系统对多核处理器的支持方法

操作系统对多核处理器的支持方法
虚拟机模拟足够的硬件来保证未修改的为相同CPU 设计的操作系统独立运行。 VMware、Win4BSD等
部分虚拟
虚拟机模拟多个但并非所有底层硬件环境,特别是 地址空间 这样的环境支持资源共享和进程独立,但是不允许 独立的客体操作系统实例 Windows、Linux等
24
平台虚拟化
类虚拟 操作系统级虚拟 应用程序虚拟 ……
(2)任务的调度是基于优先级调度的
每个处理器上的任务共有140个优先级,每个就绪任务的 优先级通过散列函数直接映射到处理器的位图数据结构 上,通过位图的find-first-bit可以找到优先级最高的执行
(3)活动就绪队列和扩展就绪队列通过指针转换 (4)负载均衡
一个core的任务结束,转而处理其他最忙core上的任务 若所有core都有任务,则每200ms检查是否均衡
接受来自处理器中断引脚中的内部或外部I/O APIC的 中断,然后将这些中断发送给处理器核处理。 在多核处理器系统中,接收发送核内中断消息。
多核体系处理器中,必须将中断处理分发给一组核处理。当系统中有 多个核在并行执行时,必须有一个能够接收到的中断分发给能够提供 服务的核的机制。
16
APIC通过中断命令寄存器(ICR)来接收和发 送IPI消息,ICR提供如下功能:
操作系统对多核处理器的支持方法
mcp08@ dlut08 5/6/7周一晚
outline
并行计算机访存模型 调度与中断 输入输出系统 存储管理与文件系统 虚拟化技术
平台虚拟化 资源虚拟化
2
UMA(均匀存储访问)模型
物理存储器被所有节点共享; 所有节点访问任意存储单元的时间相同; 发生访存竞争时,仲裁策略平等对待每个节点,即 每个节点机会均等; 各节点的CPU可带有局部私有高速缓存; 外围I/O设备也可以共享,且每个节点有平等的访 问权利。

对称多处理器体系结构在实时系统中的应用研究

对称多处理器体系结构在实时系统中的应用研究I. 介绍实时系统是指对时间敏感的计算机系统,其设计的主要目的是满足时间限制。

对称多处理器(Symmetric Multiprocessor, SMP)体系结构是一种多处理器计算机体系结构,其多个处理器共享内存,有助于提高计算能力和可靠性。

本文将介绍对称多处理器体系结构在实时系统中的应用研究。

II. 对称多处理器体系结构对称多处理器体系结构是一种将多个处理器互联起来,它们共享同一块主存储器和I/O总线的体系结构。

该体系结构中每个处理器的处理能力相等。

对称多处理器体系结构大大提高了计算机系统的性能,并提高了系统的可靠性。

在许多实时系统应用场景下,对称多处理器体系结构得到了广泛的使用。

III. 实时系统的应用场景实时系统的应用场景主要包括:控制系统、航空航天、军事、制造业、医疗和交通等。

常见的实时系统需求包括响应时间、处理速度和可靠性的提高。

IV. 对称多处理器体系结构在实时系统中的应用(一)在实时系统中提高性能实时系统通常需要快速响应,能够及时处理大量数据。

对称多处理器体系结构为实时系统提供了大量的计算能力和处理能力。

通过并行处理任务,实时系统可以更快地响应请求并处理数据。

(二)在实时系统中提高可靠性实时系统的可靠性是至关重要的,它涉及到数据的安全性和系统的稳定性。

对称多处理器体系结构增加了系统的可靠性。

如果一个处理器出现故障,系统可以重新分配任务到其他处理器上。

这种分布式处理方法有助于确保实时系统的稳定性和可靠性。

(三)在实时系统中提高灵活性实时系统需要具备高度的灵活性,能够应对各种不同的请求和事件。

对称多处理器体系结构支持动态任务调度,可以将任务分配给可用处理器,从而优化系统性能。

这种动态任务调度方法有助于实现实时系统的高度灵活性和超强的适应性。

V. 结论对称多处理器体系结构在实时系统中的应用已经变得越来越广泛。

通过提高实时系统的性能、可靠性和灵活性,对称多处理器体系结构有助于满足实时系统的各种需求。

支持对称多处理器结构的操作系统设计

第38卷第2期2008年3月航空计算技术AeronauticalComputingTechniqueV01.38No.2M盯.2008支持对称多处理器结构的操作系统设计任晓瑞.时磊(中国航空计算技术研究所,陕西西安710068)摘要:在提高系统性能方面,SMP结构计算机已经成为现代计算机技术发展的潮流和趋势,因此急需构建能协调多处理器并发活动并维护系统一致性的SMP操作系统来替代原有的单处理器操作系统。

从SMP操作系统所需要达到的目标出发,对设计满足SMP结构操作系统中的各方面问题进行了讨论,主要对操作系统结构,多处理器的引导和操作系统初始化,多进程的并行调度、多处理器中断的管理,以及程序和数据的可重入性等方面进行了详细的讨论。

关键词:对称多处理机(SMP);操作系统;中断管理;进程调度;机闻中断(IPI)中图分类号ITP316文献标识码:A文章编号:167l-654X(2008)02.0053.05引言随着微处理器速度的增长,提高处理器频率的方法已受到随之而来的高功耗的限制,采用SMP系统可花费最小的代价解决系统性能的提高、实现系统负载均衡调度、满足处理器容错的需要。

目前SMP结构计算机已经成为现代计算机技术发展的潮流和趋势。

对称多处理机(SymmetricMuhiProcessor),是指由一组处理器(多CPU)组成的一个计算机,各CPU之间共享内存以及总线结构。

在这种结构中,所有的处理器都可以平等地访问内存、I/O和外部中断。

虽然同时使用多个CPU,但由于多个处理器共享内存和其他资源,由一个操作系统统一管理,因此从用户的角度来看,它们的表现就像一个CPU一样,而其整个系统的处理能力却大幅度提高。

随着对称多处理机技术的发展,如何在原有的操作系统的基础上,实现支持SMP结构操作系统的开发已成为需要解决的首要问题。

目前Linux2.4版本以上的内核,采用了细加锁机制支持对SMP处理器的支持。

QNX则支持操作系统为微核结构的SMP设计,本文主要介绍满足SMP结构的嵌入式操作系统设计过程需要考虑的问题。

操作系统概念OperatingSystemconcepts

操作系统概念OperatingSystemconceptsOS⼤题预测进程同步与信号量,对semaphore的定义,wait()和singal()操作进程调度策略,画Gantt图,求各个进程的轮转时间,等待时间,以及平均轮转时间,平均等待时间给出页⾯的引⽤串,根据不同的调度策略(LRU,Opt,FIFO,Clock)进⾏计算,得出缺页次数与缺页率死锁避免,银⾏家算法,系统安全状态(能否找到⼀个安全序列),对于进程的资源请求判断是否会造成死锁(避免算法)给定⽂件的索引结构,计算查找特定记录所需要的磁盘I/O次数,以及⽂件可存储的最⼤⼤⼩操作系统类型简单批处理系统多道程序批处理系统:⽆论何时都有程序在运⾏,从⽽使CPU的利⽤率达到最⼤。

分时系统(time-sharing):在进程之间频繁切换CPU,以便⽤户在程序运⾏时能与其进⾏交互,特点是⽴即响应。

并⾏/多处理器系统:增加吞吐量(多个处理器加速⽐⼩于N),规模经济(资源共享减少开销),增加可靠性(⼀个处理器故障不会导致系统罢⼯)实时系统分布式系统:资源共享,计算加速,可靠性,通信系统调⽤System CallSystem call - the method used by a process to request action by the operating system.Usually takes the form of a trap (software interrupt).Control passes through an interrupt vector to a service routine in the OS, and the mode bit is automatically set to supervisor mode.The OS verifies that the parameters are correct and legal, executes the request, and returns control to the instruction following the system call.参数传递机制Passing parameters to the kernel for a system call must be performed differently than when using an ordinary functional call. This is because a system call is performed by the kernel itself, which typically runs in a completely different address space than the process which made the call. Thus it is not possible to simply place system call parameters onto the process’ stack as this will not be readily available to the kernel. There are three main methods to pass the parameters required for a system call:(1) Pass the parameters in registers (this may prove insufficient when there are more parameters than registers).(2) Store the parameters in a block, or table, in memory, and pass the address of block as a parameter in a register. This approach is used by Linux and Solaris.(3) Push the parameters onto a stack(内核栈); to be popped off by the OS. Block and stack methods do not limitt the number or length of parameters passed.中断InterruptThe occurrence of an event is usually signaled by a (an) interrupt from either the hardware or the software.Hardware may trigger it at any time by sending a signal to the CPU, usually by way of the system bus.硬件中断,⼜称外部中断,由CPU的外部硬件信号引发。

第四章对称多处理机系统

第四章对称多处理机系统第四章对称多处理机系统 (1)4.1引言 (2)4.2高速缓存一致性问题和存储一致性模型 (3)4.2.1高速缓存一致性问题 (3)4.2.2高速缓存一致性和存储系统一致性 (5)4.3侦听高速缓存一致性协议 (6)4.3.1基本高速缓存一致性协议 (6)4.3.2三态回写无效协议(MSI) (9)4.3.3四态回写无效协议(MESI) (11)4.3.4四态回写更新协议(Dragon) (12)4.4基本高速缓存一致性协议的实现 (14)4.4.1正确性要求 (14)4.4.2基本的高速缓存一致性设计 (15)4.5多级高速缓存 (19)4.5.1维护包含性 (20)4.5.2层次高速缓存一致性的传播 (21)*4.6分事务总线 (21)4.6.1基本设计 (22)4.6.2支持多级高速缓存 (24)4.7同步问题 (26)4.7.1基本问题 (26)4.7.2互斥操作 (27)4.7.3点到点事件同步 (30)4.7.4全局事件同步 (31)4.8实例分析:SGI Challenge (33)4.8.1 SGI处理器和主存子系统 (33)4.8.2 SGI I/O子系统 (34)4.9小结 (35)习题 (35)参考文献 (37)对称多处理机SMP(Symmetric Multiprocessor)是一类最主要的共享存储的并行计算机系统,一般利用系统总线作为互连网络实现通信,它在现今的并行服务器中几乎普遍被采用,且越来越多的出现在桌面上。

在本章中,首先讨论了基于总线的SMP机器设计的一些问题,主要包括高速缓存一致性问题、存储一致性模型、侦听高速缓存一致性协议;然后分别介绍了基于单级高速缓存和原子总线、多级高速缓存和分事务总线的高速缓存一致性协议的实现;最后,介绍了同步问题及一个具体实例SGI Challenge系统。

4.1引言对称多处理机SMP (Symmetric MultiProcessor )结构在现今的并行服务器中几乎普遍采用,并且已经越来越多的出现在桌面上。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 38 卷
第 2期
航空计算技术 A eronautica l Co m puting T echn ique
Vo . l 38 N o . 2 M ar . 2008
2008 年 3 月
支持对称多处理器结构的操作系统设计
任晓瑞, 时 磊
(中国航空计算技术研究所 , 陕西 西安 710068)
摘 要 : 在提 高系统性 能方面 , S M P 结构计算机 已经成为 现代计算机 技术发展 的潮流和趋 势 , 因 此
2 . 2 . 3 进程调度 在采用抢占式进程调度的操作系统中 , 进程在以 下两种情况下进行切换: 1) 当前运行的进程自动放弃 CPU 控制权, 此时 进程从就绪链中移出。如: 进程等待资源、 延时等待、 挂起自身等。 2) 当前进程运行过程中 , 有高优先级的进程就绪 , 需要调度。 对于第一种情况 , 调度与单处理机相同, 从就绪队 列中取出最高优先级进程 , 设置为当前 CPU 的执行进 程 ; 如果没有就绪进程 , 则运行本 CPU 的空闲进程 ; 对于第二种情况 , 在 S MP 结构的系统中, 同时 运 行的进程有多个。当 有进程 A 由于获得资源而转 换 为就绪态时 , 需求解决该进程在多个 CPU 上的调度。 为了处理后一种情况 , 在 SMP 操作系统的调度更 改中, 需增加对指定进程调度的功能。主要完成: 查找进程 A 上次运行的处理机 , 如果空闲 , 则 向该 CPU 发 IP I重调度信号。 如果上次运行的处理器不空闲, 则在系统中查 找空闲的 CPU, 并向该 CPU 发 IP I重调度信号。 如果没有空闲的 CPU, 则在所有 CPU 中查找当
图 1
SM P 硬件结构模型
SMP 处理机应满足 : 1) 每个 CPU 具有唯一的物理标识。 2) CPU 之间可以通过命令或中断完成通信; 每个 CPU 可以向指定的 CPU 发送中断请求。 3) 具有总线监听能力, CPU 的存储管理支持 MES I ( ME I) 协议, 能保证各 CPU 上 CACH E 中的数据与内 存数据的一致性。 4) 主引导 CPU 可以获取系统处理器的配置。 5) 对总线和存储器的访问要进行仲裁, 保证所有 的 CPU 和设备有平等的访问权利 , 对相同存储器的访 问不会相互干扰。 6) CPU 的数目应满足 总线和存储器的带宽的 限 制。
图 3 进程运行队列
但是该机制不利于系统资源的充分利用 , 尤其是 系统负载的平衡使用。 2) P rocessor affinity 机制 该机制允许用户使用 进程运行配置表 , 定义每个进程建议运行的 CPU。与 Funnelin g 相比 , 该机制的限定性较弱。 对 Funnelin g 的配置要求在内核中定义, 而 P roces sor affinity 的实现可以在应用级完成, 用户可以通过调 用服务设定进程建议运行的处理器, 当需要时可重定 义。允许处理器故障时将进程恢复到其它处理器上运 行。 在实时系统中 , P rocessor affin ity 可以减少进程的 调度时间 , 调度 时, 只需 查看该进程上 次运行的处理 器, 将进程派遣到其上运行。 该机制的实现 , 需要在进程控制块中增加进程允 许运行的 CPU 属性, 在进程调度中加以判别处理, 增 加了实现的复杂性。 2 . 3 中断处理 2 . 3. 1 中断管理结构 S M P 中断管理的主要问题是确定由一个 CPU 来 处理所有的中断请求, 还是由所有的 CPU 轮流处理。 如果是轮流处理还需解决中断请求与不同 CPU 的对 应关系。
2
S M P 操作系统设计需考虑的问题
SMP 操作系统的设计需要解决系统引导、 中断处
图 2 SM P 系统初始化流程
理、 进程调度、 软件的可重入性等多个方面的问题。 2 . 1 系统引导 虽然 S MP 系统中所有 CPU 都是平等的 , 没有主次 之分。但是在系统引导和初始化阶段还是有差别的 , 因为在初始阶段系统只有一个 上下文 , 只能由一个 CPU 来处理。 在系统加电之后 , 系统中暂时只有一个 CPU 完成 系统初始化 , 称为 引导处理器 。系统其它的处理器 处于暂停状态, 称为 从处理器 。引导处理器完成自 身的初始化, 并完成系统 MMU 管理机制的初始化 , 完 成系统内核的初始化 , 创建 idle 进程 ; 然后依次启动系 统中的各个 CPU, 主 CPU 在完成了所有从 CPU 的启动 后 , 发命令同步启动所有 CPU 进入多进程并行运行。
1
S M P 系统概述
SMP 系统是多个 CPU 组成的计算机, 与单处理机
系统相比, S MP 系统通过并行处理可以提高处理进程 的速度。同时 S M P系统具有一定的容错能力, 即当有
收稿日期 : 2007 - 10 - 17 修订日期 : 2008 - 02 - 20
基金项目 : 航空基金资助项目 ( 04F31007 ) 作者简介 : 任晓瑞 ( 1972 - ) , 女, 陕西西安人 , 高级工程师 , 研究方向为嵌入式实时操作系统。
在 SMP 系统结构中 , 所有的 CPU 在运行时 ( 系统 引导和初始化除外 ) 都是 对称 的 , 没有 主次之分。 存储器中的内容是完全共享的 , 只要是引用相同的数 据 , 那么所有的 CPU 和设备都使用相同的物理地址。 在物理上 , 通常采用同一种 CPU, 所有的 CPU 通过同 一条系统总线共享同 一个系统内存及 所有外设。在 SMP 结 构 中 , 每 个 CPU 都 有 自 己 的 高 速 缓 存 ( CACH E ), 用来减少对内存访问的冲突。 SMP 系统硬件结构 , 如图所示。
54 1 . 2 SMP 系统对硬件的要求
航空计算技术
第 处于复位状态, 等待引导处理器 的启动, 从处理器启动后, 完成自身 CPU 内部寄存器 的初始化 , 设置 CPU 的中断管理机制。各 CPU 初始化 完成后, 停下来等待统一的 起跑 命令; 并转入各自 的 id le进程。
引言
随着微处理器速度的增长, 提高处理器频率的方 法已受到随之而来的高功耗的限制, 采用 S M P 系统可 花费最小的代价解决系统性能的提高、 实现系统负载 均衡调度、 满足处理器容错的需要。目前 S M P 结构计 算机已经成为现代计算机技术发展的潮流和趋势。 对称多处理机 ( Symm etric M ultiP rocessor), 是指由 一组处理器 ( 多 CPU )组成的一个计算机, 各 CPU 之间 共享内存以及总线结构。在这种结构中, 所有的处理 器都可以平等地访问内存、I/O 和外部中断。虽然 同 时使用多个 CPU, 但由于多个处理器共享内存和其他 资源, 由一个操作系统统一管理 , 因此从用户的角度来 看 , 它们的表现就像一个 CPU 一样, 而其整个系统 的 处理能力却大幅度提高。 随着对称多处理机技术的发展, 如何在原有的操 作系统的基础上 , 实现支持 S M P结构操作系统的开发 已成为需要解决的首要问题。目前 L inux 2 . 4 版本以 上的内核, 采用了细加锁机制支持对 S MP 处理器的支 持。 QNX 则支持操作系统为微核结构的 SMP 设计, 本 文主要介绍满足 S M P 结构的嵌入式操作系统设计过 程需要考虑的问题。
在自举阶段, 每一个 CPU 使 用自己不同的栈, 使 得它们不互相干扰地同时自举。 S M P操作系统的引导 如图 2 所示。 2 . 2 进程调度 2 . 2. 1 SMP 结构进程管理 操作系统的功能主要是对进程的调度、 管理, 维护 其运行所需要的资源。为了实现并行进程调度 , 必须 找出所有的调度程序的临界区并且加以保护。操作系 统内核中 , 每类对象会对就绪队列进行操作 , 进程获取 资源时, 如果当前资源不可用 , 则需要将进程从就绪队 列中摘下 , 当资源有效时又要加入到就绪队列中。进 程调度需要在就绪队列中查找下一个调度进程。因此
急需构建能协调多 处理器并发活动并维护系统一致性的 SM P 操作系统来替代原有的单处理器操 作 系统 。 从 SM P 操作系统所需要达到的目标出发 , 对设计满足 SM P 结构操作 系统中的 各方面问题 进 行了讨论 , 主要对操作系统结构 , 多处理器的引导和操作系统初 始化 , 多进程的 并行调度 、 多处理 器 中断的管 理 , 以及程序和数据的可重入性等方面进行了详细的 讨论 。 关键词 : 对称多处理机 ( SM P ); 操作系统 ; 中断管理 ; 进程调度 ; 机间中断 ( IP I) 中图分类 号 : TP 316 文献标识码 : A 文章编号 : 1671- 654X ( 2008) 02- 0053 - 05
2008 年 3 月
任晓瑞 等 : 支持对称多处理器结构的操作系统设计
55
就绪队列被全局同时访问、 同时修改 , 需用加以保护。 在实现时考虑进程管理的特殊性。对用于进程管 理每个进程控制块设置一个锁 , 对运行队列及相关的 优先级映射表设置一个锁。 2 . 2 . 2 运行队列 当前运行进程 Process_Executing: 在单处理机中指 向正处于运行态的进程控制块 , 在 S M P 中必须改变对 其的定义, 当前运行的进程的数据结构的指针变成指 针数组 Process_Execu ting [ Num _CPU ] 。 Num _CPU 为 CPU 总数。 每个 CPU 定 义一个 运行队 列, 在 单机进 程调 度 中 , 当前运行进程只有一个 , 运行时可以不从就绪链中 移出 (系统中的最高就绪进程即为当前运行进程 ) , 对 于多 CPU 的 S M P 系统中 , 由于同时 运行的进程有 多 个 , 需要将进程从就绪链中摘下, 放入到各个 CPU 的 运行队列中。
前运行优先级最低的进程 B, 如果进程 A 的优先级低 于 B, 则调度结束; 否则, 向 B 进程所在的处理机发 IP I 重调度信号。 在 S M P 进程管理时, 当使用停止进程、 重启进程、 挂起进程、 删除进程、 改变进程优先级等服务 , 而被处 理的进程在另一个 CPU 上运行时, 直接操作将存在问 题。如当进程 1 正在 CPU1 上运行, 此时 CPU 2上运行 的进程 2 调用上述服务对进程 1 操作 , 因其无法控制 CPU1 的状态, 因此需要通过处理机之间的 IP I 中断 , 发送相应的 S M P _FUNCT I ON _CALL 到进程 1 运行的 CPU1 , 由 CPU 1进行处理。 2 . 2. 4 进程与处理机关系定义 在 S M P 操作系统中, 进程与处理机的关系可以是 无关的, 也可以通过 Funneling 机制或 Processor affin ity 机制两种机制定义进程与处理机的关系。 1) Funnelin g 机制 在 Funnelin g 机制 中, 通过 配置 , 为每个 CPU 定义好要处理的进程, 例如处理所 有的 I/O 请求或处理所有的中断请求。 该机制 有利于减少 CACHE 的 一致性问题, 因为 每个 CPU 处理一类不同的任务 , 不会在系统中存在同 一数据的多个副本。由于中断的产生会影响 CACH E, 因此当所有的中断在一个 CPU 上处理时 , 系统中的其 它 CPU 将不会受到打扰, 因此会操作的更快。
相关文档
最新文档