商用型 | 系统功能稳定、可靠,有完善的技术支持,但价格昂贵,如VxWorks、WinCE等 |
免费型 | 价格方面有优势,主流的有嵌入式Linux、uCOS都是源码开放的商业EOS |
系统软件 | 控制、管理计算机系统资源 | 嵌入式操作系统、嵌入式中间件(Java、CORBA)等等 |
支撑软件 | 辅助软件开发的工具 | 系统分析设计工具、仿真开发工具、交叉开发工具等 |
应用软件 | 面向应用领域 | 手机软件、交换机软件、路由器软件等 |
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。2、μC/OS-II特点:
程序:程序(program)是一组指令的有序集合。10、任务的内容:
进程:进程(process)常常被定义为程序的执行。可以把一个进程看成是一个独立的程序,在内存中有其完备的数据空间和代码空间。
线程:线程(tread)则是某一进程中一路单独运行的程序。也就是说,线程存在于进程之中。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据,但各有其自己的堆栈。由于堆栈是每个线程一个,所以局部变量对每一线程来说是私有的。由于所有线程共享同样的代码和全局数据,它们比进程更紧密,比单独的进程间更趋向于相互作用,线程间的相互作用更容易些,因为它们本身就有某些供通信用的共享内存:进程的全局数据。
任务扩展表用来存放实现任务扩展处理的例程,实时内核通过查找任务扩展表来获取扩展处理的入口函数。16、任务调度
通过创建任务扩展表,把任务扩展例程添加到系统中去;通过删除任务扩展表则可把任务扩展例程删除掉。
调度用来确定多任务环境下任务执行的顺序和在获得CPU资源后能够执行的时间长度。25、优先级反转(Priority Inversion):高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务的现象。
操作系统通过一个调度程序来实现调度功能。调度本身需要一定的系统开销,需要花费时间来计算下一个可被执行的任务。
调度程序的设计需要优先考虑最重要的需求,然后在各种因素之间进行折衷处理。
常用的任务调度算法有基于优先级的可抢占调度和时间片轮转调度算法。
优先级反转和“死锁”的区别?26、动态优先级为EOS解决优先级反转问题提供了思路,解决优先级反转现象的常用协议为: 优先级继承协议、优先级天花板协议。
优先级反转是高优先级的任务在特定的时间内得不到响应(打破实时性)
“死锁”是(无外界干涉的情况下)永远的阻塞
点个赞吧,祝大家考个好成绩!!!
更多回帖