psos操作系统

上传人:xzh****18 文档编号:55675905 上传时间:2018-10-04 格式:PPT 页数:45 大小:121KB
返回 下载 相关 举报
psos操作系统_第1页
第1页 / 共45页
psos操作系统_第2页
第2页 / 共45页
psos操作系统_第3页
第3页 / 共45页
psos操作系统_第4页
第4页 / 共45页
psos操作系统_第5页
第5页 / 共45页
点击查看更多>>
资源描述

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

1、PSOS操作系统,概念及编程,Agenda,PSOS操作系统概念 PSOS内核机制 PSOS使用 PSOS应用举例,PSOS介绍,Psos系统是一个专门为嵌入式微处理器设计和开发的模块化、高效率的实时操作系统。它提供了基于标准化开放系统的完整的多任务环境,例如:对网络文件系统的支持 设计宗旨是为了实现高效、可靠、易于使用的嵌入式实时软件,以支持用户自己设计的或商品化的硬件系统,PSOS系统模块,pSOS+实时多任务内核 pSOS+m多处理器多任务内核 pNA+ TCP/IP协议栈 pRPC+远程调用函数库 pHILE+文件系统管理 pREPC+标准ANSI C函数库,PSOS系统层次,内核层

2、系统服务层 用户层,PSOS内核层,负责任务的管理与调度、任务间通信、内存管理、实时时钟管理、中断服务 动态生成或删除任务、内存区、消息队列、信号灯等系统对象 实现了基于优先级的、选择可抢占的任务调度算法,并提供了可选的时间片轮转调度 提供了任务间通信机制及同步、互斥手段,如消息、信号灯、事件、异步信号等,PSOS系统服务层,PNA+实现了完整的基于流的TCP/IP协议集,并具有良好的实时性能 PRPC+提供了远程调用库,支持用户建立一个分布式应用系统 PHILE+提供了文件系统管理和对块存储设备的管理 PREPC+提供了标准的C、C+库,支持用户使用C、C+语言编写应用程序,PSOS用户层,

3、用户层主要就是用户编写的应用程序,它们是以任务的形式出现的。任务通过发系统调用而进入pSOS内核,并为pSOS内核所管理和调度,PSOS内核机制,基本概念 任务调度,基本概念,几个基本概念,任务 优先级 任务状态 任务控制块 对象、对象名及ID号 任务模式字Mode word,任务,任务是参与资源竞争(如CPU、Memory、I/O devices等)的基本单位 pSOS为每个任务构造了一个虚拟的、隔离的环境,从而在概念上,一个任务与另一个任务之间可以相互并行、独立地执行 任务与任务之间的切换、任务之间的通信都是通过发系统调用进入pSOS Kernel,由pSOS Kernel完成的,任务的特

4、点,任务具有任务初始化的起点(如获取一些系统对象的ID等) 具有存放执行内容的私用数据区(如任务创建时明确定义的用户堆栈和堆栈) 任务的主体结构表现为一个无限循环体或有明确的终止(任务不同于函数,无返回),任务划分考虑,划分太多将导致任务间的切换过于频繁,系统开销太大 划分太少又会导致实时性和并行性下降,从而影响系统的效率 功能模块A与功能模块B是分开为两个任务还是合为一个任务可以从是否具有时间相关性、优先性、逻辑特性和功能耦合等几个方面考虑,任务划分原则,时间:两个任务所依赖的周期条件具有不同的频率和时间段 异步性:两个任务所依赖的条件没有相互的时间关系 优先级:两个任务所依赖的条件需要有不

5、同的优先级 清晰性/可维护性:两个任务可以可在功能上或逻辑上互相分开,优先级,每个任务都有一个优先级。pSOS系统支持0255级优先级,0级最低,255级最高。0级专为IDLE任务所有,240255级为系统所用。在运行时,任务(包括系统任务)的优先级可以通过t_setpri系统调用改变,任务状态,Executing (Ready)就绪,未被阻塞可运行的,只等待高优先级任务释放CPU的任务。由于一个任务只能由正运行的任务通过调用来被启动,而且任何时刻只能有一个正在运行的任务,所以新任务总是从就绪态开始 Running运行,正在使用CPU的就绪任务, 系统只能有一个running任务。一般runn

6、ing任务是所有就绪任务中优先级最高的,但也有例外 Blocked阻塞,是系统调用引起调用任务进入等待状态,任务控制块,任务控制块TCB是pSOS内核建立并维护的一个系统数据结构,它包含pSOS Kernel调度与管理任务所需的一切信息,如任务名、优先级、剩余时间片数、当前寄存器状态等,对象、对象名及ID号,pSOS系统中对象包括任务、memory regions、memory partitions、消息队列和信号灯 对象名由用户定义(4位ASCII字符),并且在该对象创建时作为系统调用obj_CREATE的一个入口参数传给pSOS Kernel。pSOS Kernel反过来赋予该对象一个唯一

7、的32位ID号。除obj_CREATE和obj_IDENT外,所有涉及对象的系统调用都要用到对象ID号,任务模式字Mode word,每个任务带有一个mode word,用来改变调度决 策或执行环境。主要有以下四个参数: Preemption Enabled/Disabled. Roundrobin Enabled/Disabled。 Interupts Enabled/Disabled. ASR Enabled/Disabled: 每个任务有一个通过as- catch建立起来的异步信号服务例程ASR。异步信 号类似于软件中断。当ASR位为1时as-catch所指向 的任务将会被改变执行路径,

8、先执行ASR,再返回 原执行点,任务调度,影响动态调度效果的两个因素,优先级可变(通过t_setpri系统调用改变任务的优先级) 任务模式字中的preemption bit位和roundrobin bit位。preemption bit位决定不同优先级的任务是否可抢占,并和 roundrobin bit位一起决定任务的时间片轮转是否有效,引起任务调度的原因,在轮转方式下时间片到 pSOS系统调用引发任务调度。该系统调用可能是ISR发出的,也可能是某个任务发出的,引起任务调度的结果,引起运行任务切换 不引起运行任务切换,何时进行任务切换,在时间片轮转方式下,运行任务Task A的时间片用完,且R

9、eady队列中有相同优先级的其它任务,则Task A退出运行 若Task A发出的某条调用引发一个优先级高于Task A的任务Task B从Block状态进入Ready状态,则将Task B投入运行 ISR使用I_RETURN系统调用,则ISR退出运行,pSOS Kernel选择Ready队列中优先级最高 的任务投入运行,如何进行任务切换,任务A运行信息保存,保存切换点地址及运行信息、任务A栈调整、栈指针保存、栈切换、参数及返址入栈等 任务A入就绪队列,将任务A的TCB块按优先级顺序插入就绪队列 选择一个高优先级任务B 将任务B投入运行,从系统栈切换到任务B栈,用任务B的TCB块中保存的信息恢

10、复上次运行被打断的地方,恢复任务运行环境,于是任务B开始继续运行,PSOS使用,PSOS体系结构 PSOS应用程序 在PSOS下编写应用程序 开发工具,PSOS体系结构,板级支持包(BSP ),为PSOS系统提供了支持标准硬件板和用户硬件板的机制。每个BSP提供了一种软件模板,其中既包括设备驱动程序的抽象结构代码,也包括为具体硬件设备所需的底层系统功能代码 不同外设的设备驱动程序代码只与该设备有关,而与该设备所在的硬件板无关。 PSOS系统以源代码形式提供了许多板级支持包,PSOS应用程序,任务(TASK),由软件事件来触发 中断服务程序(ISR),由硬件事件来触发 驱动程序,PSOS的多任务

11、模型,PSOS编程中注意事项,PSOS任务间通信和同步机制 PSOS的内存分配,PSOS任务间通信和同步机制,消息队列(Message Queue),用于任务间的数据通信 信号灯(Semaphore,Mutex,etc.) ,用于共享数据和资源的保护 事件(Event) ,用于实现任务之间的同步 ,满足条件后触发某个任务的运行,消息队列,队列的分类,按大小分,分为变长的和定长的;按内容分,分为数据和指针 发起者,q_send:FIFO ;q_ergent:LIFO ;q_broadcast:BC 接收者,q_receive,等待策略:(等:定时和永久;不等);排队策略:(FIFO,priori

12、ty),信号量,用于在对临界资源的使用时数据保护 有两种操作:sm_p,sm_v,事件(EVENT),用来实现任务间同步 操作有ev_send和ev_receive 果条件满足,则执行;如果条件不满足,则依据等待策略确定执行轨迹,定时,任务,ISR,ASR:(asynchronous signal routine),软中断 操作有:as_catch,as_send,as_return 与events的区别:events的主动权在接收者; ASR的主动权在激发者,定时,任务,ISR,PSOS内存分配,Region,变长的内存区,用户可以从创建的region中分配segment,其特点是:容易产生

13、碎片,但灵活、不浪费 partition是定长的内存区,用户可以从创建的partition中分配buffer,其特点是:无碎片、效率高,但浪费,在PSOS下编写应用程序,入口函数的建立,不像windows应用程序,的入口函数main(),在PSOS下的入口函数必须命名为root(). 线程处理函数的建立,入口函数的建立,线程处理函数,负责对于各个线程之间的关系进行调配 通过对消息的判断来切换不同的线程,等待消息,判断消息类型,键值响应程序调用,Task, queue, event例子,Task Queue Event,Makefile的建立,参见例子,PSOS开发环境pRISM+,pRISM+运行在PC Windows NT、Windows 95/98和UNIX工作站上,支持PowerPC、x86、68K、MIPS、ARM和M32/R处理器,谢谢!,

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

当前位置:首页 > 行业资料 > 其它行业文档

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