如果并发线程数为 10 且 SysTick 时间为 10 毫秒,则 1 个线程执行时间(量子)是多少?

What is 1 thread execution time (quantum) if number of concurrent threads is 10 and SysTick time is 10mSec?

我目前正在使用 RTOS,我有 Time Tick Value = 10 mSecNumber of concurrent running tasks = 10

现在我的问题是,我的单线程时间(量子)应该是多少?

我想,Single Thread Time = Time Tick Value / Number of concurrent running tasks但我不确定。如果我在这里有任何错误,请纠正我。

还有哪些因素导致单线程时间发生变化?

术语:

Time Tick Value: The available CPU time is divided into time slices and the RTX kernel assigns a time slice to each task (default time slice is set to 10 ms).

Single Thread Time is the time slice taken by one thread in round robbin scheduling if their are total 10 tasks (threads).

Number of concurrent running tasks always remain constant. It will not cover thread waiting time.

我想知道的是,是将 10 毫秒的时间片分配给单个线程,还是将其再次分成 10 个部分以用于 10 个并发 运行 线程(假设我正在使用循环调度)。

对于使用 10 毫秒时间片的循环调度程序,如果有一个 CPU 并且始终有 10 个任务;那么总会有一个任务实际使用 CPU 和 9 个任务等待使用 CPU。在这种情况下,调度程序给任务 10 毫秒的 CPU 时间,然后抢占并执行任务切换到下一个任务并给它 10 毫秒的时间,依此类推;所以每个任务每 100 毫秒将获得 10 毫秒的 CPU 时间。

What I wanna know is, whether 10 mSec time slice given to single thread or it gets divide again into 10 parts for 10 concurrent running threads (Consider I am using round robbin scheduling).

对于循环法,时间片长度是任何任务将被分配的时间 - 10 毫秒片不会被分割成更小的片(否则它将是一个具有 1 毫秒时间片的循环法,或者它不会是循环法 - 例如会变成 "variable time slice").