gpt4 book ai didi

operating-system - 操作系统如何处理上下文切换?

转载 作者:行者123 更新时间:2023-12-04 18:12:11 26 4
gpt4 key购买 nike

据我所知,每个操作系统都需要有某种机制来定期检查它是否应该运行某些任务并暂停其他任务。

一种方法是某种计时器,操作系统将在其到期时检查它是否应该运行/挂起某个任务。

一般来说,在可能是某种 ISR 的 ARM 系统上说。

我真正的问题是,我一直只能想象这一点,而没有在某处看到它。有人可以指出一些免费/开放的 RTOS 代码,我可以在其中实际看到处理抢占/调度的代码吗?

最佳答案

freertos.org .整个操作系统是开源的,就在那里供您查看。并且有几十个不同的端口可以比较和对比。对于上下文切换代码,您需要查看端口目录中的任何一个文件,称为 port.c、port.asm 等。是的,在 freertos 的情况下,所有上下文切换都是在中断中执行的(a滴答定时器 ISR,或任何其他 SysCall 中断)。

上下文切换在很大程度上是特定于处理器的,因为要保存的寄存器列表和保存它们的汇编代码在处理器系列之间有所不同,有时在给定的系列中也是如此。因此,每个端口都有一个用于此代码的单独文件。

另一方面,调度(选择下一个要运行的任务)在名为 tasks.c 的文件中完成。 ,这是所有端口通用的,并引用了特定于端口的代码。

关于operating-system - 操作系统如何处理上下文切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11483263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com