嵌入式操作系统原理.pptx
《嵌入式操作系统原理.pptx》由会员分享,可在线阅读,更多相关《嵌入式操作系统原理.pptx(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式操作系统原理嵌入式操作系统原理嵌入式LINUX操作系统开发体系结构概览进程与调度管理内存管理文件系统系统调用Evaluation only.Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.第1页/共39页体系结构概览Eva
2、luation only.Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.第2页/共39页体系结构概览内核的功能l l进程控制进程控制(process management)(process management)l l内存管理
3、内存管理(Memory management)(Memory management)l l文件系统管理文件系统管理(Filesystem management)(Filesystem management)l l设备驱动程序设备驱动程序(Device control)(Device control)l l网络网络(Networking)(Networking)Evaluation only.Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slide
4、s for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.第3页/共39页内核层次内核在系统中的位置l l用户进程用户进程l l系统调用接口系统调用接口l l内核内核l l硬件硬件什么是Linux内核?l l从程序员的角度从程序员的角度l l从用户的角度从用户的角度Evaluation only.Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2
5、.0.0.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.第4页/共39页系统调用内核提供的一套C语言函数库称为系统调用应用程序使用系统调用完成编程任务系统调用分类l l进程管理进程管理l l进程间通信进程间通信(IPC)(IPC)l l文件系统管理文件系统管理l l网络编程网络编程(Socket)(Socket)Evaluation only.Evaluation only.Cr
6、eated with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.第5页/共39页Linux结构Evaluation only.Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0
7、.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.第6页/共39页Linux进程管理Linux是一个多任务多用户操作系统一个任务(task)就是一个进程(process)每一个进程都具有一定的功能和权限,它们都运行在各自独立的虚拟地址空间。在Linux中,进程是系统资源分配的基本单位,也是使用CPU运行的基本调度单位。Evaluation only.Evaluation only.
8、Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.第7页/共39页 Linux进程概述 程序映像程序映像l l存放在磁盘上的可执行文件的代码和数据的集合称为可执行映象存放在磁盘上的可执行文件的代码和数据的集合称为可执行映象(Executable Image)(E
9、xecutable Image),即程序即程序l l当一个程序(可执行映象)装入系统中运行时,它就形成了一个进程当一个程序(可执行映象)装入系统中运行时,它就形成了一个进程进程映像进程映像l l进程是由正文段进程是由正文段(text)(text)、用户数据段、用户数据段(user segment)(user segment)和系统数据段和系统数据段(system segment)(system segment)组成组成的一个动态实体。的一个动态实体。l l正文段中存放着进程要执行的指令代码,具有只读的属性,正文段中存放着进程要执行的指令代码,具有只读的属性,l l用户数据段是进程在运行过程中处
10、理数据的集合,它们是进程直接进行操作的所有数据,用户数据段是进程在运行过程中处理数据的集合,它们是进程直接进行操作的所有数据,以及进程使用的进程堆栈。以及进程使用的进程堆栈。l l系统数据段存放着进程的控制信息。其中包括进程控制块系统数据段存放着进程的控制信息。其中包括进程控制块PCBPCB。Evaluation only.Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0
11、.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.第8页/共39页进程控制块PCB进程控制块进程控制块PCBPCB是名字为是名字为task_structtask_struct的数据结构,称为任务结构体的数据结构,称为任务结构体任务结构体中容纳了一个进程的所有信息,是系统对进程进行管理和控制的有效手段,是系任务结构体中容纳了一个进程的所有信息,是系统对进程进行管理和控制的有效手段,是系统实现进程调度的主要依据统实现进程调度的主要依据当一个进程被创建时,系统就为该进程建立一个当一个进程被创建时,系统就为
12、该进程建立一个task_structtask_struct任务结构体。当进程运行结束时,任务结构体。当进程运行结束时,系统撤消该进程的任务结构体系统撤消该进程的任务结构体LinuxLinux在内存空间中开辟了一个专门的区域存放所有进程的任务结构体,在操作系统的内核空在内存空间中开辟了一个专门的区域存放所有进程的任务结构体,在操作系统的内核空间设置了一个间设置了一个tasktask数组,该数组的每一个元素是一个指向任务结构体的指针数组,该数组的每一个元素是一个指向任务结构体的指针,所以所以tasktask数组又数组又称为称为tasktask向量。向量。进程的任务结构体是进程存在的唯一标志,调度程
13、序维护进程的任务结构体是进程存在的唯一标志,调度程序维护currentcurrent指针,它指向当前正在运行指针,它指向当前正在运行的进程。的进程。Evaluation only.Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.
14、第9页/共39页Linux调度分析Linux进程的状态变化Evaluation only.Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.第10页/共39页进程状态运行态:进程正在使用运行态:进程正在使用CPUCPU运行的状态。
15、处于运行态的进程又称为当前进程(运行的状态。处于运行态的进程又称为当前进程(current current processprocess)可运行态:进程已分配到除可运行态:进程已分配到除CPUCPU外所需要的其它资源,等待系统把外所需要的其它资源,等待系统把CPUCPU分配给它之后即可投分配给它之后即可投入运行入运行等待态:又称睡眠态,它是进程正在等待某个事件或某个资源时所处的状态。等待态:又称睡眠态,它是进程正在等待某个事件或某个资源时所处的状态。等待态进一步等待态进一步分为可中断的等待态和不可中断的等待态。处于可中断等待态的进程可以由信号分为可中断的等待态和不可中断的等待态。处于可中断等待
16、态的进程可以由信号(signal)(signal)解除解除其等待态。处于不可中断等待态的进程,一般是直接或间接等待硬件条件。其等待态。处于不可中断等待态的进程,一般是直接或间接等待硬件条件。它只能用特定的它只能用特定的方式来解除,例如使用唤醒函数方式来解除,例如使用唤醒函数wake_up()wake_up()等等暂停态:进程需要接受某种特殊处理而暂时停止运行所处的状态。通常进程在接受到外部进暂停态:进程需要接受某种特殊处理而暂时停止运行所处的状态。通常进程在接受到外部进程的某个信号进入暂停态,例如,正在接受调试的进程就处于这种状态。程的某个信号进入暂停态,例如,正在接受调试的进程就处于这种状态
17、。僵死态:进程的运行已经结束,但它的任务结构体仍在系统中。僵死态:进程的运行已经结束,但它的任务结构体仍在系统中。Evaluation only.Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.第11页/共39页核心态和用户态L
18、inuxLinux的进程处理机上运行时,处理机提供了两种不同的的执行状态,核心态的进程处理机上运行时,处理机提供了两种不同的的执行状态,核心态(kernel mode)(kernel mode)和用户态和用户态(user mode)(user mode)。核心态又称系统态,它具有较高的特权,能执行所有的机器指令,包括由操核心态又称系统态,它具有较高的特权,能执行所有的机器指令,包括由操作系统执行的特权指令,能访问所有的寄存器和存储区域,能直接控制所有作系统执行的特权指令,能访问所有的寄存器和存储区域,能直接控制所有的系统资源。的系统资源。LinuxLinux在执行内核程序时是处于核心态下。在执
19、行内核程序时是处于核心态下。用户态是进程的普通执行状态,在用户态下进程具有较低的特权,用户态是进程的普通执行状态,在用户态下进程具有较低的特权,只能执行只能执行规定的机器指令,不能执行特权指令。进程在用户态下只能访问进程的存储规定的机器指令,不能执行特权指令。进程在用户态下只能访问进程的存储空间。在用户态下进程不能与系统硬件相互作用,不能访问系统资源。空间。在用户态下进程不能与系统硬件相互作用,不能访问系统资源。Evaluation only.Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.
20、0.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.第12页/共39页Linux进程调度方式Linux系统采用抢占调度方式,又称可剥夺调度方式。采用这种调度方式时,对于当前运行的进程而言,当有更紧急的进程到来时,系统将剥夺当前进程使用处理机的权利,立即停止它在处理机上的运行,而把处理机分配给那个更紧急的进程。Linux采用时间片轮转法。对某个运行中的进程,当它的时间片用完时,系统将
21、停止它的运行并把处理机分配给其它进程。Evaluation only.Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.第13页/共39页Linux进程调度方法Linux进程调度采用动态优先级法,调度对象是可运行队列,可运行队列中
22、优先级大的进程首先得到CPU投入运行。进程在运行中,counter的代表进程的动态优先级。Linux采取了加权的方法来保证实时进程优先于普通进程。Evaluation only.Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.第
23、14页/共39页进程调度时机时机时机1 1进程状态发生变化时。进程状态发生变化时。l l处于运行态下的进程要等待某种资源,处于运行态下的进程要等待某种资源,l l运行态下的进程在程序执行完毕后,一般通过调用内核函数运行态下的进程在程序执行完毕后,一般通过调用内核函数do_exit()do_exit()终止终止运行并转入僵死态。运行并转入僵死态。l l处于等待态的进程被唤醒后,将加入到可运行队列中时。处于等待态的进程被唤醒后,将加入到可运行队列中时。l l进程从运行态转入暂停态时。进程从运行态转入暂停态时。l l进程从暂停态成为可运行态时。进程从暂停态成为可运行态时。时机时机2 2当前进程时间片
24、用完时。当前进程时间片用完时。时机时机3 3进程从系统调用返回到用户态时。进程从系统调用返回到用户态时。时机时机4 4中断处理后,进程返回到用户态时。中断处理后,进程返回到用户态时。Evaluation only.Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-201
25、1 Aspose Pty Ltd.第15页/共39页Linux内存管理模式MMUMMU内存管理内存管理l lMMUMMU是内存管理单元是内存管理单元l l内存的管理单位是页内存的管理单位是页(page),(page),通常是通常是4K4K或或8K8K虚拟地址与物理地址虚拟地址与物理地址l l物理地址可以位于物理地址可以位于RAM/FLASH/DISKRAM/FLASH/DISKl l经过经过MMU,MMU,虚拟地址可以转化成物理地址虚拟地址可以转化成物理地址l lMMUMMU可以在转换过程中检查权限,以保护内存不受非法访问可以在转换过程中检查权限,以保护内存不受非法访问l l如果没有如果没有M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 操作系统 原理
限制150内