嵌入式操作系统原理

上传人:壹****1 文档编号:588040242 上传时间:2024-09-07 格式:PPT 页数:39 大小:1,005.52KB
返回 下载 相关 举报
嵌入式操作系统原理_第1页
第1页 / 共39页
嵌入式操作系统原理_第2页
第2页 / 共39页
嵌入式操作系统原理_第3页
第3页 / 共39页
嵌入式操作系统原理_第4页
第4页 / 共39页
嵌入式操作系统原理_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《嵌入式操作系统原理》由会员分享,可在线阅读,更多相关《嵌入式操作系统原理(39页珍藏版)》请在金锄头文库上搜索。

1、嵌入式操作系统原理嵌入式操作系统原理 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.嵌入式LINUX操作系统开发l体系结构概览l进程与调度管理l内存管理l文件系统l系统调用Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.体系结构概览Eva

2、luation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.体系结构概览l内核的功能l进程控制(process management)l内存管理(Memory management)l文件系统管理(Filesystem management)l设备驱动程序(Device control)l网络(Networking)Evaluation only.Created with Aspose.Slides for .NET 3.5 Clie

3、nt Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.内核层次l内核在系统中的位置l用户进程l系统调用接口l内核l硬件l什么是Linux内核?l从程序员的角度l从用户的角度Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.系统调用l内核提供的一套C语言函数库称为系统调用l应用程序使用系统调用完成编程任务l系统调用分类l进程管理l进程间通信(IPC)l文件系统管理l网

4、络编程(Socket)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Linux结构Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Linux进程管理lLinux是一个多任务多用户操作系统l一个任务(task)就是一个进程(process)

5、l每一个进程都具有一定的功能和权限,它们都运行在各自独立的虚拟地址空间。l在Linux中,进程是系统资源分配的基本单位,也是使用CPU运行的基本调度单位。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. Linux进程概述 l程序映像l存放在磁盘上的可执行文件的代码和数据的集合称为可执行映象(Executable Image),即程序l当一个程序(可执行映象)装入系统中运行时,它就形成了一个进程l进程映像l进程是由

6、正文段(text)、用户数据段(user segment)和系统数据段(system segment)组成的一个动态实体。l正文段中存放着进程要执行的指令代码,具有只读的属性,l用户数据段是进程在运行过程中处理数据的集合,它们是进程直接进行操作的所有数据, 以及进程使用的进程堆栈。l系统数据段存放着进程的控制信息。其中包括进程控制块PCB。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.进程控制块PCBl进程控制块P

7、CB是名字为task_struct的数据结构,称为任务结构体l任务结构体中容纳了一个进程的所有信息,是系统对进程进行管理和控制的有效手段,是系统实现进程调度的主要依据l当一个进程被创建时,系统就为该进程建立一个task_struct任务结构体。当进程运行结束时,系统撤消该进程的任务结构体lLinux在内存空间中开辟了一个专门的区域存放所有进程的任务结构体,在操作系统的内核空间设置了一个task数组,该数组的每一个元素是一个指向任务结构体的指针,所以task数组又称为task向量。l进程的任务结构体是进程存在的唯一标志,调度程序维护current指针,它指向当前正在运行的进程。Evaluatio

8、n only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Linux调度分析lLinux进程的状态变化Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.进程状态l运行态:进程正在使用CPU运行的状态。处于运行态的进程又称为当前进程(current process)l可运

9、行态:进程已分配到除CPU外所需要的其它资源,等待系统把CPU分配给它之后即可投入运行l等待态:又称睡眠态,它是进程正在等待某个事件或某个资源时所处的状态。 等待态进一步分为可中断的等待态和不可中断的等待态。处于可中断等待态的进程可以由信号(signal)解除其等待态。处于不可中断等待态的进程,一般是直接或间接等待硬件条件。 它只能用特定的方式来解除,例如使用唤醒函数wake_up()等l暂停态:进程需要接受某种特殊处理而暂时停止运行所处的状态。通常进程在接受到外部进程的某个信号进入暂停态,例如,正在接受调试的进程就处于这种状态。l僵死态:进程的运行已经结束,但它的任务结构体仍在系统中。Eva

10、luation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.核心态和用户态lLinux的进程处理机上运行时,处理机提供了两种不同的的执行状态,核心态(kernel mode)和用户态(user mode)。l核心态又称系统态,它具有较高的特权,能执行所有的机器指令,包括由操作系统执行的特权指令,能访问所有的寄存器和存储区域,能直接控制所有的系统资源。 Linux在执行内核程序时是处于核心态下。l用户态是进程的普通执行状态,在用户态下进

11、程具有较低的特权, 只能执行规定的机器指令,不能执行特权指令。进程在用户态下只能访问进程的存储空间。在用户态下进程不能与系统硬件相互作用,不能访问系统资源。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Linux进程调度方式lLinux系统采用抢占调度方式,又称可剥夺调度方式。采用这种调度方式时,对于当前运行的进程而言,当有更紧急的进程到来时,系统将剥夺当前进程使用处理机的权利,立即停止它在处理机上的运行,而把处理

12、机分配给那个更紧急的进程。lLinux采用时间片轮转法。对某个运行中的进程,当它的时间片用完时,系统将停止它的运行并把处理机分配给其它进程。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Linux进程调度方法lLinux进程调度采用动态优先级法,调度对象是可运行队列,l可运行队列中优先级大的进程首先得到CPU投入运行。l进程在运行中,counter的代表进程的动态优先级。lLinux采取了加权的方法来保证实时进程优

13、先于普通进程。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.进程调度时机l时机1进程状态发生变化时。l处于运行态下的进程要等待某种资源,l运行态下的进程在程序执行完毕后,一般通过调用内核函数do_exit()终止运行并转入僵死态。l处于等待态的进程被唤醒后,将加入到可运行队列中时。l进程从运行态转入暂停态时。l进程从暂停态成为可运行态时。l时机2当前进程时间片用完时。l时机3进程从系统调用返回到用户态时。l时机4中

14、断处理后,进程返回到用户态时。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Linux内存管理模式lMMU内存管理lMMU是内存管理单元l内存的管理单位是页(page),通常是4K或8Kl虚拟地址与物理地址l物理地址可以位于RAM/FLASH/DISKl经过MMU,虚拟地址可以转化成物理地址lMMU可以在转换过程中检查权限,以保护内存不受非法访问l如果没有MMU,进程与内核之间无法隔离和保护,系统容易崩溃17Eva

15、luation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Linux的三级目录lLinux采用三级目录底层MMU支持实现存储管理,可以适应64/32位CPUl三级目录是页面目录、中间目录和页表Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.进程空间和内核空

16、间l进程名义上有4G的空间l实际上只有3G属于进程本身l虚拟系统空间占据高位1GEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Linux内核启动分析l搭建开发环境l宿主机和目标机l交叉编译l编译引导程序(u-boot或者vivi)l编译内核(mizi linux)l编译根文件系统l使用JTAG将编译好的映像写入目标板l可以写入到Nor Flash当中l可以写入到Nand Flash当中Evaluation only

17、.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Linux内核启动分析l上电lCPU根据设置读取Flash中的BootloaderlBootloader作两段式加载lBootload将控制权移交给内核lBootloader事先检测硬件参数,例如物理地址lBootloader加载压缩的内核映像l内核自解压l内核将自身定位到正确的物理地址Evaluation only.Created with Aspose.Slides for .NET 3.5 C

18、lient Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.内核启动流程l执行init初始化进程l启动一个shelll执行启动脚本文件l显示登录提示符等待登录Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.嵌入式LINUX操作系统内核l选择内核l内核配置l编译内核l安装内核Evaluation only.Created with Aspose.Slides for

19、 .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. Linux内核源码l内核目录结构:l/usr/src/Linux-*l/arch(重点)l/driversl/fsl/includel/initl/ipcl/kernell/mml/netEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.内核配置l进入到内核源代码目录lcd /usr

20、/src/linux-2.*lmake configlmake xconfiglmake menuconfiglmakeEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.编译生成的文件lvmlinuxl未压缩的Linux内核lvarch/boot/zImagel经zlib压缩后的Linux内核lvarch/boot/bzImagel经zlib压缩后的Linux内核,b是指big,压缩狠l/boot/vmlinuz-l经

21、zlib压缩后的Linux内核Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.编译生成的文件lv/boot/System.map-l内核符号地址l/boot/initrd-.imglramdisk,要挂载的根文件系统l/lib/modules/l模块lvmodules.depl模块依赖文件Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pr

22、ofile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.裁剪Linuxl目的是创建嵌入式Linuxl嵌入式硬件资源有限,所以要裁剪软件l裁剪的对象包括:lLinux内核l库l守护进程lGUIEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.裁剪Linuxl选择合适的文件系统lext2,ext3,jffs2l模块机制l网络协议l无用的驱动程序l调试信息l裁剪的技术要求l能省就省,

23、能小就小,能快就快Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.安装内核l移植相关的文件l相关文件和目录larch/arm/config.inlarch/arm/Makefilelarch/arm/boot/Makefilelarch/arm/mach-s3c2410/*linclude/asm-arm/arch-s3c2410/*larch/arm/tools/mach-typeslarch/arm/boot/c

24、ompressed/head-s3c2410.Slarch/arm/boot/compressed/MakefileEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.嵌入式嵌入式Linux内核调试内核调试lPrintk() lOops消息l/proc文件系统 lKgdbl追踪工具(strace,ltt,gprof,gcov,memwatch) Evaluation only.Created with Aspose.Sl

25、ides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Linux调试工具lLinux系统察看和调参l/proc文件系统l用户空间工具用户空间工具: l内存工具:MEMWATCH 和 YAMD lstrace lGNU 调试器(gdb) l内核工具内核工具: l内核源代码级调试器(kgdb) l内建内核调试器(kdb) lOopsEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyrig

26、ht 2004-2011 Aspose Pty Ltd./proc文件系统l/proc内存文件系统,记录系统相关信息l可以直接使用cat得到相关信息l也可以编程通过文件方式得到相关信息Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.通过/proc获取进程信息l找到相关进程号l找到相关/proc子目录l获取特定参数Evaluation only.Created with Aspose.Slides for .NET 3

27、.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.通过/proc获取硬件信息l找到相关硬件标识l在/proc中找到相关硬件目录l查找特定硬件信息Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.通过/proc获取内核信息l内核信息一般存放于/proc/sysl可以读取相关内核信息l也可以修改内核参数来对内核调优l修改内核一定要慎重!Evaluati

28、on only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd./proc获取文件系统信息l获取文件系统信息l获取分区信息l获取文件锁定信息Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd./proc获取系统状态信息l获取系统时间Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.谢谢大家l问题l建议l反馈l后续l资源Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号