多核程序设计多核程序设计第一章第一章多核技术导论多核技术导论(3)(3)主讲:李金刚哈尔滨理工大学软件学院主讲:李金刚操作系统简介操作系统的名称:监控(督)程序(系统)(Monitor)执行系统(程序)(ExecutiveSystem(program))控制系统(程序)(ControlSystemprogram))管理程序(Supervisor,SupervisorySystem)核心程序(Kernel)操作系统(OperatingSystem)哈尔滨理工大学软件学院主讲:李金刚用户与操作系统的关系普通用户软件设计师操作系统设计师计算机硬件操作系统实用程序应用程序哈尔滨理工大学软件学院主讲:李金刚操作系统是什么从计算机系统组成观点――操作系统是系统软件计算机系统组成:软件:应用软件系统软件(操作系统等)硬件:输入/输出(I/O)设备存储器(内存)中央处理器(CPU)哈尔滨理工大学软件学院主讲:李金刚操作系统是什么从资源管理程序观点--操作系统是系统资源管理者(OperatingSystemasaResourceManager)操作系统是系统资源管理程序,它用于控制和管理计算机系统的硬件和软件资源。计算机系统资源:操作系统模块:软件:程序、数据文件系统硬件:I/O设备设备管理存储器存储器管理处理器处理器(进程)管理哈尔滨理工大学软件学院主讲:李金刚操作系统是什么从软件分层、扩充机器的观点――操作系统是扩充裸机的第一层系统软件TheLayersOfASystemProgramInterfaceHumansUserProgramsO.S.InterfaceO.S.HardwareInterface/PrivilegedInstructionsDisk/Tape/Memory哈尔滨理工大学软件学院主讲:李金刚操作系统是什么从服务用户的观点――操作系统是用户与裸机之间接口系统提供的接口有二类:命令级接口,它提供一组键盘或鼠标命令。程序级接口,它提供一组系统调用Systemcalls,即OS中功能,供用户程序和其它程序调用。哈尔滨理工大学软件学院主讲:李金刚操作系统定义操作系统是一组有效控制和管理计算机系统的硬件和软件资源、合理地组织计算机工作流程以及方便用户的程序集合。有效(efficient):系统效率,资源利用率(如:CPU利用的充足与否,内存、外部设备是否忙碌)合理:公平与否,如果不公平则会产生“死锁”或“饥饿”方便(convenience):用户界面,编程接口哈尔滨理工大学软件学院主讲:李金刚操作系统所提供的服务程序执行调入一个程序进入内存并运行之的系统能力I/O操作由于用户程序不能直接执行I/O操作,操作系统必须提供完成I/O操作的手段文件系统操纵程序能够读、写、创建和删除文件通信运行的进程间在同一计算机或由网络连接的不同系统中交换信息。通过共享存储器或消息传递实现出错检测通过探测在CPU与内存硬件中,在I/O设备中,或在用户程序中的错误,确保正确运算资源分配(Resourceallocation)AccountingProtection哈尔滨理工大学软件学院主讲:李金刚调度策略及算法Schedulingpolicyandalgorithms调度(Scheduling)目标在系统运行过程中,由处理器(单个或多个)分配可执行的进程(Processes)满足系统的特定要求,如:吞吐量(throughput)响应时间(responsetime)处理器运行效率(processorefficiency)哈尔滨理工大学软件学院主讲:李金刚调度策略及算法Schedulingpolicyandalgorithms在大多数系统中,这种调度策略被分成三个层次(不同的发生频率):长期调度(Long-termScheduling)中期调度(medium-termScheduling)短期调度(short-termScheduling)哈尔滨理工大学软件学院主讲:李金刚调度策略及算法Schedulingpolicyandalgorithms哈尔滨理工大学软件学院主讲:李金刚长期调度功能判决程序是否进入系统运行控制多道程序设计程度(Multiprogramming)一旦允许,程序就成为系统进程,并进入进程队列,供短期调度使用。在一些系统中,一些被创建的新进程如果在“交换出(swapping-out)”环境中,则该进程进入队列供中期调度使用。哈尔滨理工大学软件学院主讲:李金刚中期调度功能是交换功能模块的一部分。典型的应用,基于对多道程序设计程度的管理,中期调度作出是否“交换进(swapping-in)”的判决。对于没有使用虚拟内存(virtualmemory)的系统而言,内存管理仍然需要进行研究。对“交换进”的判断需要考虑“交换出”进程对内存的需求。哈尔滨理工大学软件学院主讲:李金刚短期调度功能短期调度程序运行频繁。对下一个需要执行的进程作出精细的判断。短期调度程序的调用(事件触发):当有会引起当前进程暂停或中止的事件(Event)发生的时候。当事件发生会引起当前正在运行的进程具有比其它所有进程更高的先占性(preempt)的时候。举例:系统调用、I/O中断,时钟中断等事件的发生。哈尔滨理工大学软件学院主讲:李金刚调度策略决策模式非抢占式(Non-preemptive)一旦某个进程处在运行状态,这个进程将持续运行直至该线程因为等待I/O准备好或需要对操作系统请求其它服务,而不得不中断本身的运行。抢占式(Preemptive)操作系统将当前正在运行的进程中断,并将该进程转到“准备好”状态。哈尔滨理工大学软件学院主讲:李金刚调度方法先到先服务(FirstComeFirstService:FCFS)循环法(RoundRobin)最短执行时间进程优先策略(ShortestProcessNext:SPN)最短剩余运行时间进程优先策略(ShortestRemainingTime:SRT)哈尔滨理工大学软件学院主讲:李金刚先到先服务最简单直接的调度策略,也称为FIFO。当某个进程准备好的时候,就进入就绪队列”(Readyqueue)等待处理。当当前运行的进程停止运行,则“就绪队列”中最先进入的进程将被运行。哈尔滨理工大学软件学院主讲:李金刚循环法周期性的产生时钟中断。当中断发生,当前正在运行的进程被放置到“就绪队列”,然后按照FCFS原则选择下一个已经准备好的进程运行。哈尔滨理工大学软件学院主讲:李金刚最短运行时间进程优先策略FCFS策略中,因为是严格按照先到先服务的策略,有运行时间很短的进程可能会等待运行时间长的进程结束后才能得到运行机会。是非抢占式策略。具有最短执行时间的进程被选为下一个运行的进程。在“就绪队列”中,最短运行时间的进程将跳到队列队首。哈尔滨理工大学软件学院主讲:李金刚最短剩余运行时间进程优先策略按照最短剩余运行时间的策略进行下一个被运行的进程的选择依据。抢占式。方法同SPN。哈尔滨理工大学软件学院主讲:李金刚操作系统对多核处理器的支持方法操作系统对多核处理器的支持方法调度与中断对任务的分配进行优化。使同一应用程序的任务尽量在一个核上执行。对任务的共享数据优化。由于CMP体系结构共享二级缓存,可以考虑改变任务在内存中的数据分布,使任务在执行时尽量增加二级缓存的命中率。对任务的负载均衡优化。当任务在调度时,出现了负载不均衡,考虑将较忙处理器中与其他任务最不相关的任务迁移,以达到数据的冲突量小。输入输出系统存储管理与文件系统虚拟化技术平台虚拟化资源虚拟化哈尔滨理工大学软件学院主讲:李金刚ThankyouThankyou