最近一直在忙着实验室的一个应用程序的开发,这个应用程序是用java写一个实时系统的调度算法分析和仿真模拟。当然这个过程免不了去收集实时系统调度算法的相关资料,以及了解各种实时系统算法的实现和调度算法应用的范围。
接下来我会从以下几个方面来讨论计算机系统的调度算法:
首先是计算机为什么需要调度算法?计算机为什么需要调度算法呢,其实这等同于人为什么需要对需要做的事情列一个顺序,其中人对自己所需要做的事情排序的一个过程就是调度算法,也就是说调度算法是计算机系统对系统内部任务的一个排序的过程。当然这个只是一个通俗的比喻而已,只是为了让大家了解什么是调度算法,真正调度算法并非表面上那么简单。既然说到了计算机为什么需要调度算法这个话题了,就不得不回顾一下计算机发展史了,计算机在最初的时候是没有操作系统的说法的,更别提调度算法,计算机在最初的时候是没有通用计算组件(通用计算组件——是能执行基本运算的计算机组件,比说加法器、浮点运算器件等)的,计算组件都是根据具体的需求来设计的,也就是说通用计算部分和复杂计算是集成在一起的,也就是说还没有CPU的概念,CPU是后来将通用计算组件独立出来之后而成的部件,也就是其实CPU是计算机中通用计算的硬件模块。同理内存、显卡、硬盘等都是在整个计算机发展阶段对各个部件的模块化之后的结果。可能大家要问了这些东西和调度算法有什么关系呢?其实关系大着,因为调度算法就是为了更加高效的使用这些资源而产生的,比如正如大家知道的任务调度算法是为了更好的利用CPU,磁盘调度算法是为了更好的使用磁盘等。
计算机调度算法在操作系统中是如何工作的、调度算法在哪几种情况被调用?计算机调度算法主要是根据任务的相关属性计算任务的优先级,然后根据任务的优先级进行任务的调度。1.任务在结束的时候会调用调度算法调度新的任务运行,2.时钟中断会调用调度算方法计算是否有更高优先级的任务需要运行。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/m47838704/article/details/47085589