单片机
返回首页

OK6410A 开发板 (八) 79 linux-5.11 OK6410A schedule总览

2022-08-17 来源:csdn

__schedule 功能描述

__schedule


1.完成一些必要的检查, 并设置进程状态, 处理进程所在的就绪队列


2.调度全局的pick_next_task选择抢占的进程


2.1

如果当前cpu上所有的进程都是cfs调度的普通非实时进程, 则直接用cfs调度找到进程

如果无程序可调度则找到 idle进程


2.2

否则从优先级最高的调度器类sched_class_highest(目前是stop_sched_class)开始依次遍历所有调度器类的pick_next_task函数, 选择最优的那个进程

//本例有 dl -> rt -> fair -> idle

    //支持smp 的会有stop_sched_class -> dl_sched_class -> rt_sched_class -> fair_sched_class -> idle_sched_class


3.context_switch 完成进程上下文切换


3.1 调用switch_mm_irqs_off,把虚拟内存从一个进程映射切换到新进程中


3.2 调用switch_to,从上一个进程的处理器状态切换到新进程的处理器状态。

这包括保存、恢复栈信息和寄存器信息


调度器与调度策略

level1 : 6种调度策略

SCHED_NORAML

SCHED_BATCH

SCHED_IDLE

SCHED_RR

SCHED_FIFO

SCHED_DEADLINE

level2 : 调度器类

CFS : 封装了 SCHED_NORAML SCHED_BATCH

RT : 封装了 SCHED_RR SCHED_RR

IDLE : 封装了 SCHED_IDLE

STOP :

DEADLINE:


调度时机

分两种情况

1.一般来说,直接调度就行了

2.但是有的会分为两步,先置位 need_sched , 然后再某个时机判断 need_sched,然后调度


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 如何构建一个触摸传感器电路

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章