嵌入式操作系统简介

嵌入式操作系统简介

嵌入式操作系统简介

嵌入式操作系统是指用于嵌入式系统的操作系统,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。

实时操作系统RTOS

实时性的本质是任务处理所花费时间的可预测性,即任务需要在规定时间内完成。任务执行的时间可以根据系统的软硬件信息进行确定性预测,也就是说,如果硬件可以做这件工作,那么急于实时操作系统的软件将可以确定性地做这件工作。
实时系统的正确性依赖于运行结果的逻辑正确性和运行结果产生的时间正确性,即实时系统必须在规定的时间范围内正确地响应外部物理过程的变化。其中又分为软实时和硬实时,对于软实时来说没有满足指定的时间约束不会导致灾难性的后果,但对于硬实时来说会导致灾难性后果。
实时操作系统应具有以下特点:异步的时间响应、切换时间和中断延迟时间确定、优先级中断和调度、抢占式调度、内存锁定、连续文件和同步。

代码临界区

定义:指一段不可分割的代码,一旦执行,不能被中断。
实现临界区的方法:

  1. 如果临界段可能被中断,那么就需要关中断以保护临界段,执行后打开中断。
  2. 如果临界段可能被任务级代码打断,那么需要锁调度器保护临界段。

进程、线程和任务

1.进程 所谓进程,是一个动态的概念。一个可执行模块(可执行文件)被操作系统加载到内存, 分配资源,并加入到就绪队列后,就形成了一个进程。一般情况下,进程有独立的内存空间 (比如在典型的 PC 机操作系统中,如果目标 CPU 是32 位则一个进程就有独立的 4GB 的虚 拟内存空间),如果不通过 IPC 机制,进程之间是无法交互任何信息的,因为进程之间的地 址空间是独立的,不存在重叠的部分;
2.线程一般情况下,线程是 CPU 可感知的最小的执行单元,一个进程往往包含多个线程,这 些线程共享进程的内存空间,线程之间可以直接通过内存访问的方式进行通信,线程之间共 享同进程的全局变量,但每个线程都有自己的堆栈和硬件寄存器;
3.任务概念同线程类似,但与线程不同的是,任务往往是针对没有进程概念的操作系统来说的, 比如嵌入式操作系统。这些操作系统没有进程的概念,或者说整个操作系统就是一个进程, 这种情况下,任务便成了操作系统中最直接的执行单位。
*• 任务=程序代码+堆栈+任务控制块
• 任务控制块保存着所有与进程相关的信 息,包括堆栈的指针和优先级,相当于一 个任务在操作系统中的身份证。
• 任务的堆栈则用来保存任务分配的局部 变量,此外,当任务被切换出去时,堆栈还 保存当前寄存器的值
• 任务的状态:休眠态、就绪态、运行态、 挂起态、被中断态 。

任务切换

当多任务内核决定运行另外的任务时,保存正在运行任务的当前状态,即保存CPU寄存器中的全 部内容。这些内容保存在任务自己的栈区之中。入栈工作完成以后,就把下一个将要运行的任务 的当前状态从任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行。这个过程就称为任 务切换,又称上下文切换(CONTEXT SWITCH)。上下文是指某一时间点 CPU 寄存器和程序 计数器的内容。
多任务的两种执行方式:
• 并发执行:指的是任务数多于CPU核数, 通过操作系统的各种任务调度算法,轮 流占用CPU资源,实现看上去多个任务 在某时间段内表现为同时执行。
• 并行执行:指的是任务数小于等于CPU 核数,即任务真的是同时执行的。
为方便对多个就绪任务的调度管理, UC/OSIII中将已经就绪的任务放到任务就绪表里,任务就绪表 有两部分:优先级位映射表OSPrioTbl[]和就绪任务列表OSRdyList[]。

猜你喜欢

转载自blog.csdn.net/qq_46523260/article/details/106796182