嵌入式操作系统

上传人:枫** 文档编号:561343601 上传时间:2023-05-10 格式:DOCX 页数:9 大小:25.09KB
返回 下载 相关 举报
嵌入式操作系统_第1页
第1页 / 共9页
嵌入式操作系统_第2页
第2页 / 共9页
嵌入式操作系统_第3页
第3页 / 共9页
嵌入式操作系统_第4页
第4页 / 共9页
嵌入式操作系统_第5页
第5页 / 共9页
点击查看更多>>
资源描述

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

1、1、操作系统的基本概念1.1操作系统:是计算机系统硬件的软件封装,它使计算机成为功能强大的虚拟计算机,从 而使应用程序可以使用软件的方式使用计算机的底层功能。1.2操作系统的功能:是计算机硬件的封装和功能的扩充;是计算机资源的管理者;13操作系统对计算机资源的管理:1处理器的管理,2存储器存储空间的管理,3.I/O设备 的管理,4文件的管理,5网络和通信的管理,6提供用户接口13操作系统的基本服务:创建程序;执行程序;数据输入输出;文件管理;通信服务;错 误的检测和处理;资源的分配;资源使用情况的统计;对系统资源的保护1.4操作系统内核:由HAL层中的程序模块及进程管理,内存管理等基本服务程序

2、模块组成 了系统的核心部分15异步事件:就是与当前正在做的事情在逻辑上无关的事情。1.6进程的含义:可并发执行且具有独立功能的程序在一个数据集合上的运行过程,它是操 作系统资源分配和保护的基本单位。1.7进程的特征:动态性:是指进程是程序的一次活动,程序是进程活动的蓝本,而进程活 动是程序的一次运行过程;并发性:是指在一个系统内可以同时存在多个进程,他们在交 替使用处理器这个资源,并按照自己独立的进度推进;异步性:是指进程之间在交替使用 计算机资源是没有强制的顺序;独立性:是指进程在系统中是一个可独立运行的并具有独 立功能的单位,也是系统分配资源和进程调度的独立单位;结构性:是指为了记录、描述

3、、 跟踪进程运行使得状态变化以便对进程进行控制,由系统建立的一套数据结构。1.8进程实体:程序代码;数据集合;进程控制块(进程控制块,进程堆栈,进程数据块)1.9系统根据某种规则而暂停进程的运行,进程会转为就绪状态,由于进程需要等待一个事 件而暂停运行,进程会进入阻塞状态1.9调度策略:时间片轮转法;优先级调度法;多级反馈队列调度法(对不同的优先级进行 分组,优先级越高的组中的进程应得的时间片越短的原则);110进程间的同步:直接制约关系(B要用A生成的数据);间接制约关系(A和B都要使 用同一资源)111存储管理:分页,分段,段页式划分1.11操作系统的设备无关性:设备应是可寻址的;使用逻辑

4、设备名;设备描述表;112操作系统对设备的管理:缓冲技术;设备的调度(一个资源为多个进程服务);设备的 分配(在资源中选择一个为进程服务);113文件逻辑结构:字符流式文件(文件内的信息不在划分结构);记录式文件(连续结构 记录式文件【时间顺序】有序结构记录式文件【某项值的大小顺序】)114文件物理结构:文件物理块是分配存储空间的基本单位,也是文件系统与主存之间传 输和交换信息的基本单位,是I/O指令对文件读写操作的基本单位115文件系统的两个基本功能:一是在建立文件时为文件分配存储空间;二是在删除文件 时把文件所占用的存储空间进行回收1.16文件目录及其结构:1文件名2文件的存储位置3用户对

5、文件的存取权限,4,使用信 息, 5文件的结构1.16操作系统的内核应提供中断处理,进程的调度管理和系统的基本操作三方面功能。操 作1.17系统的分类:单用户操作系统;批处理操纵系统;分时操作系统;实时操作系统118假如内核中的某一个服务模块进行修改,那么在修改后就必须对整个系统进行一次编 译,再次,就是使得处理器的内核运行时间变长,从而不适合在速度要求较高的场合下应 用119操作系统的引导和装入:系统引导文彳一装载文彳一装载操作系统2、实时操作系统的基本概念2.1实时操作系统的含义:如果一个系统能够及时响应外部事件的请求,并在一个规定的时 间内完成对事件的处理2.2基本要求:实时系统的计算必

6、须产生正确的结果,称为逻辑或功能正确;实时系统的计 算必须在预定的时间内完成,称为时间正确2.3实时系统的特点:实时任务具有确切的完成期限;实时任务的活动是不可逆的;实时任 务大多由外部事件激活2.5实时操作系统设计时应满足的条件:必须是多任务系统;内核应是可剥夺型的;进程调 度的延时可预测并尽可能小;系统提供的服务时间可预知;中断延时尽可能小;2.6实时调度算法:单调速率RM算法:用来处理周期性实时进程,凡是执行周期越短,执行频度越高的进程,其紧急程度越高prio=k/T(可去k=1)截止期限最早优先算法(EDF)(该方法有缺陷);可达截止期限最早优先算法d=D-(t1+E) M0;最小裕度

7、算法2.7实时进程的可调度性:p=P503、嵌入式系统和嵌入式实时操作系统31嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统 对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。32嵌入式系统的特点:专用性强;实时性好;可裁剪性好;可靠性高;功耗低3.3嵌入式实时操作系统:运行在嵌入式硬件平台上,对整个系统及其部件,装置等资源进 行统一协调,指挥和控制的系统软件就叫做嵌入式操作系统。3.4嵌入式实时操作系统特点:微型化;实时性;可裁剪性;高可靠性;易移植性35微内核并不是通过减少内核的服务功能模块而变小的,而是把内核中应提供的部分功能 模块移动到内核外来实现3

8、6嵌入式系统的配制方法:在系统进行编译连接时进行配置;在系统运行时进行配置 (通过转移语句来实现)4、嵌入式实时操作系统及其任务4.1与应用程序相关的文件:INCLUDESH是ucos的主头文件,在每个c文件都要包含这个文件OS_CFGH是配置文件,进行选择性编译;与计算机硬件相关的文件:OS_CPUH是一个与计算机硬件相关的文件OS_CPU_AASM集中了所有与处理器相关的汇编代码模块OS_CPU_CC集中了于处理器相关的C语言代码模块系统内核的各种服务文件4.2 实现可裁剪:OS_TASK_CREATE_EXT_EN=1 和 if OS_TASK_DEL_EN=0则进行编译4.3外部事件的

9、形式:异步事件;周期性事件;异步事件和周期性事件的组合4.4任务控制模块用来保存任务属性;任务堆栈用来保存任务的工作环境;任务程序代码是 任务的执行部分4.5任务的状态:睡眠状态(任务在未被配备任务控制块或者被剥夺了任务控制快的状态) 就绪状态;运行状态,等待状态,中断服务状态4.6优先级分为64 个,可用的优先级OS_LOWEST_PRIO+1,系统中的总任务总数最多不能超 过 OS_LOWEST_PRIO+1; OS_LOWEST_PRIO 是空闲任务;OS_LOWEST_PRIO-1 是统计任务 4.7 任务控制块操作方法:OSInit() , OSTaskCreate()或者 OSTa

10、skCreateExt() ,OSTaskDel(),属性:OSTCBCur ,OSTCBTbl,任务链,空链,任务 被删除时是被“吊销” 了任务控制块,如果需要,该任务还可以被重新创建。4.8创建堆栈:OSTaskCreate()注意堆栈的增长方向(OS_STK_GROUTH) 堆栈的初始化: OSTaskStkInit() 空闲任务:OSTaskIdle(),统计任务:OSTaskStat()4.9 临界区:OS_ENTER_CRITICAL() ,OS_EXIT_CRITICAL()5任务管理:51就绪任务表结构:为1表示对应的任务处于就绪状态,一个分配了任务控制块和任务堆 栈的任务要想

11、取得抢占处理器的资格,必须现在就绪任务表中属于自己的位置上登记。5.2 OSRdyGrp , OSRdyTbl组成的二维数组用来表示任务就绪表5.3优先级最高不超过63,可看成一个6位的二进制,高三位表示OSRdyGrp的具体数据位, 低三位用来知名该数组元素的具体位置Eg: prio=29=00011110,低六位 011110,可知在 OSRdyGrp3的 D5 位置上,将 OSRdyGrp 和OSRdyTbl中相对应的位置置1”5.4任务的创建:OSTaskCreate(或者OSTaskCreateExt()包括三个步骤:任务堆栈的初始化, 任务控制块的初始化,任务的调度。不允许在中断服

12、务程序中创建任务INT8U OSTaskCraeate(Void (* task)(void * pd), /只 想任务的指针Void *pdata,传递给任务的参数OS_STK * ptos,/只想任务堆栈站定的指针 INT8U prio 任务的优先级)使用OSTaskCreateExt(创建代码:INT8U OSTaskCreateExt()(Void (*task)(void *pd),/只 想任务的指针Void *pdata,/传递给任务的参数OS_STK *ptos, /只想任务堆栈栈顶的指针INT8U prio,/任务的优先级INT16U id,/任务的标示OS_STK *pbos

13、,任务堆栈占地的指针INT32U stk_size,/任务堆栈的容量Void *pext,指向附加数据域的指针INT16U opt/用于设定操作系统选项);5.4在调用启动函数OSStart()之前,必须已经常见了至少一个任务,一般习惯在调用OSStart() 之前先创建一个任务,并赋予它最高的优先级,然后在这个起始任务中再创建其他任务 过程:void main(void)OSInit();对UCOSII进行初始化OSTaskCreate(TaskStart,);/创建起始任务 TaskStartOSStart();开始多任务调度5.5任务的挂起:用户任务可通过调用系统提供的OSTaskSus

14、pend(来挂起自身或者除空闲任 务之外的其他任务,被挂起的任务只能在其他任务中使用OSTaskResume(使其回复就绪状 态oooo挂起自身的参数为OS_PRIO_SELF (图)56任务的删除:OSTaskDel()INT8U OSTAskDel(INT8U prio);有其他任务提出删除请求,任务自身进行自我删除通过判断 OSTCBDelReq=OS_TASK_DEL_REQ来确定是否进行删除,然后任务自身调用 OSTaskDel(OS_PRIO_SELF)来 删除自己57査询任务信息:INT8U OSTaskQuery (INT8U prio;OS_TCB *pdata 存储信息的结

15、构(须事先进行定义);6任务调度61调度器OSSched()。OSTCBCur存放着当前运行的任务的任务快指针62在中断服务程序中不能进行任务调度,每当进入中断服务程序就要把变量OSIntNesting() 加1,而当中断返回前把OSIntNesting减16.3 OSSchedLock()为调度器上锁,OSSchedUnLock()为调度器解锁6.4调度器的任务切换:1任务断点的保存。2任务切换(任务切换的实质是断点数据的切 换,断点数据的切换也就是处理器堆栈指针的切换)65调度的时机:只有在就绪任务表的内部内容进行变化时才进行调度:1有新任务被创建, 并在就绪任务表中进行创建2有任务被删除3又处于等待状态的任务被唤醒4由于异步事 件的发生,在中断服务程序中激活了一个或几个任务5正在运行的任务需要等待某个事件 而进入等待状态6正在运行的任务调用延时函数而资源进入等待状态7UCOS-II的初始化和启动71OSInit (庄要负责建立任务控制块链表,就绪任务表等一些数据结构,并对系统所使用的 全局变量进行初始化7.2OSInit()对所有的全局变量和数据结构进行初始化,同时创建空闲任务OSTask

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

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