首页 > 其他分享 >计算机知识科普问答--16(76-80)

计算机知识科普问答--16(76-80)

时间:2024-09-24 18:52:09浏览次数:3  
标签:优先级 16 -- 系统 作业 调度 76 算法 进程

文章目录

76、什么是处理机调度?调度算法主要有哪几种?

1. 处理机调度(Processor Scheduling)

处理机调度是操作系统的重要功能之一,它决定了哪个进程或线程可以占用CPU进行执行。当有多个进程或线程在同一时间处于就绪态时,操作系统必须通过调度算法选择其中一个进程或线程来执行。

处理机调度的目标是提高系统的效率、响应时间和资源利用率,同时保持公平性和合理性。它可以根据不同的需求调整优先级、时间片等参数,以适应不同的系统场景,如实时系统、批处理系统、交互系统等。

2. 处理机调度的分类

根据调度的时机和范围,处理机调度可以分为以下几类:

  • 长程调度(Long-Term Scheduling):决定哪个作业或进程可以进入系统。通常用于批处理系统,选择进入内存准备执行的作业。
  • 中程调度(Medium-Term Scheduling):决定哪些进程要被交换进内存或交换出到外存。用于系统负载过大时,将部分进程挂起,释放内存。
  • 短程调度(Short-Term Scheduling,或称CPU调度):决定哪个处于就绪态的进程或线程可以获得CPU执行。这是处理机调度的核心部分,也是最常见的调度类型。

3. 常见的调度算法

(1)先来先服务(First-Come, First-Served, FCFS)
  • 特点:按照进程到达的顺序进行调度,先到的先执行,不考虑优先级或时间片。
  • 优点:实现简单,公平性较好。
  • 缺点:可能导致较长的平均等待时间,特别是遇到长作业时容易导致“不可抢占”的问题(即短作业需要等待长作业执行完)。
  • 应用场景:适用于批处理系统,但不适用于交互系统。
(2)短作业优先(Shortest Job First, SJF)
  • 特点:每次调度选择执行时间最短的进程,以最小化平均等待时间。SJF可以是抢占式或非抢占式。
  • 优点:可以显著降低平均等待时间,提高系统的效率。
  • 缺点:需要准确预测每个进程的执行时间,这在实际操作中很难实现。同时,可能导致“长作业饥饿”的问题,即长作业可能一直得不到调度。
  • 应用场景:适用于批处理系统。
(3)优先级调度(Priority Scheduling)
  • 特点:为每个进程分配优先级,优先级高的进程优先获得CPU。优先级调度可以是抢占式非抢占式的。
  • 优点:可以确保重要任务或实时任务优先执行。
  • 缺点:可能导致“低优先级饥饿”问题,即低优先级进程可能一直得不到调度。可以通过**老化技术(Aging)**提高进程优先级来解决饥饿问题。
  • 应用场景:适用于对任务重要性有区分的系统,如实时系统或操作系统中的关键任务调度。
(4)轮转调度(Round-Robin, RR)
  • 特点:每个进程按照先来先服务的顺序,轮流获得CPU执行,且每次只能执行一个时间片。时间片用完后,进程被放回就绪队列的末尾,等待下次轮到它时继续执行。
  • 优点:公平性好,适用于交互系统,响应速度快。
  • 缺点:时间片的选择很关键,时间片过长会退化为FCFS,时间片过短会导致频繁的上下文切换,降低系统效率。
  • 应用场景:适用于交互式系统,如操作系统中的多任务调度。
(5)多级反馈队列调度(Multilevel Feedback Queue Scheduling)
  • 特点:将进程根据优先级和执行行为分配到多个就绪队列中,每个队列采用不同的调度算法。进程可以在不同队列之间移动,例如高优先级进程可以快速执行,低优先级进程可以逐渐得到提升。
  • 优点:兼顾了短作业优先和长作业的公平性,灵活性高,适应不同类型的进程。
  • 缺点:实现复杂,需要设置合适的参数和队列策略。
  • 应用场景:常用于通用操作系统的调度策略,如Linux的调度器。
(6)最短剩余时间优先(Shortest Remaining Time First, SRTF)
  • 特点:SRTF是SJF的抢占式版本,每次选择剩余执行时间最短的进程执行。如果新来的进程的预期执行时间比当前进程剩余时间短,则抢占当前进程。
  • 优点:可以进一步减少平均等待时间。
  • 缺点:仍然需要准确预测执行时间,并可能导致长作业饥饿。
  • 应用场景:适用于需要最小化等待时间的场景。
(7)实时调度算法(Real-Time Scheduling Algorithms)
  • 特点:实时系统中的调度算法需要满足严格的时间约束。常见的实时调度算法包括固定优先级调度(如Rate Monotonic)和动态优先级调度(如Earliest Deadline First, EDF)。
  • 应用场景:适用于实时系统,如嵌入式系统、工业控制系统。

4. 调度算法的选择

调度算法的选择取决于系统的具体需求和场景:

  • 批处理系统:通常需要最小化等待时间和吞吐量,因此短作业优先(SJF)或多级反馈队列较为合适。
  • 交互式系统:需要快速响应用户请求,因此轮转调度(RR)和优先级调度常用。
  • 实时系统:需要满足严格的时间要求,因此实时调度算法(如EDF、Rate Monotonic)更为合适。

5. 调度算法的比较

调度算法 优点 缺点 适用场景
先来先服务 (FCFS) 实现简单,公平性好 平均等待时间长,可能导致长作业阻塞短作业 批处理系统
短作业优先 (SJF) 平均等待时间短 需要知道作业时间,长作业可能饥饿 批处理系统
优先级调度 重要任务优先 低优先级进程可能饥饿 实时系统、交互系统
轮转调度 (RR) 响应速度快,公平 时间片选择困难,频繁上下文切换 交互式系统
多级反馈队列 灵活,兼顾短作业优先和公平性 实现复杂 通用操作系统调度策略
SRTF 最小化等待时间 需要作业时间,可能导致长作业饥饿 批处理和实时场景
实时调度算法 满足实时要求,保证任务在规定时间内完成 调度复杂性高 实时系统、嵌入式系统

总结

处理机调度是操作系统管理CPU资源的重要功能,不同的调度算法适用于不同的场景和需求。常见的调度算法包括先来先服务(FCFS)、短作业优先(SJF)、优先级调度、轮转调度(RR)、多级反馈队列调度等,它们分别适应不同类型的系统,如批处理系统、交互式系统、实时系统等。



77、调度的层次和三级调度的联系

1、高级调度(作业调度)
2、中级调度(内存调度)
3、低级调度(进程调度)

操作系统中的调度机制分为三个主要层次:高级调度(作业调度)中级调度(内存调度)低级调度(进程调度)。它们负责不同阶段的调度任务,从作业进入系统开始,到进程在CPU上执行,再到进程与内存之间的调度。

1. 高级调度(作业调度)

  • 定义:高级调度,也称为作业调度(Job Scheduling),主要负责管理系统中进入作业的调度。它决定哪些作业可以进入内存,并且在合适的时机创建相应的进程进行执行。

  • 作用:作业调度通常在批处理系统中使用,操作系统通过作业调度将外部的作业(如批处理任务)从外存加载到内存,并为它们分配资源。作业调度决定了系统的作业进入速率,平衡了系统的负载。

  • 关键点

    • 决定何时将作业提交到系统
    • 负责作业的进入、排队和处理
    • 需要考虑系统负载,避免过多作业同时进入内存造成内存不足
  • 触发条件

标签:优先级,16,--,系统,作业,调度,76,算法,进程
From: https://blog.csdn.net/S_CuRrY666/article/details/142497255

相关文章

  • 【软考机考问答】—2024软考机考时间注意事项
    一、2024各地软考机考报名时间地区      报名时间 报名入口  免费题库  备考培训广东8月21日9:00-8月29日17:00报名入口免费题库备考培训江西8月20日9:00-9月13日17:00报名入口 免费题库备考培训安徽8月23日9:00-9月3日16:00报名入口免费题库备考培训甘肃8月26......
  • Linux内核文件系统-虚拟文件系统-索引节点对象
    建议点击这里查看个人主页上的最新原文作者:陈孝松主页:chenxiaosong.com公网主页:replace_with_public_ip_or_delete_this_line哔哩哔哩:陈孝松课程:chenxiaosong.com/courses博客:chenxiaosong.com/blog贡献:chenxiaosong.com/contributions邮箱:chenxiaosong@ch......
  • 【Linux】指令和权限的这些细节,你确定都清楚吗?
    ......
  • 中梦【9·20沙棘健康节】阿勒泰大果沙棘推荐会暨中梦极原沙棘油营养科学创新发展大会
    9月20日,就爱你9·20沙棘健康节隆重启幕,阿勒泰大果沙棘推荐会(长沙站)暨中梦极原沙棘油营养科学创新发展大会盛大召开。水利部沙棘开发管理中心、阿勒泰地区林草局、国际沙棘协会等政府机构和行业组织,沙棘营养健康专家学者,中梦、太阳石沙棘公司代表,中国经济导报、中华网、中宏网等权威......
  • 【应届生无经验】如何写一份内容丰富有优势的简历?(上)
    通常大家第一次找实习写简历,最发愁的就是:自己什么经验都没有,简历上能写啥?靠什么吸引HR注意?来看看0实习经验拿到名企面试的简历:仔细看会发现,尽管这是一位没有实习经验的同学,但给HR的感觉却是有经验、有潜力。很多人会理所当然地认为自己没有实习经验、没参加过社团、好像......
  • 《 C++ 修炼全景指南:十二 》用红黑树加速你的代码!C++ Set 和 Map 容器从入门到精通
    摘要本文详细介绍了基于红黑树实现的Set和Map容器,包括其底层设计原理、插入和删除操作的实现细节、性能分析与优化策略,以及实际应用场景和未来发展方向。通过采用红黑树的数据结构,Set和Map容器能够高效地处理有序数据,保持O(logn)的时间复杂度,适用于各种数据存储......
  • 重磅!阿里云可观测产品家族全新升级,AI +数据双驱动,打造全栈可观测体系
    引言:近日,阿里云可观测产品家族正式发布云监控2.0,隶属产品日志服务SLS、云监控CMS、应用实时监控服务ARMS迎来重磅升级。借助全新升级的一站式全景接入、统一观测图谱以及AI增强的跨域智能洞察能力。同时,为了帮助企业与开发者更从容地面对AI创新,阿里云正式发布开箱即用的A......
  • 使用EXCEL制作大厂数据周报
    一、成果二、具体制作流程1.搭建周报框架1.1填写标题,eg:20年8月第二周1.2表中的“日期”位置填写从20年8月第二周的第一天开始的具体日期,先写第一天的日期,然后在下一个输入=?+1,?为选中的第一天日期的单元格,然后从第二个开始向下拉,原因是:这样操作后,第一个日期改变后,剩......
  • 【软考机考问答】—软考机考可以提前交卷吗?
    软考机考是可以提前交卷的,但是要在规定时间交卷,交卷时要注意是否交卷成功,如果交卷失败要及时联系监考人员!1.高级资格:综合知识:150分钟案例分析+论文连考:210分钟综合知识科目考试时长150分钟,最短作答时间120分钟,考试前30分钟可以交卷离场。案例分析和论文两个科目连考,案例分析科目最......
  • 微服务项目部署
    将微服务部署到云服务器是微服务架构中的常见操作,以下是三种常见的部署方式:使用SpringBoot内嵌Tomcat、Docker容器化、和外部Tomcat部署。1.使用SpringBoot内嵌Tomcat部署这是SpringBoot微服务最常用、也是最简单的部署方式。SpringBoot项目内置了Tomcat......