【问题标题】:Is a real-time system sdhedulable?实时系统是否可调度?
【发布时间】:2014-03-07 21:22:06
【问题描述】:

在我的操作系统书中有一个关于调度系统的问题。

问题是: 实时系统需要处理两个语音呼叫,每个呼叫每 5 毫秒运行一次,每个突发消耗 1 毫秒的 CPU 时间,加上一个 25 帧/秒的视频,每帧需要 20 毫秒的 CPU 时间。系统是否可调度?

解决方案手册有这个答案: 每个语音呼叫每秒运行 200 次,每次突发使用 1 毫秒,因此每个 语音通话需要每秒 200 毫秒或他们两个需要 400 毫秒。这 视频每秒运行 25 次,每次使用 20 毫秒,总共 每秒 500 毫秒。他们一起消耗 900

这本书没有解释如何得出这个结论,也没有给出算法。所以我希望有人能解释这个答案是如何得出的?

谢谢。

【问题讨论】:

    标签: operating-system real-time scheduling


    【解决方案1】:

    所需的时间片比 1 秒小很多,所以可以尝试看看不同的任务是否能在 1 秒内完成它们的工作。

    • 语音每 5 毫秒运行一次。 1/0.005 = 200 次/秒。

    • 视频以 25 帧/秒的速度运行。 = 25 次/秒

    • 语音每次运行需要 1 毫秒 = 200 毫秒/秒。

    • 视频每次运行需要 20 毫秒 = 25*0.020 = 500 毫秒

    • 2 个语音任务 + 1 个视频任务 = 200ms*2 + 500ms = 900ms

    希望 RTOS 如何安排此类任务取决于您可以忍受不同任务的抖动程度。例如2 个语音任务可以具有相同的优先级,但高于视频任务 - 允许语音任务在需要时以先进先出顺序运行。 (意味着一个语音任务最多需要等待 1ms 才能被调度),视频任务获得剩余的 CPU 时间

    【讨论】:

    • 谢谢。你把它分解得很好。我很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 2012-08-27
    • 1970-01-01
    • 2012-11-11
    • 2011-07-07
    • 2015-03-12
    相关资源
    最近更新 更多