安全管理模块,漫谈Huawei LiteOS五大内核模块

下面对基础内核的任务管理、内存管理、中断管理、信号量、互斥锁五大模块进行简单介绍。内核的任务管理内核的内存管理的内存管理模块管理系统的内存资源,主要包括内存的初始化、分配及释放,是操作系统的核心模块之一。内核的中断管理

【摘要】 是华为面向IoT领域,构建的“统一物联网操作系统和中间件软件平台”,以轻量级(内核小于10k)、低功耗(1节5号电池最多可以工作5年),快速启动,互联互通,安全等关键能力,为开发者提供“一站式”完整软件平台,有效降低开发门槛、缩短开发周期。下面对基础内核的任务管理、内存管理、中断管理、信号量、互斥锁五大模块进行简单介绍。内核的任务管理

基本概念和功能

任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。

是一个支持多任务的操作系统,一个任务就表示一个线程,任务之间可以进行切换和通信。的任务管理模块提供任务创建、删除、延时、挂起和恢复、更改任务优先级、锁定任务调度和解锁任务调度、根据任务控制块查询任务 ID、根据 ID 查询任务控制块信息等功能。

因为内核是抢占式调度内核,所以高优先级的任务可以打断低优先级任务,低优先级任务必须在高优先级任务阻塞或结束后才能得到调度,同优先级任务会进行时间片轮转调度。优先级表示任务执行的优先顺序,决定了在发生任务切换时即将要执行的任务。中的任务一共有32个优先级 (0-31),最高优先级为 0,最低优先级为31。

任务控制块TCB

每一个任务都含有一个任务控制块(TCB)。TCB 包含了任务上下文栈指针( )、任务状态(包括就绪、运行、阻塞、退出4种状态)、任务栈大小(任务栈里保存着局部变量、寄存器、函数参数、函数返回地址等)、任务优先级、任务ID、任务名等信息。TCB相当于每个任务在内核中的身份证,可以反映出每个任务运行情况。

运作机制

在任务模块初始化时,系统会先申请TCB需要的内存空间。如果任务初始化成功,则系统对TCB内容进行初始化。用户创建任务时,系统会将任务栈进行初始化,预置上下文。此外,系统还会将“任务入口函数”地址放在相应位置。这样在任务第一次启动进入运行态时,将会执行“任务入口函数”。

内核的内存管理

主要功能

的内存管理模块管理系统的内存资源,主要包括内存的初始化、分配及释放,是操作系统的核心模块之一。

在系统运行过程中,内存管理模块通过对内存的申请/释放操作,来管理用户和OS对内存的使用,使内存的利用率和使用效率达到最优,同时最大限度地解决系统的内存碎片问题。

的内存管理分为动态内存管理和静态内存管理。

动态内存管理

在动态内存池中分配用户指定大小的内存块。

静态内存管理

在静态内存池中分配用户初始化时预设(固定)大小的内存块,初始化后块大小不可变更。

内核的中断管理

中断的介绍

中断是指出现需要时,CPU暂停执行当前程序,转而执行新程序的过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的事务。此时,CPU暂时中止当前程序的执行转而处理这个事务,这个过程就叫做中断。

为什么需要中断

众多周知,CPU的处理速度比外设的运行速度快很多,外设可以在没有CPU介入的情况下完成一定的工作,但某些情况下需要CPU为其做一定的工作。通过中断机制,在外设不需要CPU介入时安全管理模块,CPU可以执行其它任务,而当外设需要CPU时通过产生中断信号使CPU立即中断当前任务来响应中断请求。用户通过中断申请,注册中断处理程序,可以指定CPU响应中断请求时所执行的具体操作。这样可以使CPU避免把大量时间耗费在等待、查询外设状态的操作上,因此将大大提高系统实时性以及执行效率。

相关的硬件

与中断相关的硬件可以划分为三类:设备、中断控制器、CPU本身。

主要功能

支持:

内核的信号量

基本概念和功能

信号量()是一种实现任务间通信的机制,可以用于任务之间同步或临界资源的互斥访问。

信号量可以被任务获取或者申请,不同的信号量通过信号量索引号来唯一确定,每个信号量都有一个计数值和任务队列。通常信号量的计数值表示有效的资源数,即剩下的可被占用的互斥资源数。当任务申请(Pend)信号量时,如果申请成功,则信号量的计数值递减,如申请失败,则挂起在该信号量的等待任务队列上,一旦有任务释放该信号量,则等待任务队列中的任务被唤醒开始执行。

信号量运作示意图

安全管理模块

使用场景

信号量是一种非常灵活的同步方式,可以运用在多种场合中,实现锁、同步、资源计数等功能,也能方便的用于任务与任务,中断与任务的同步中。

用作互斥时,信号量创建后记数是满的,在需要使用临界资源时,先申请信号量安全管理模块,漫谈Huawei LiteOS五大内核模块,使其变空,这样其他任务需要使用临界资源时就会因为无法申请到信号量而阻塞,从而保证了临界资源的安全。

用作同步时,信号量在创建后被置为空,任务1申请信号量而阻塞,任务2在某种条件发生后,释放信号量,于是任务1得以进入或态,从而达到了两个任务间的同步。

用作资源计数时,信号量的作用是一个特殊的计数器,可以递增或者递减,但是值永远不能为负值,典型的应用场景是生产者与消费者的场景。

用作中断与任务的同步时,可以在中断未触发时将信号量的值置为0,从而堵塞中断服务处理任务,一旦中断被触发,则唤醒堵塞的中断服务处理任务进行中断处理。

内核的互斥锁

基本概念和功能

互斥锁()又称互斥型信号量,是一种特殊的二值信号量,用于实现对共享资源的独占式处理。互斥锁主要使用在多任务环境下,此时往往存在多个任务竞争同一共享资源的应用场景。另外, 通过优先级继承算法,解决了信号量存在的优先级翻转问题。

运作机制

任意时刻互斥锁只有两种状态:开锁或闭锁。当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权。当该任务释放它时,该互斥锁被开锁,任务失去该互斥锁的所有权。当一个任务持有互斥锁时,其他任务将不能再对该互斥锁进行开锁或持有,所以其他任务此时访问这个公共资源将会被阻塞,直到互斥锁被持有该锁的任务释放后,其他任务才能重新访问该公共资源。

互斥锁运作示意图

安全管理模块

如果大家对感兴趣,还可以报名参与我们的 设备开发实战营活动

点击关注,第一时间了解华为云新鲜技术~

安全管理模块

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请添加站长微信举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.zhiyeeedu.com/46280.html

(0)
上一篇 2024年 4月 15日 上午9:32
下一篇 2024年 4月 15日 上午9:33

相关推荐

发表回复

登录后才能评论
联系我们

联系我们

13823602984

在线咨询: QQ交谈 邮件:zhiyeeedu@163.com 工作时间:周一至周五,9:00-18:00,节假日休息

关注微信
关注微信
返回顶部
职业教育资格考证信息平台
在线客服