优先级调度算法又分为
优先级调度算法的两个类型:一种是抢占式的优先级调度算法,一种是非抢占式的优先级调度算法。

常见的优先级调度算法包括以下两种:
1. 非抢占式优先级调度算法:在该算法中,一旦进程开始执行,就会一直运行,直到进程完成或等待 I/O 等操作时被阻塞。当其他进程在队列中等待时,当前进程不会被抢占,因此可能导致某些进程长时间等待而无法执行。
2. 抢占式优先级调度算法:在该算法中,正在执行的进程可以被更高优先级的进程抢占,从而让更紧急任务优先得到执行。该算法可以更好地管理资源,但也可能导致某些低优先级进程长时间等待而无法执行。

需要注意的是,优先级调度算法存在优先级反转的问题,即低优先级进程等待高优先级进程使用共享资源时,高优先级进程又因为等待低优先级进程释放资源而无法执行,从而导致了进程优先级的反转。为了解决这个问题,可以采用各种算法,如信号量、管程等,实现资源的同步和互斥访问,保障进程优先级的正确性。
负载均衡算法有哪些?
1、轮询调度 轮询调度算法就是以轮询的方式依次将请求调度到不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。
2、最小连接调度 最小连接调度算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务器的负载情况。 在实际实现过程中,一般会为每台服务器设定一个权重值,这就是加权最小连接

3、 基于局部性的最少链接(LBLC) 基于局部性的最少链接调度(以下简称为LBLC)算法是针对请求报文的目标IP地址的负载均衡调度,目前主要用于Cache集群系统,因为在Cache集群中客户请求报文的目标IP地址是变化的。 LBLC调度算法先根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器; 若服务器不存在,或服务器超载或有服务器处于其一半的工作负载,则用“最少链接”的原则选出一个可用的服务器,将请求发送到该服务器。
4、带复制的基于局部性最少链接(LBLCR) 带复制的基于局部性最少链接调度以下简称为LBLCR)算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。 LBLCR调度算法将“热门”站点映射到一组Cache服务器(服务器集合),当该“热门”站点的请求负载增加时,会增加集合里的Cache服务器,来处理不断增长的负载; 当该“热门”站点的请求负载降低时,会减少集合里的Cache服务器数目。
5、目标地址散列调度 目标地址散列调度算法是针对目标IP地址的负载均衡,但它是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。 目标地址散列调度算法先根据请求的目标IP地址,作为散列从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
6、 源地址散列调度 和目标地址散列调度类似,唯一的区别是按照源地址为散列函数的散列键。
到此,以上就是小编对于常用的调度算法有哪些?的问题就介绍到这了,希望介绍的2点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。