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

操作系统进程调度的层次

进程调度分为3个层次,高级调度(作业调度)、中级调度(内存调度)、低级调度(进程调度)。为什么会有调度问题,当资源有限,但是又有很多任务要处理,所以就有了按某种规则区调度的问题。 

进程调度分为3个层次,高级调度(作业调度)、中级调度(内存调度)、低级调度(进程调度)。

为什么会有调度问题,当资源有限,但是又有很多任务要处理,所以就有了按某种规则区调度的问题。

 

1.高级调度

《操作系统-进程调度的层次》

因为内存空间有限,不能把用户提交的任务全部放进内存,因此就要按某种规则来决定作业调入内存的顺序。

高级调度(作业调度),就是操作系统按一定的规则将后备队列的一个或多个任务调入内存中,并为该任务分配内存等必要的资源并且建立相应的进程快(建立PCB),以使得他获得竞争处理器的权利。

高级调度是内存和外存的调度。每个作业只会调入一次,调出一次。只有作业调入时才会建立PCB,在任务调出时才撤销PCB。高级调度主要是调入的问题。调入的时机由操作系统决定,但是调出的时机一定是任务结束的时候。

 

2.中级调度

《操作系统-进程调度的层次》

在有了虚拟内存技术之后,可以把暂时不可运行的进程调入外存等待,直到内存有足够的空间再把挂起的进程重新调入内存。

这么做的目的是为了提高内存利用率和系统吞吐量。

暂时调度到外存的状态叫做挂起态。但是要注意的是,PCB(进程控制块)并不会被调入外存,而是会常驻内存,PCB会记录程序数据在外存存放的位置,进程状态等。操作系统会根据PCB来保持对进程的监控、管理。被挂起的进程PCB进程会在挂起队列中。

中级调度就是决定要将那个挂起的进程重新调入内存中。一个进程会被多次调入调出,因此中级调度发生的频率比高级调度高。

 

3.低级调度

《操作系统-进程调度的层次》

低级调度(进程调度),就是按照某种方法和策略从就绪队列中选取一个进程,将处理器分配给他。

进程调度是系统中频率最高的一种,也是最基本的一种,每种操作系统都要配置低级调度,平均几十毫秒一次。

 

最后补充一下进程的七种状态:

《操作系统-进程调度的层次》


推荐阅读
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 计算机网络复习:第五章 网络层控制平面
    本文探讨了网络层的控制平面,包括转发和路由选择的基本原理。转发在数据平面上实现,通过配置路由器中的转发表完成;而路由选择则在控制平面上进行,涉及路由器中路由表的配置与更新。此外,文章还介绍了ICMP协议、两种控制平面的实现方法、路由选择算法及其分类等内容。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 探讨如何通过高效的数据库查询和排序策略,优化基于GPS位置信息的附近用户搜索功能,以应对大规模用户数据场景。 ... [详细]
  • 本文探讨了哪些数据库支持队列式的写入操作(即一个键对应一个队列,数据可以连续入队),并且具备良好的持久化特性。这类需求通常出现在需要高效处理和存储大量有序数据的场景中。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • 深入解析for与foreach遍历集合时的性能差异
    本文将详细探讨for循环和foreach(迭代器)在遍历集合时的性能差异,并通过实际代码示例和源码分析,帮助读者理解这两种遍历方式的不同之处。文章内容丰富且专业,旨在为编程爱好者提供有价值的参考。 ... [详细]
  • 全面解析运维监控:白盒与黑盒监控及四大黄金指标
    本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。 ... [详细]
  • 本文详细介绍了Grand Central Dispatch (GCD) 的核心概念和使用方法,探讨了任务队列、同步与异步执行以及常见的死锁问题。通过具体示例和代码片段,帮助开发者更好地理解和应用GCD进行多线程开发。 ... [详细]
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社区 版权所有