通信原理大综合课件高频全_第1页
通信原理大综合课件高频全_第2页
通信原理大综合课件高频全_第3页
通信原理大综合课件高频全_第4页
通信原理大综合课件高频全_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章嵌入式Linux操作系统3.1

概述1、完全开放源代码

使学习、修改、剪裁Linux成为可能,设计者可对嵌入式Linux进行二次开发。去掉操作系统的附加功能,只保留必须的操作系统功能,降低整个系统的开销与能耗。2、成本低

只要遵守GPL协议,嵌入式操作系统的源代码可以自由获得,大多数嵌入式Linux使用的开发工具也是遵守GPL协议,同样可以免费获得。嵌入式Linux的特点3、丰富的实用软件支持Linux操作系统是一个完整的、功能强大的操作系统、提供了大量的实用程序和各种各样的应用软件。Linux的实时性一般的通用linux已经具备一定的实时性但无法满足硬实时的要求运行于linux内核空间的进程(核心态)不能被抢先在linux中,中断有时候会出于保护临界区操作的目的而被屏蔽通用linux的时间滴答长度为10ms(硬件时钟频率100HZ),但是这对于时间精度要求很高(微秒级)的实时进程来说是不够的嵌入式Linux发展现状1、RT-LinuxRT-Linux是一硬实时操作系统实现了一个微内核的小的实时操作系统,而将普通Linux系统作为一个该操作系统中的一个低优先级的任务来运行通过软件来模拟硬件的中断控制器普通Linux系统中的任务可以通过FIFO和实时任务进行通信RT-Linux通过将系统的实时时钟设置为单次触发状态,可以提供十几个微秒级的调度粒度

2、KURT-Linux

KURT-Linux强化了Linux的时钟机制和调度机制。标准的Linux将时钟间隔固定为10ms,在最好情况下也需要100ms进行一次重调度。KURT-Linux通过修改时钟管理模块,使时钟在以us为单位在任何需要时都可以产生中断。同时增加了实时调度模块,使KURT-Linux可以同时调度实时任务和分时任务运行。3、uc-Linux

uc-Linux的基本思想是去掉标准Linux里的虚拟存储器管理功能。一方面减小内核的体积,另一方面增加了系统的实时性能。3.2Linux内核一、Linux的内核版本格式:Linuxx.y.zx:表示主要版本号;y:0~99之间,偶数是可发布的稳定版本,奇数是测试版本。z:表示内核变化比较小,开发者可以忽略此变化。

内核(Kernel)是操作系统的内部核心程序,它向外部提供了对计算机设备的核心管理调用。二、内核的组成内核包括:进程管理、定时器、中断管理、内存管理、模块管理、虚拟文件接口、网络管理、系统启动等程序。1、进程管理有一段程序供其执行。这段程序不一定是进程所专有的可以和其它进程共用。有起码的“私有财产”,即有进程专用的系统堆栈空间。有户口”,即对每个进程系统都会为其建立一个称为“进程控制块”的数据结构,记录进程占用的各种资源,进程才能被系统调度。有独立的存储空间,即有专用的用户空间,意味着还拥有专用的用户空间堆栈。这四条是必须的,如果只由前三条,则称为线程。(1)构成进程的要素〔2)进程的三个特性独立性:拥有自己的独立资源,不经过进程本身允许,其它进程不能访问这些资源。动态性:进程和程序的区别是,程序是静态的指令集合,进程是正在系统中活动的指令集合。进程有自己的生命周期和各种不同的状态。并发行:多个进程可以在单处理器状态上并发执行。4、进程的状态和调度(1)就绪态:进程已获得所有的所需其它资源,并正申请处理器资源,准备运行。阻塞态:进程需要等待所需资源而放弃处理器,或因为其它资源没有得到,即使得到处理器也不能运行。运行态:进程得到处理器,并不需要其它资源,正在执行的状态。进程在生命周期中要经历一下三种状态:Linux系统对各种状态进行了组织,分为以下几个状态:运行状态:进程被CPU执行,或已准备就绪随时可以有调度程序执行。(2)不可中断睡眠状态:当资源有效时,可由操作系统唤醒,否则一直处于等待状态。(3)挂起状态:进程被暂停,需要其它进程的信号才能唤醒。(2)可中断睡眠状态:当资源有效时,可由操作系统唤醒,也可以由其它进程的信号唤醒。(4)僵尸状态:进程结束,并释放了大部分资源,但没有释放进程控制块。

系统调用fork()创建进程,若申请不到某个资源,调用sleep()进行休眠。进程执行系统调用exit()或收到外部的杀死进程信号SIG_KILL,进程变成僵尸状态,释放所有资源。同时启动shedule()。进程调度调度时机a.用户进程自愿放弃CPU,如执行sleep()系统调用;b.系统调用中,需要等待时,直接调用schedule()进行调度;c.系统调用、中断或异常处理完成后,返回到用户空间前,若当前进程的PCB中的need_resched=1,则发生调度;硬件时钟(晶振,CMOS电路)

定时器8253

中断控制器8259

CPU

Linux的内存管理一般可以实现以下功能:可以运行比内存还要大的程序。可以运行只加载了部分的程序,缩短了程序启动时间。可以使多个程序同时驻留在内存中,提高CPU的利用率。可以重定位程序,程序可以放在内存的任何一处,可以在执行过程中移动。减轻程序员分配内存和管理内存资源的负担。提供内存保护,进程不能以非授权方式访问或修改页面。2、内存管理μclinux的内存管理

μclinux的设计是针对NO-MMU的处理器,μclinux在设计时去除了Linux系统的虚存管理部分,采用了实存储器管理策略。μclinux系统对内存的访问是直接的,所有程序的地址都是实际的物理地址。操作系统对内存空间没有保护,各进程共享一个运行空间。一个进程在执行前,系统必须为进程分配足够的连续地址空间,然后全部载入内存的连续空间中。从编译内核开始,开发人员就必须告诉系统开发板拥有多少物理内存。开发人员在开发应用程序时必须考虑内存分配情况和应用程序需要运行空间的大小。程序开发时要保证不侵犯其它程序的地址空间。3、虚拟文件系统VFS

它的主要功能包括:记录可用的文件系统的类型。把设备与对应的文件系统联系起来。处理一些面向文件的通用操作。

虚拟文件系统VFS是物理文件系统与服务之间的一个接口层,它对每一个具体的文件系统的所有细节进行抽象,使得不同的文件系统在Linux核心以及系统中运行的其它进程看来都是相同的。

VFS只是一种存在于内存的文件系统,在操作系统自举时建立,在系统关闭时消亡。4、网络接口

网络接口分为网络协议和网络驱动程序网络协议部分负责实现每一种可能的网络传输协议网络驱动程序负责与硬件设备通信。5、进程间的通信用户态的进程是相互隔离的,为了协调各进程使用系统资源和同步工作,在它们之间建立的联系方式称为进程间的通信。3.3Linux系统数据结构一、task-struct代表一个进程的数据结构,各进程的数据结构的指针构成一个task数组。共调度管理。二、mm-struct每个进程的虚拟内存由一个mm-struct结构来代表。该结构实际上包含了当前执行镜像的有关信息,并且包含了一组指向vm-area-struct结构的指针,vm-area-struct结构描述了虚拟内存的一个区域。三、inode虚拟文件系统中的文件、目录、等均由对应的索引节点(inode)代表。每个VFS索引节点中的内容由文件系统的专属的例程提供。四、block-dev-struct用于向核心登记块设备,它还被buffercache使用。五、device系统中每个网络设备都用一个数据结构来表示,此结构被块设备和字符设备用来向核心登记。3.4Linux系统目录结构

移植Linu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论