嵌入式系统高级部分-嵌入式操作系统导论.ppt
《嵌入式系统高级部分-嵌入式操作系统导论.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统高级部分-嵌入式操作系统导论.ppt(110页珍藏版)》请在三一办公上搜索。
1、嵌入式系统原理与应用,信息安全工程学院上海交通大学,操作系统基础,内核,内核(kernel)是操作系统的内部核心程序,它向外部提供了对计算机系统资源进行请求和管理的调用接口和服务,内核,可以将操作系统的代码分成两部分:内核所在的地址空间称为内核空间;而在内核以外,剩下的程序统称为外部管理程序,它们大部分是对外围设备的管理和界面操作,外部管理程序与用户进程所占据的地址空间称为外部空间。通常,一个程序会跨越两个空间。当执行到内核空间的一段代码时,称程序处于内核态当程序执行到外部空间代码时,称程序处于用户态。,操作系统分类1,按照操作系统的内核模式可以分为:微内核大内核混合式内核,微内核模式,硬件,
2、内核级,用户级,微内核,客户进程,设备驱动,文件服务,进程服务,其他管理,微内核,Mach 首先使用微内核结构通过划分系统程序和用户程序,把所有不必要的部件移出内核,形成一个小内核微内核提供最少量的进程管理、存储管理,以及通信功能,微内核特点,接口一致(Uniform interface):所有进程请求使用统一的接口,进程不需要区分内核模式和用户模式服务,由于这些服务全部通过消息传递提供。,微内核特点,扩展性(Extensibility):由于新型硬件设备和新型软件技术不断发展,任何操作系统不可避免地需要修改,微内核结构允许加入新的服务,支持在同一功能区内提供多重服务。使用微内核结构,加入一个
3、新特点仅仅需要修改或者加入被选择的服务,新的或者修改的服务影响限制在系统的一个子集,进一步地,修改不需要建立一个新的内核。,微内核特点,移植性(Portability):在微内核结构中,所有与特定处理机的代码仅仅存在微内核中,因此,需要将这个系统移植到新的处理机需要作的变化可以尽可能地少。,微内核特点,可靠性(Reliability):软件规模越大,确保可靠性越难。尽管模块化设计帮助我们增强了可靠性,但是微内核结构带来了更多的收益。一个小型微内核可以严格地进行测试,它使用少量的应用程序接口有助于内核模式之外的操作系统服务代码提高质量。系统只需要掌握一个有限数量的(API),程序员之间的相互交互
4、也有限,因而对于系统其它组件的影响最小。,微内核特点,分布系统支持(Distributed system support):微内核适合于由分布操作系统控制的群集系统。当一个消息从客户发到服务器进程,该消息必须包含请求服务的标识符。当一个分布系统(如群集系统)被配置为所有的进程和服务有唯一的标识符,那么似乎在内核模式下存在单一的系统映象,一个进程能够在不知道目标服务驻留在哪台机器情况下发送消息。,微内核特点,面向对象操作系统(Object-oriented operating system):微内核结构非常适合面向对象操作系统的要求,一个面向对象的方法有助于一个微内核的设计和操作系统的模块化扩充
5、。将微内核结构和面向对象操作系统原理结合起来的例子是组件的使用,组件是清楚定义了接口的对象,它们能够互连起来以预制建筑块的方式形成软件,使用组件之间的接口实现组件之间的全部相互作用。,大内核模式,硬件,进程管理,虚存管理,I/O设备管理,内部进程通信,文件系统,应用程序,内核级,用户级,Windows内核,Windows内核变化,Windows号称内核版本7将走向小内核模式,混合式内核模式,硬件,进程管理,虚存管理,I/O设备管理,内部进程通信,文件系统,用户进程,内核级,用户级,混合式内核,其他管理,混合式内核,Linux内核属于混合式内核参与Linux系统开发的程序员大多数为世界各地的黑客
6、们。比起结构的清晰,他们更加注重功能的强大和高效率的代码。他们将大量的精力花在优化代码上,而这样的全局性优化必然以损失结构精炼作为代价,导致Linux中的每个部件都不能被轻易拆出,否则必然破坏整体效率。,Linux内核,虽然Linux是一个混合式内核操作系统,但它与传统的UNIX操作系统不同。在普通单一内核系统中,所有内核代码都是被静态编译和链接的。而在Linux中,可以动态装入和卸载内核中的部分代码。Linux中将这样的代码段称做模块(module),并对模块给予了强有力的支持。在Linux中,可以在需要时自动装入和卸载模块。,Linux内核的结构,LINUX操作系统的结构,2.4 vs.2
7、.6内核的实时性比较,Linux 内核,Linux 内核主要由5 个模块构成,它们分别是:进程调度模块:控制进程对CPU 资源的使用 内存管理模块:确保所有进程能够安全地共享机器主内存区;虚拟内存管理 文件系统模块:支持对外部设备的驱动和存储 进程间通信模块:支持多种进程间的信息交换方式 网络接口模块:提供对多种网络通信标准的访问并支持许多网络硬件,内核模块之间的依赖关系,内核模块之间的依赖关系,所有的模块都与进程调度模块存在依赖关系。因为它们都需要依靠进程调度程序来挂起(暂停)或重新运行它们的进程。通常,一个模块会在等待硬件操作期间被挂起,而在操作完成后才可继续运行。,内核模块之间的依赖关系
8、,进程调度子系统需要使用内存管理器来调整一特定进程所使用的物理内存空间。进程间通信子系统则需要依靠内存管理器来支持共享内存通信机制。虚拟文件系统也会使用网络接口来支持网络文件系统(NFS),同样也能使用内存管理子系统来提供内存虚拟盘(ramdisk)设备。而内存管理子系统也会使用文件系统来支持内存数据块的交换操作。,操作系统分类2,按照操作系统的架构可以分为:整体 OS分层 OS客户机/服务器 OS虚拟机OS,整体式操作系统,整体式/单块式操作系统Monolithic OS操作系统是包含了不同模块的一整块代码集难于调试任何一处修改都可能影响其他模块Bug的修正可能带来其他Bug的出现任何过程可
9、以调用其它任何过程,没有考虑过程相互之间的依赖性和互操作性,整体式操作系统结构,硬 件,系统服务,用户态,核心态,应用程序,应用程序,整体式结构,分层操作系统,分层操作系统Layered OS比Monolithic OS好,如OSI Layer操作系统划分为若干层,在低层上构建高层。底层(0层)为硬件;最高层(N层)为用户层考虑模块化,层的选择是每层只使用低层次的功能和服务缺点有时操作系统很难按照OSI进行分层,层次结构内核,层次结构,系统结构-简单结构,MS-DOS-以最小的空间提供最多的功能不划分模块尽管MS-DOS有某种结构,其接口和功能层没有划分清楚,MS-DOS,UNIX,UNIX-
10、受硬件功能限制,早期UNIX只是有限的结构化。UNIX包括2个分离的部分系统程序内核包括了在物理硬件之上,系统调用之下的一切提供文件系统,CPU调度,存储管理,和其他操作系统功能;每一层有大量的功能,UNIX系统结构,操作系统层,THE OS的层次化结构,THE操作系统首先使用层次化设计。有如下六层:,OS/2层次化结构,DeltaCORE的体系结构:层次模块结构,应用程序,任务管理,硬 件,用户扩展处理,调度管理,硬件抽象层,应用编程接口,内存管理,中断管理,时钟/定时器管理,I/O管理,出错处理,同步、通信管理(消息队列,信号量,事件,异步信号)),分层次,模块化,客户机/服务器操作系统,
11、客户机/服务器操作系统Client-Server OS最新的模型最小的有限的操作系统功能(scheduler and synchronization primitive)其他所有功能当做系统任务运行应用软件作为客户机通过系统调用要求服务器服务软件提供服务。,客户机/服务器操作系统,优点易于调试将任务分配多个微处理器上非常简单。可以动态装载或卸载各种模块。缺点由于内存保护,系统消耗较大必须保护系统进程当应用软件切换到服务器内存空间时需要消耗时间。,客户/服务器结构,硬 件,进程服务,用户态,核心态,应用程序客户,内存服务,微内核,文件服务,网络服务,显示服务,发送,应答,客户/服务器结构(微内核
12、结构),QNX4.25的体系结构,用户模式,应用,应用,应用,网络管理器,图形管理器,设备管理器,文件系统管理器,网络驱动,图形驱动,设备驱动,文件系统驱动,硬件,内核模式 内核(微内核),QNX4.25的体系结构:客户/服务器结构,Windows 客户机/服务器结构,虚拟机系统,例如:windowsNT下的MS-dos方式,操作系统分类3,操作系统按照调度方式区分可剥夺型内核不剥夺型内核,不可剥夺型内核,不可剥夺型内核(或非抢占式内核,Non-Preemptive Kernel)每个任务自我放弃CPU的所有权。各个任务彼此合作共享一个CPU。异步事件还是由中断服务来处理。中断服务可以使一个高
13、优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。,不可剥夺型内核优点,响应中断快。在任务级,允许使用不可重入函数。每个任务都可以调用非可重入性函数,而不必担心其它任务可能正在使用该函数,从而造成数据的破坏。因为每个任务要运行到完成时才释放CPU的控制权。当然该不可重入型函数本身不得有放弃CPU控制权的企图。几乎不需要使用信号量保护共享数据。运行着的任务占有CPU,而不必担心被别的任务抢占。但这也不是绝对的,在某种情况下,信号量还是用得着的。处理共享I/O设备时仍需要使用互斥型信
14、号量。例如,在打印机的使用上,仍需要满足互斥条件。,不可剥夺型内核缺点,最大缺陷在于其响应时间。高优先级的任务已经进入就绪态,但还不能运行,要等,也许要等很长时间,直到当前运行着的任务释放CPU。与前后系统一样,不可剥夺型内核的任务级响应时间是不确定的,不知道什么时候最高优先级的任务才能拿到CPU的控制权,完全取决于应用程序什么时候释放CPU。不可剥夺型内核允许每个任务运行,直到该任务自愿放弃CPU的控制权。中断可以打入运行着的任务。中断服务完成以后将CPU控制权还给被中断了的任务。任务级响应时间要大大好于前后系统,但仍是不可知的,商业软件几乎没有不可剥夺型内核。,不可剥夺型内核运行原理,低优
15、先级任务,ISR,低优先级任务,高优先级任务,任务正在运行,中断到来,中断原来任务,执行中断服务子程序,使一个 高优先级任务进入就绪状态 由于是不可剥夺型内核,低优 先级任务未执行完毕,高优 先级任务不能立即执行,中断返回,继续执行原来任务,任务执行完毕,控制权交给 高优先级、已就绪任务,高优先级任务开始执行,可剥夺型内核,当系统响应时间很重要时,要使用可剥夺型内核(或抢占式内核,Preemptive Kernel)。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻
16、得到了CPU的控制权。如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。,可剥夺型内核,最高优先级的任务什么时候可以执行,可以得到CPU的控制权是可知的。任务级响应时间得以最优化。使用可剥夺型内核时,应用程序不应直接使用不可重入型函数。调用不可重入型函数时,要满足互斥条件,这一点可以用互斥型信号量来实现。如果调用不可重入型函数时,低优先级的任务CPU的使用权被高优先级任务剥夺,不可重入型函数中数据有可能被破坏。可剥夺型内核总是让就绪态的高优先级的任务先运行,中断服务程序可以抢占CPU,到中断服务完成时,内核让此时优先级最高的任务运行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 高级 部分 操作系统 导论
链接地址:https://www.31ppt.com/p-6415039.html