FreeRTOS 学习笔记(一) OS基础

一、知识点

  • 1、操作系统的主要功能是为应用程序的运行创造良好的环境。
  • 2、操作系统的主要模块可以分为:

(1)进程调度

1)通常进程有三种状态,即阻塞态,就绪态,运行态,其中阻塞态和就绪态同属于非运行态。阻塞态是指进程等待某个事件的到来,或等待其他进程占用的互斥性资源上时所处的状态;就绪态是指进程等待系统分配处理器以便运行时所处的状态;当进程占用处理器并正在运行时,称该进程处于运行态。

2)此外,挂起态通常也被作为进程所处的非运行状态的一种,与阻塞态和就绪态不同的是,“挂起”的进程通常是被操作系统清理出内存时所处的一种状态。由于处理器的资源是有限的,在资源不足的情况下,操作系统对在内存中的程序进行合理安排,其中有的进程被暂时调离出内存,当条件允许的时候,会被操作系统再次调回内存,重新进入就绪态。

3)进程调度的方式通常又分为非剥夺式和剥夺式。非剥夺式是指当某个进程占用处理器后便让它一直占用,直到进程完成或发生进程调度某事件而阻塞时,才将处理器让给另一个进程。而剥夺方式是指不管当前处理器资源是否空闲,当一个进程请求占用处理器资源时,系统可以基于某种原则,剥夺正在占用处理器资源的进程,使其退出运行态。剥夺原则有:优先权原则,短进程优先原则,时间片原则。

(2)进程通信

1)进程通信就是在不同的进程之间传播或交换信息,进程通过与内核及其他进程之间的互相通信来协调它们的行为,包括数据传输、共享数据、通知事件、资源共享和进程控制。

(3)存储管理

1)记录存储器的使用情况,包括对使用部分和空闲部分的记录;

2)内存空间的分配,当有进程请求分配内存空间,且条件满足时予以分配;

3)当多个进程请求内存空间,而现有内存空间又无法同时满足所有进程要求时,依据某种策略将某个或部分进程存入磁盘,另一部分装入内存,完成内存空间的交换。

(4)文件系统

1)文件系统为程序员提供一个良好,清晰的独立于设备的抽象文件模型,而不必考虑磁盘和其他I/O设备的操作细节。

(5)输入输出

二、代码

  • 1、在FreeRTOS中
    1
    vTaskSuspend() //使一个任务进入挂起态
1
vTaskResumeFromISR() //唤醒一个挂起态的任务