发布时间: 2018-03-06 11:38:19
LiteOS Kernel基本框架
Huawei LiteOS基础内核是最精简的Huawei LiteOS操作系统,包括: 任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器、异常管理等操作系统基础组件,可以单独运行。
LiteOS Kernel模块 - 任务
任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。
Huawei LiteOS的任务模块提供任务的创建、删除、延迟、挂起、恢复等功能,以及锁定和解锁任务调度。任务是抢占式调度机制,同时支持时间片轮转调度方式。
可以类比理解windows任务管理器,查看每个任务占用内存和CPU的情况。
时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法。
每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。 CPU假如比做一个游戏机,现在A,B,C都想玩,如何去分配呢,时间片轮转调度就是来分配这游戏机的,先让A玩三分钟,再让B玩三分钟,再让C玩三分钟,再来让A玩三分钟,如此循环。
任务创建后,内核可以执行锁任务调度,解锁任务调度,挂起,恢复,延时等操作,同时也可以设置任务优先级,获取任务优先级。任务结束的时候,如果任务的状态是自删除状态(LOS_TASK_STATUS_DETACHED),则进行当前任务自删除操作。
LiteOS Kernel模块 - 内存管理 (1)
内存管理模块管理系统的内存资源,它是操作系统的核心模块之一。
Huawei LiteOS的内存管理提供静态内存和动态内存两种算法,支持内存申请、释放。目前支持的内存管理算法有固定大小的BOX算法、动态申请DLINK算法。
提供内存统计、内存越界检测功能。
内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
动态内存:在动态内存池中分配用户指定大小的内存块。
优点:按需分配。
缺点:内存池中可能出现碎片。
静态内存:在静态内存池中分配用户初始化时预设(固定)大小的内存块。
优点:分配和释放效率高,静态内存池中无碎片。
缺点:只能申请到初始化预设大小的内存块,不能按需申请。
动态内存管理主要是在用户需要使用大小不等的内存块的场景中使用。
当用户需要分配内存时,可以通过操作系统的动态内存申请函数索取指定大小内存块,一旦使用完毕,通过动态内存释放函数归还所占用内存,使之可以重复使用。
LiteOS Kernel模块 - 内存管理 (3) – 静态内存
当用户需要使用固定长度的内存时,可以使用静态内存分配的方式获取内存,一旦使用完毕,通过静态内存释放函数归还所占用内存,使之可以重复使用。
LiteOS Kernel模块 - 中断
中断是指出现需要时,CPU暂停执行当前程序,转而执行新程序的过程。
Huawei LiteOS的中断支持中断创建、开/关中断、恢复中断、中断使能、中断屏蔽等功能。
中断是计算机中的一个十分重要的概念,在现代计算机中毫无例外地都要采用中断技术。什么是中断呢?可以举一个日常生活中的例子来说明,假如你正在给朋友写信,电话铃响了。这时,你放下手中的笔,去接电话。通话完毕,再继续写信。这个例子就表现了中断及其处理过程:电话铃声使你暂时中止当前的工作,而去处理更为急需处理的事情(接电话),把急需处理的事情处理完毕之后,再回头来继续原来的事情。在这个例子中,电话铃声称为“中断请求”,你暂停写信去接电话叫作“中断响应”,接电话的过程就是“中断处理”,相应地,在计算机执行程序的过程中,由于出现某个特殊情况(或称为“事件”),使得CPU中止现行程序,而转去执行处理该事件的处理程序(俗称中断处理或中断服务程序),待中断服务程序执行完毕,再返回断点继续执行原来的程序,这个过程称为中断。 中断是一个过程
根据需要,用户通过中断申请,注册中断处理程序,可以指定CPU响应中断请求时所执行的具体操作。
LiteOS Kernel模块 - 队列
队列又称消息队列,是一种常用于任务间通信的数据结构,实现了接收来自任务或中断的不固定长度的消息,并根据不同的接口选择传递消息是否存放在自己空间。
Huawei LiteOS的消息队列支持队列的创建、删除、发送和接收功能。
消息以先进先出方式排队,支持异步读写工作方式
读队列和写队列都支持超时机制
发送消息类型由通信双方约定,可以允许不同长度(不超过队列节点较大值)消息
一个任务能够从任意一个消息队列接收和发送消息
多个任务能够从同一个消息队列接收和发送消息
当队列使用结束后,如果是动态申请的内存,需要通过释放内存函数回收
Huawei LiteOS中Message消息处理模块提供了以下功能:
LiteOS Kernel模块 -信号量
信号量是一种实现任务间通信的机制,实现任务之间同步或临界资源的互斥访问。常用于协助一组相互竞争的任务来访问临界资源。
l Huawei LiteOS的信号量支持信号量的创建、删除、PV等功能
信号量是一种非常灵活的同步方式,可以运用在多种场合中,实现锁、同步、资源计数等功能,也能方便的用于任务与任务,中断与任务的同步中。
互联框架解决不同协议终端的互联互通
• 家居场景里,终端使用不同类型的无线、有线通信协议,互联的难度大
• 设备、网关、云端没有统一的应用接口,无法实现互通
• CoAP(Constrained Application Protocol):由于物联网中的很多设备都是资源受限型的,即只有少量的内存空间和有限的计算能力,所以传统的HTTP协议应用在物联网上就显得过于庞大而不适用。 IETF的CoRE工作组提出了一种基于REST架构的CoAP协议。
• REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
优化Mesh自组网能力,满足海量终端组网
海量路灯自组网(快速自愈、高可靠性、支持1000+节点,组网时间<20mins)
传感框架
传感框架提供多传感器统一管理,更低时延、更高精度,传感智能化
• 提供多种传感算法,应用无需开发,直接调用
• 抽象不同类型传感器接口,屏蔽硬件细节,实现即插即用。
安全框架
安全框架提供端管云协同安全能力
下一篇: {华为物联网}操作系统