热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

常见的进程调度算法

常见的进程调度算法一、先来先服务于短作业优先1.先来先服务调度算法(FCFS)算法是一种最简单的调度算法,该算法即可用于作业调度,也可用于进

常见的进程调度算法
一、先来先服务于短作业优先
1.先来先服务调度算法
(FCFS)算法是一种最简单的调度算法,该算法即可用于作业调度,
也可用于进程调度。
2.短作业(进程)优先调度算法
SJ(P)F算法是指对短作业或进程优先调度的算法。它们可以分别用
于作业调度和进程调度
短作业优先(SJF)是指从后备队列中选择一个或若干个估计运行时间
最短的作业,将它们调入内存运行
短进程优先(SPF)则是从就绪队列中选出一个估计运行时间最短的进
程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件
而被阻塞放弃处理机时再重新调度
二、高优先权优先
1.优先权调度算法的类型
为了照顾紧迫型作业使之在进入系统后便获得优先处理,引入了最高优
先权优先算法。常被用于批处理系统中(系统将从后备队列中选择若干个
优先权最高的作业装入内存);也可用于实时系统中;还可用于多种操作
系统中的进程调度算法(把处理机分配给就绪队列中优先权最高的进程)。
这时把该算法分为两种:
(1)非抢占式优先权算法
(2)抢占式优先权算法
2.高响应比优先
在批处理系统中,短作业优先算法是一种比较好的算法,其主要的不足
之处是长作业的运行得不到保证
三、基于时间片的轮转
1.时间片轮转法
(1)基本原理
系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度
时把CPU分配给队首进程,并令其执行一个时间片。时间片的大小从几ms到
几百ms。当执行的时间片用完时,由一个计时器发出时钟中断的请求,调度
程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,
再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。
换言之。系统能在给定时间内响应所有用户的请求。
2.多级反馈队列
前面几种算法都有一定的局限性
(1)应设置多个就绪队列并为各个队列赋予不同的优先级
(2)当一个新进程进入内存后,首先将它放入第一队列的末尾按FCFS原则排
队等待调度
(3)仅当第一队列空闲时,调度程序才调度第二队列中的进程运行。


推荐阅读
  • 面试题总结_2019年全网最热门的123个Java并发面试题总结
    面试题总结_2019年全网最热门的123个Java并发面试题总结 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • RocketMQ在秒杀时的应用
    目录一、RocketMQ是什么二、broker和nameserver2.1Broker2.2NameServer三、MQ在秒杀场景下的应用3.1利用MQ进行异步操作3. ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 本文详细介绍了Linux系统中用于管理IPC(Inter-Process Communication)资源的两个重要命令:ipcs和ipcrm。通过这些命令,用户可以查看和删除系统中的消息队列、共享内存和信号量。 ... [详细]
  • 本文总结了《编程珠玑》第12章关于采样问题的算法描述与改进,并提供了详细的编程实践记录。参考了其他博主的总结,链接为:http://blog.csdn.net/neicole/article/details/8518602。 ... [详细]
  • 操作系统如何通过进程控制块管理进程
    本文详细介绍了操作系统如何通过进程控制块(PCB)来管理和控制进程。PCB是操作系统感知进程存在的重要数据结构,包含了进程的标识符、状态、资源清单等关键信息。 ... [详细]
  • 双指针法在链表问题中应用广泛,能够高效解决多种经典问题,如合并两个有序链表、合并多个有序链表、查找倒数第k个节点等。本文将详细介绍这些应用场景及其解决方案。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • Java高并发与多线程(二):线程的实现方式详解
    本文将深入探讨Java中线程的三种主要实现方式,包括继承Thread类、实现Runnable接口和实现Callable接口,并分析它们之间的异同及其应用场景。 ... [详细]
  • 本文详细介绍了数据库并发控制的基本概念、重要性和具体实现方法。并发控制是确保多个事务在同时操作数据库时保持数据一致性的关键机制。文章涵盖了锁机制、多版本并发控制(MVCC)、乐观并发控制和悲观并发控制等内容。 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
author-avatar
崔佳丽童鞋
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有