休眠态、就绪态、运行态、挂起态、被中断态。休眠态:在休眠态下,任务尚未被激活或已经完成,不会被调度执行。任务处于等待某个事件发生或等待特定条件满足的状态。在这种状态下,任务暂时不占用系统资源,以节省能量和提高系统效率。就绪态:就绪态表示任务已经准备好执行,但还未得到CPU的分配。
TASK_RUNNING:进程当前正在运行,或者正在运行队列中等待调度。TASK_INTERRUPTIBLE:进程处于睡眠状态,正在等待某些事件发生。进程可以被信号中断。接收到信号或被显式的唤醒呼叫唤醒之后,进程将转变为 TASK_RUNNING 状态。
.轮询:在处理主要任务时,我们不断地询问是否应该处理其他任务。如果是这样,我们应该处理其他任务 2.前台和后台:处理主任务时设置中断。可以根据外部情况触发中断来中断主任务来处理中断任务 3.当有一个操作系统时,可以同时做很多事情。
主要的内容有初始化系统硬件的寄存器,初始化CPU及其外围设备的配置,使之正常运行,把硬件带入正常的运行环境。初始化操作系统环境,把软件系统带入正常的环境。初始化各种驱动程序,为应用软件准备好执行环境。初始化应用程序的运行环境。操作系统涉及到很多部分,有很多的细节,概括起来就是这些了。
在嵌入式实时操作系统中,任务为线程的统称。根据查询相关公开信息显示,在嵌入式操作系统中,任务相当于Linux系统的线程,是一个单一顺序的执行流,也是分配运行资源CPU运行时间的基本单位,为线程的统称。
其实任务是个概念化的东西,也就是说你的嵌入式系统设计时会分功能模块,每个功能模块完成不同的功能,这个功能就可以理解为任务。你可以把每个任务按实际需求情况分为几个进程,这几个进城各自完成不同的工作,配合完成你的任务功能。
1、实时操作系统的实时调度算法可以分为基于优先级的调度算法(Priority-driven scheduling-PD)、基于CPU使用比例的共享式的调度算法(Share-driven scheduling-SD)、以及基于时间的进程调度算法(Time-driven scheduling-TD)。
2、先来先去服务 (FCFS)FCFS调度算法以进程进入就绪队列的先后顺序进行调度。它只考虑进程的等待时间,而不考虑其执行时间。算法简单直接,易于实现,有利于长作业和CPU繁忙的作业。然而,它不支持抢占式调度,可能导致短作业或I/O繁忙的作业长时间等待。
3、Linux内核中的进程调度机制包含多种策略,其中关键的有4种调度类,按优先级从高到低分别为停止类、实时类和完全公平调度类(CFS)。调度过程遵循一定的规则,如优先从停止类挑选进程,然后实时类,以此类推。
世纪90年代,在分布控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,嵌入式系统进一步飞速发展,而面向实时信号处理算法的DSP产品则向着高速度、高精度、低功耗的方向发展。随着硬件实时性要求的提高,嵌入式系统的软件规模也不断扩大,逐渐形成了实时多任务操作系统(RTOS),并开始成为嵌入式系统的主流。
通用计算机系统与嵌入式计算机系统的专业化分工发展,导致20世纪末、21世纪初,计算机技术的飞速发展。计算机专业领域集中精力发展通用计算机系统的软、硬件技术,不必兼顾嵌入式应用要求,通用微处理器迅速从2838486到奔腾系列;操作系统则迅速扩张计算机基于高速海量的数据文件处理能力,使通用计算机系统进入到尽善尽美阶段。
第三阶段是以嵌入式操作系统为标志的嵌入式系统。
嵌入式软件方向主要涉及以下几个方面的内容:嵌入式操作系统、嵌入式系统架构、硬件软件接口、实时系统、嵌入式应用开发等。研究方向可以包括但不限于:嵌入式系统的设计与优化、嵌入式实时系统调度算法、嵌入式软件测试与验证、嵌入式系统安全等。
一般情况下,嵌入式操作系统可以分为两类,一类是面向控制、通信等领域的实时操作系统,如WindRiver公司的VxWorks、ISI的pSOS、QNX系统软件公司的QNX、ATI的Nucleus等;另一类是面向消费电子产品的非实时操作系统,这类产品包括个人数字助理(PDA)、移动电话、机顶盒、电子书、WebPhone等。
一个正在执行的任务放弃处理器的条件为:自愿放弃处理器(等待资源或执行完毕);有高优先级任务启动,该高优先级任务将抢占其执行。除了共享资源的临界段之外,高优先级任务一旦准备就绪,可在任何时候抢占低优先级任务的执行。
1、与通用操作系统不同,实时操作系统注重的不是系统的平均表现,而是要求每个实时任务在最坏情况下都要满足其实时性要求,也就是说,实时操作系统注重的是个体表现,更准确地讲是个体最坏情况表现。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。⑦固化代码。
2、嵌入式系统(简称“嵌”)和通用计算机(简称“通”)的主要区别包括以下几点:形式与类型 “通”:实实在在的计算机。
3、嵌入式操作系统会为了外部的事情而终止内部的一切事情,为更重要的事情服务。而通用操作系统则没有这样的特殊设计,有可能由于系统的一些任务而阻止相应中断,对中断置之不理。并且多久后能够相应也不确定,而嵌入式操作系统就能够确定一定的时间范围能。起码理论上已经可以。