




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式操作系统原理 嵌入式LINUX操作系统开发体系结构概览进程与调度管理内存管理文件系统系统调用体系结构概览体系结构概览内核的功能进程控制(process management)内存管理(Memory management)文件系统管理( management)设备驱动程序(Device control)网络(Networking)内核层次内核在系统中的位置用户进程系统调用接口内核硬件什么是Linux内核?从程序员的角度从用户的角度系统调用内核提供的一套C语言函数库称为系统调用应用程序使用系统调用完成编程任务系统调用分类进程管理进程间通信(IPC)文件系统管理网络编程(Socket)Linu
2、x结构Linux进程管理Linux是一个多任务多用户操作系统一个任务(task)就是一个进程(process)每一个进程都具有一定的功能和权限,它们都运行在各自独立的虚拟地址空间。在Linux中,进程是系统资源分配的基本单位,也是使用CPU运行的基本调度单位。 Linux进程概述 程序映像存放在磁盘上的可执行文件的代码和数据的集合称为可执行映象(Executable Image),即程序当一个程序(可执行映象)装入系统中运行时,它就形成了一个进程进程映像进程是由正文段(text)、用户数据段(user segment)和系统数据段(system segment)组成的一个动态实体。正文段中存放
3、着进程要执行的指令代码,具有只读的属性,用户数据段是进程在运行过程中处理数据的集合,它们是进程直接进行操作的所有数据, 以及进程使用的进程堆栈。系统数据段存放着进程的控制信息。其中包括进程控制块PCB。进程控制块PCB进程控制块PCB是名字为task_struct的数据结构,称为任务结构体任务结构体中容纳了一个进程的所有信息,是系统对进程进行管理和控制的有效手段,是系统实现进程调度的主要依据当一个进程被创建时,系统就为该进程建立一个task_struct任务结构体。当进程运行结束时,系统撤消该进程的任务结构体Linux在内存空间中开辟了一个专门的区域存放所有进程的任务结构体,在操作系统的内核空
4、间设置了一个task数组,该数组的每一个元素是一个指向任务结构体的指针,所以task数组又称为task向量。进程的任务结构体是进程存在的唯一标志,调度程序维护current指针,它指向当前正在运行的进程。Linux调度分析Linux进程的状态变化进程状态运行态:进程正在使用CPU运行的状态。处于运行态的进程又称为当前进程(current process)可运行态:进程已分配到除CPU外所需要的其它资源,等待系统把CPU分配给它之后即可投入运行等待态:又称睡眠态,它是进程正在等待某个事件或某个资源时所处的状态。 等待态进一步分为可中断的等待态和不可中断的等待态。处于可中断等待态的进程可以由信号(
5、signal)解除其等待态。处于不可中断等待态的进程,一般是直接或间接等待硬件条件。 它只能用特定的方式来解除,例如使用唤醒函数wake_up()等暂停态:进程需要接受某种特殊处理而暂时停止运行所处的状态。通常进程在接受到外部进程的某个信号进入暂停态,例如,正在接受调试的进程就处于这种状态。僵死态:进程的运行已经结束,但它的任务结构体仍在系统中。核心态和用户态Linux的进程处理机上运行时,处理机提供了两种不同的的执行状态,核心态(kernel mode)和用户态(user mode)。核心态又称系统态,它具有较高的特权,能执行所有的机器指令,包括由操作系统执行的特权指令,能访问所有的寄存器和
6、存储区域,能直接控制所有的系统资源。 Linux在执行内核程序时是处于核心态下。用户态是进程的普通执行状态,在用户态下进程具有较低的特权, 只能执行规定的机器指令,不能执行特权指令。进程在用户态下只能访问进程的存储空间。在用户态下进程不能与系统硬件相互作用,不能访问系统资源。Linux进程调度方式Linux系统采用抢占调度方式,又称可剥夺调度方式。采用这种调度方式时,对于当前运行的进程而言,当有更紧急的进程到来时,系统将剥夺当前进程使用处理机的权利,立即停止它在处理机上的运行,而把处理机分配给那个更紧急的进程。Linux采用时间片轮转法。对某个运行中的进程,当它的时间片用完时,系统将停止它的运
7、行并把处理机分配给其它进程。Linux进程调度方法Linux进程调度采用动态优先级法,调度对象是可运行队列,可运行队列中优先级大的进程首先得到CPU投入运行。进程在运行中,counter的代表进程的动态优先级。Linux采取了加权的方法来保证实时进程优先于普通进程。进程调度时机时机1进程状态发生变化时。处于运行态下的进程要等待某种资源,运行态下的进程在程序执行完毕后,一般通过调用内核函数do_exit()终止运行并转入僵死态。处于等待态的进程被唤醒后,将加入到可运行队列中时。进程从运行态转入暂停态时。进程从暂停态成为可运行态时。时机2当前进程时间片用完时。时机3进程从系统调用返回到用户态时。时
8、机4中断处理后,进程返回到用户态时。Linux内存管理模式MMU内存管理MMU是内存管理单元内存的管理单位是页(page),通常是4K或8K虚拟地址与物理地址物理地址可以位于RAM/FLASH/DISK经过MMU,虚拟地址可以转化成物理地址MMU可以在转换过程中检查权限,以保护内存不受非法访问如果没有MMU,进程与内核之间无法隔离和保护,系统容易崩溃17Linux的三级目录Linux采用三级目录底层MMU支持实现存储管理,可以适应64/32位CPU三级目录是页面目录、中间目录和页表进程空间和内核空间进程名义上有4G的空间实际上只有3G属于进程本身虚拟系统空间占据高位1GLinux内核启动分析搭
9、建开发环境宿主机和目标机交叉编译编译引导程序(u-boot或者vivi)编译内核(mizi linux)编译根文件系统使用JTAG将编译好的映像写入目标板可以写入到Nor Flash当中可以写入到Nand Flash当中Linux内核启动分析上电CPU根据设置读取Flash中的BootloaderBootloader作两段式加载Bootload将控制权移交给内核Bootloader事先检测硬件参数,例如物理地址Bootloader加载压缩的内核映像内核自解压内核将自身定位到正确的物理地址内核启动流程执行init初始化进程启动一个shell执行启动脚本文件显示登录提示符等待登录嵌入式LINUX操
10、作系统内核选择内核内核配置编译内核安装内核选择内核认识Linux内核版本主版本1.0 2.0 2.2 2.4 2.62,3年更新稳定版2.0.40 2.2.12 2.4.18 2.6.71,2月更新稳定版更新2.6.11.1 2.6.11.71,2周更新 Linux内核源码内核目录结构:/usr/src/Linux-*/arch(重点)/drivers/fs/include/init/ipc/kernel/mm/net内核配置进入到内核源代码目录cd /usr/src/linux-2.*make configmake xconfigmake menuconfigmake编译生成的文件vmlin
11、ux未压缩的Linux内核varch/boot/zImage经zlib压缩后的Linux内核varch/boot/bzImage经zlib压缩后的Linux内核,b是指big,压缩狠/boot/vmlinuz-经zlib压缩后的Linux内核编译生成的文件v/boot/System.map-内核符号地址/boot/initrd-.imgramdisk,要挂载的根文件系统/lib/modules/模块vmodules.dep模块依赖文件裁剪Linux目的是创建嵌入式Linux嵌入式硬件资源有限,所以要裁剪软件裁剪的对象包括:Linux内核库守护进程GUI裁剪Linux选择合适的文件系统ext2,
12、ext3,jffs2模块机制网络协议无用的驱动程序调试信息裁剪的技术要求能省就省,能小就小,能快就快安装内核移植相关的文件相关文件和目录arch/arm/config.inarch/arm/Makefilearch/arm/boot/Makefilearch/arm/mach-s3c2410/*include/asm-arm/arch-s3c2410/*arch/arm/tools/mach-typesarch/arm/boot/compressed/head-s3c2410.Sarch/arm/boot/compressed/Makefile实验与案例实验1:编译和安装内核通过本实验指导学员熟悉对内核进行剪裁,在开发板上编译、安装内核嵌入式Linux内核调试Printk() Oops消息/proc文件系统 Kgdb追踪工具(strace,ltt,gprof,gcov,memwatch) Linux调试工具Linux系统察看和调参/proc文件系统用户空间工具: 内存工具:MEMWATCH 和 YAMD strace GNU 调试器(gdb) 内核工具: 内核源代码级调试器(kgdb) 内建内核调试器(kdb) Oops/proc文件系统/proc内存文件系统,记录系统相关信息可以直接使用cat得到相关信息也可以编程通过文件方式得到相关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中考数学模拟试题(几何图形作图技巧强化)
- 2025年意大利CELIB2级模拟试卷写作技巧:演讲稿与致辞撰写
- 2025年小学数学思维拓展竞赛试卷:数据分析题解析
- 广西壮族自治区百色市田阳区2024-2025学年九年级上学期11月期中数学试题
- 企业内训交流体系搭建与实施
- 第十章 第五讲 二项式定理(课件+ 讲义+练习)-【知识梳理】2025年高考数学一轮复习知识梳理-课件下载
- 甘肃省武威八中2019-2020学年高一化学下学期期末考试试题
- 部编版语文四年级上册期末综合复习卷(二)
- 2025年物联网安装调试员职业技能认证模拟试卷(物联网设备安装与系统调试)-物联网设备法规与标准
- 2025年教师资格证小学教育知识与能力真题卷:小学教育伦理与教育公正
- 租赁电瓶合同范文
- 空气能合同模板
- 智能家居系统设计方案四篇
- 2025年医院院感知识培训计划
- 伊犁将军府课件
- 中医护理不良事件
- 2023版设备管理体系标准
- 《城市公园配套设施设计导则》
- 安徽省江南十校2023-2024学年高二下学期5月阶段联考化学A试题
- 第六单元 资本主义制度的初步确立 复习课件 2024-2025学年统编版九年级历史上册
- 弘扬伟大长征精神-走好今天的长征路课件
评论
0/150
提交评论