1、多核计算机系统的操作系统多核架构及编程技术内 容 操作系统简介 基于多核的操作系统内容及其功能 1、操作系统简介 操作系统的名称:操作系统的名称: 监控(督)程序(系统)(监控(督)程序(系统)(Monitor) 执行系统(程序)执行系统(程序)(Executive System(program) 控制系统(程序)控制系统(程序)(Control System program) 管理程序管理程序(Supervisor, Supervisory System) 核心程序核心程序(Kernel) 操作系统操作系统(Operating System)用户与操作系统的关系普通普通用户用户软件设计师软件
2、设计师操作系统操作系统设计师设计师计算机硬件计算机硬件操作系统操作系统实用程序实用程序应用程序应用程序操作系统是什么从计算机系统组成观点从计算机系统组成观点操作系统是系统软件操作系统是系统软件 计算机系统组成:计算机系统组成: 软件:软件: 应用软件应用软件 系统软件(操作系统等)系统软件(操作系统等) 硬件:硬件: 输入输出(输入输出(IO)设备)设备 存储器存储器(内存内存) 中央处理器中央处理器(CPU)操作系统是什么从资源管理程序观点从资源管理程序观点-操作系统是系统资源管理者(操作系统是系统资源管理者( Operating System as a Resource Manager)
3、操作系统是系统资源管理程序,它用于控制和管理计算机操作系统是系统资源管理程序,它用于控制和管理计算机系统的硬件和软件资源。系统的硬件和软件资源。 计算机系统资源:计算机系统资源: 操作系统模块:操作系统模块: 软件:软件:程序、数据程序、数据 文件系统文件系统 硬件:硬件:IO设备设备 设备管理设备管理 存储器存储器 存储器管理存储器管理 处理器处理器 处理器(进程)管理处理器(进程)管理操作系统是什么从软件分层、扩充机器的观点从软件分层、扩充机器的观点 操作系统是扩充操作系统是扩充裸机的第一层系统软件裸机的第一层系统软件The Layers Of A SystemProgram Interf
4、aceHumansUser ProgramsO.S. InterfaceO.S.Hardware Interface/ Privileged InstructionsDisk/Tape/Memory操作系统是什么从服务用户的观点从服务用户的观点操作系统是用户与裸机之间操作系统是用户与裸机之间接口接口 系统提供的接口有二类:系统提供的接口有二类: 命令级接口命令级接口,它提供一组键盘或鼠标命令。,它提供一组键盘或鼠标命令。 程序级接口程序级接口,它提供一组,它提供一组系统调用系统调用System calls ,即,即OS中功能,供用户程序和其它程序调用。中功能,供用户程序和其它程序调用。操作系统
5、定义 操作系统是一组操作系统是一组有效有效控制和管理计算机系统的硬控制和管理计算机系统的硬件和软件资源、件和软件资源、合理合理地组织计算机工作流程以及地组织计算机工作流程以及方便用户方便用户的程序集合。的程序集合。 有效(有效(efficient):系统效率,资源利用率系统效率,资源利用率 (如:(如:CPU利用的充足与否,内存、外部设备是否忙利用的充足与否,内存、外部设备是否忙碌)碌) 合理:合理:公平与否,如果不公平则会产生公平与否,如果不公平则会产生“死锁死锁”或或“饥饿饥饿” 方便(方便(convenience):用户界面用户界面, ,编程接口编程接口 操作系统所提供的服务程序执行 调
6、入一个程序进入内存并运行之的系统能力I/O操作 由于用户程序不能直接执行I/O操作,操作系统必须提供完成I/O操作的手段文件系统操纵 程序能够读、写、创建和删除文件通信 运行的进程间在同一计算机或由网络连接的不同系统中交换信息。通过共享存储器或消息传递实现出错检测 通过探测在CPU与内存硬件中,在I/O设备中,或在用户程序中的错误,确保正确运算资源分配(Resource allocation)AccountingProtection文字与图形用户接口 命令行用户界面(Command line User Interface CUI) 键盘输入 DOS,Linux,UNIX 图形用户界面(Grap
7、hic User Interface GUI) 鼠标输入 MacOS,OS/2,WINDOWS Linux通过运行基于X-Window系统软件,提供GUI用户界面。 Linux的GUI环境: GNOME KDE操作系统类型 按功能分(早期): 批处理系统 (Batch System) 分时系统 ( Time Sharing System) 实时系统 ( Real-Time Systems ) 按同时使用系统的用户数和系统能同时运行的进程数分成: 单用户、单进程系统 MacOS,DOS,WINDOWS 3.1 单用户、多进程系统 OS/2、WINDOWS 95/98/2000/xp 多用户、多进
8、程系统 Linux、UNIX、 WINDOWS SERVER系列操作系统类型 按计算机系统(硬件)操作系统分成 微机操作系统 常用的微机OS有MS-DOS、 Windows系列、OS/2、SCO UNIX、 Linux等。 网络操作系统 Unix、Linux、Windows 2000/2003 server 分布式操作系统 嵌入式操作系统操作系统发展趋势 嵌入式操作系统:主要伴随着个人数字助理PAD、掌上电脑、电视机顶盒、智能家电等设备的发展,对操作系统在功能和所占空间大小权衡上提出了新的要求。 强实时操作系统:特别是针对通用操作系统的实时性研究,还在不断发展当中。 并行(集群)操作系统的研究
9、:如建立在基于共享主存的多处理机系统(MP)及用上千个微处理器实现基于分布式存储的大规模并行处理机系统(MPP)的操作系统,系统突出特征是提供各类并行机制。例如并行文件系统,并行IO控制,多处理机分配和调度,处理机间的通信和同步,用户任务的并行控制等。 网络操作系统和分布式操作系统的研究:就目前情形而言,网络系统的研究也还方兴未艾,基于ClientServer模型的分布式系统也已不断走向应用,完全分布式的系统还未成型,仍将是研究的热点问题。 2 基于多核的计算机系统 070918 here2 基于多核的计算机系统 多核平台的发展趋势 调度策略及算法 同步问题 死锁问题 2 基于多核的计算机系统
10、 2.1 多核平台的发展趋势多核平台的发展趋势 当今世界,计算平台正在发生着惊人的变化。 Intel, IBM, Sun, and AMD等国际大公司都以及宣布已经生产出在一个芯片上集成了多个可执行核的微处理器。 未来的计算平台,包括台式机、笔记本电脑、移动平台、嵌入式系统都将是基于多核架构的。 从半导体生产来看,单一的去追求主频的提升已经不大现实,所以现在通过多核来提高处理器性能。 半导体厂商愿意这么做,因为芯片的封装需要成本,多核可以节约成本。 多核的发展现在才是开始工业发展趋势.2H 20041H 20052H 20051H 20062H 2006IBM Power 4 and 5Dua
11、l Cores Since 2001IBM Power 6Dual Cores Since 2001IBM CellScalable multicoreSUN Olympus and Niagara8 Processor CoresAMD OpteronDual CoreIntel YonahDual Core MobileIntel Pentium Extreme3.2 GHz Dual CoreIntel Pentium D(Smithfield)Intel DempseyDual Core XeonIntel PaxvilleDual Core XeonIntel MontecitoDu
12、al Core IPFIntel TanglewoodDual Core IPFIntel WoodCrestDual Core Xeon快速的多核发展多核平台的发展趋势 利用现在的多核架构,开发者可以在真正并行的计算平台上进行程序开发。 多核平台给软件设计人员提供了更强大的性能支持。2 基于多核的计算机系统 2.2 调度策略及算法(Scheduling policy and algorithms)2.2 调度策略与算法 调度(Scheduling)目标 在系统运行过程中,由处理器(单个或多个)分配可执行的进程(Processes) 满足系统的特定要求,如: 吞吐量(throughput) 响
13、应时间(response time) 处理器运行效率(processor efficiency)2.2 调度策略与算法 在大多数系统中,这种调度策略被分成三个层次(不同的发生频率): 长期调度(Long-term Scheduling ) 中期调度(medium-term Scheduling) 短期调度( short-term Scheduling)2.2 调度策略与算法长期调度功能 判决程序是否进入系统运行 控制多道程序设计程度(Multiprogramming) 一旦允许,程序就成为系统进程,并进入进程队列,供短期调度使用。 在一些系统中,一些被创建的新进程如果在“交换出(swappin
14、g-out)”环境中,则该进程进入队列供中期调度使用。中期调度功能 是交换功能模块的一部分。 典型的应用,基于对多道程序设计程度的管理,中期调度作出是否“交换进( swapping-in )”的判决。 对于没有使用虚拟内存(virtual memory)的系统而言,内存管理仍然需要进行研究。 对“交换进”的判断 需要考虑“交换出”进程对内存的需求。短期调度功能 短期调度程序运行频繁。 对下一个需要执行的进程作出精细的判断。 短期调度程序的调用(事件触发): 当有会引起当前进程暂停或中止的事件(Event)发生的时候。 当事件发生会引起当前正在运行的进程具有比其它所有进程更高的先占性( pree
15、mpt )的时候。 举例:系统调用、I/O中断,时钟中断等事件的发生。调度策略决策模式 非抢占式(Non-preemptive) 一旦某个进程处在运行状态,这个进程将持续运行直至该线程因为等待I/O准备好或需要对操作系统请求其它服务,而不得不中断本身的运行。 抢占式( Preemptive) 操作系统将当前正在运行的进程中断,并将该进程转到“准备好”状态。调度方法 先到先服务(First Come First Service:FCFS) 循环法(Round Robin) 最短执行时间进程优先策略(Shortest Process Next:SPN) 最短剩余运行时间进程优先策略(Shortes
16、t Remaining Time:SRT)先到先服务 最简单直接的调度策略,也称为FIFO。 当某个进程准备好的时候,就进入就绪队列”(Ready queue)等待处理。 当当前运行的进程停止运行,则“就绪队列”中最先进入的进程将被运行。循环法 周期性的产生时钟中断。 当中断发生,当前正在运行的进程被放置到“就绪队列”,然后按照FCFS原则选择下一个已经准备好的进程运行。 最短运行时间进程优先策略 FCFS策略中,因为是严格按照先到先服务的策略,有运行时间很短的进程可能会等待运行时间长的进程结束后才能得到运行机会。 是非抢占式策略。具有最短执行时间的进程被选为下一个运行的进程。 在“就绪队列”中,最短运行时间的进程将跳到队列队首。最短剩余运行时间进程优先策略 按照最短剩余运行时间的策略进行下一个被运行的进程的选择依据。 抢占式。 方法同SPN。