什么是时间片轮转调度?时间片轮转调度算法基本原理

描述

  单片机在系统中充当CPU的角色,需要同时处理多个事务。如与PC机通信,将收到的信息转发给从机,监视数据处理情况等一些繁杂而又重要的事情。如何协调好各个事务之间的关系,并有条不紊的执行各个事务,这就需要在编写程序时采用合适的算法进行处理。

  一般的方法就是在单片机中移植操作系统,由操作系统来管理各个事务。但由于系统要占用一定的内部资源,这对本身资源非常有限的单片机来说是不现实的。所以,很少在单片机中采用操作系统,而是采用时间片轮询调度的方法进行各任务的管理。

  时间片,简单来说就是CPU分配给各个程序的时间,使各个程序从表面上看是同时进行的,而不会造成CPU资源浪费。

  在宏观上:我们可以同时打开多个应用程序,每个程序并行不悖,同时运行。但是在微观上:由于只有一个CPU,一次只能处理程序要求的一部分,如何处理公平,一种方法就是引入时间片,每个程序轮流执行。

  时间片轮询调度是一种古老而又简单的算法,广泛运用于无操作系统的微处理器中。在系统中,每个进程被分配一个时间段,称作时间片,即该进程允许运行的时间。

  如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。

  时间片轮询调度中有趣的一点是如何确定时间片的长度。从一个进程切换到另一个进程是需要一定时间的,因为要保存和装入寄存器值及内存映像等保护现场的工作,更新各种表格和队列等。假如进程切换,有时称为上下文切换,需要的时间为5毫秒,再假设时间片长度设定为20毫秒,则在做完20毫秒有用的工作之后,CPU将花费5毫秒来进行进程切换。CPU时间的20%被浪费在了管理开销上。

  进程切换时间一定的情况下,如果时间片长度设定的越小时,这种浪费更明显。所以,时间片长度与CPU利用率是一对不可调和的矛盾,必须处理好它们之间的关系。

  为了提高CPU效率,我们可以将时间片长度设得大一些,这时浪费的时间只有就会相对减小。但在一个分时系统中,各个任务对时间片长度的要求是不一致的。例如在一个系统中,可能要求每秒钟更新一下显示内容,每几十毫秒要扫描一下按键,每几毫秒要检测一下串口缓冲区等……可见,各个任务对时间的依赖程度是不一样的。如果时间片设得太长,某些对实时性要求高的任务可能得不到执行,使得系统的实时性变差。

  总之,时间片的设定应满足对实时性要求最高的那个任务,这样才能确保每个任务都可以及时得到执行而不被错过。

  时间片轮转调度算法基本原理

  在早期的时间片轮转法中,系统将所有的就绪进程按先来先服务的原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。

  时间片的大小从几ms到几百ms.当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片的处理机执行时间。

  单片机时间片轮询和时间调度的区别

  单片机时间片轮询和时间调度是两个与任务管理相关的概念,它们在实现方式和目的上存在一些区别。

  时间片轮询是一种任务调度方法,它将时间分时,分别分配给不同的任务去执行任务。每个任务被分配一个时间段,即时间片,用于执行其操作。当时间片结束时,如果任务仍在运行,CPU将被剥夺并分配给另一个任务。这种方法的目的是确保每个任务都有机会执行,从而实现多个任务之间的公平运行。时间片轮询常用于无操作系统的微处理器中,它维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。

  而时间调度则是一种更广泛的概念,它涉及对任务执行顺序和时间的整体管理。时间调度可以包括多种不同的算法和策略,以优化系统性能、响应时间和任务完成率。它可能考虑任务的优先级、资源需求、依赖关系等因素,以确定任务的执行顺序和时间。时间调度不仅关注任务的公平运行,还关注整体系统效率和任务完成的质量。

  单片机时间片轮询是时间调度的一种具体实现方式,它关注于将时间分配给不同的任务以确保公平运行。而时间调度则是一个更广泛的概念,涉及任务执行顺序和时间的整体管理,可以包含多种不同的算法和策略。

  单片机中的任务调度和时间管理是一个复杂且多样的领域,不同的系统和应用可能会采用不同的方法和策略。因此,在实际应用中,需要根据具体需求和系统特点来选择合适的任务调度和时间管理方法。

  审核编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分