当前位置: 首页 > news >正文

《操作系统 - 清华大学》 9 -1:进程调度:背景

进程调度:基础概念与调度策略详解

在进程调度这部分,我们会涉及以下内容:背景介绍、各种各样的调度算法(包括通用操作系统的调度算法以及针对实时系统的算法),还会额外介绍一种调度算法。

一、CPU调度的背景与目的

已经了解到进程都希望占用CPU来执行自己的工作。当一个进程被切换到运行态,它就能占用CPU执行;而从运行态切换到其他状态后,就无法再使用CPU 。那么,什么时候进行进程切换,依据什么原则进行切换,这就与CPU调度密切相关。
CPU调度(也叫处理器调度)的主要工作是在每个时刻决定选择哪个进程使用CPU执行,目的是使整个系统效率更高,或者满足特定的应用需求,比如满足实时性等特殊需求

二、调度时机与调度点

结合进程生命周期的概念,当进程从一个状态变换到另一种状态时,就会触发一次调度,尤其是和运行相关的状态变化,例如从就绪态到运行态、从运行态回到等待状态、从运行态到退出状态等。这些状态变化时刻就是调度的时机,也被称为调度点。
此外,触发调度的情况有多种,有些是有时间相关的,在程序的一些位置进行调度后还需要考虑两种情况。因为大多数时候我们调度的是应用程序,应用程序运行时是以用户态进程的形式存在。

三、非抢占式与抢占式调度策略
  1. 非抢占式调度(long preety)
    启动一个进程后,在其从开始到结束的整个过程中,不允许被其他进程打断,这是早期商用设计的一种情况,被称为非抢占式调度策略。采用这种策略,一个进程一旦启动,别的进程就不能打断它,这可能导致其他进程需要长时间等待正在运行的进程执行完毕,效率可能不高。例如,当有进程处于等待状态时,后续进程由于前面的进程未执行完,也不得不等待,进而影响系统整体效率。
  2. 抢占式调度(preemptive)
    在用户进程执行过程中,系统可能会在某个时刻打断当前用户进程的执行,并选择另一个系统认为更值得执行的进程去执行,这就是抢占式调度方式。这是现在操作系统中常用的调度策略。
四、内核中的抢占概念

我们通常所说的抢占式调度是针对用户态进程而言的,在内核中也存在是否可以抢占的概念。
当一个用户进程执行系统调用时,如果该系统调用在内核中不会导致进程处于等待状态,即进程仍处于运行状态,那么当系统调用正常返回时,它一定会返回到发起该系统调用的进程继续执行,这意味着内核中不会出现抢占现象。也就是说,只要进程在内核中执行系统调用的流程中,自身不会从运行态变为阻塞态,就应确保返回后是发起调用的进程继续执行,这被称为内核的非抢占情况。
相反,如果在内核中允许抢占,即当某个进程发起的系统调用在内核执行时,若产生特殊事件,需要将当前内核切换到另一个优先级更高的进程执行,那么当系统从内核态返回用户态时,可能会切换到其他进程,这种情况被称为抢占式内核。

五、操作系统调度策略的发展

早期的操作系统,如Windows NT之前的Windows操作系统,不支持用户级的抢占,采用的是非抢占式调度策略。而到了Windows NT及现代操作系统,都支持用户态进程的抢占,并且现在更高级的Windows系统还支持在内核中进行抢占,这使得系统更加灵活,性能更好。

相关文章:

  • 高频面试题(含笔试高频算法整理)基本总结回顾3
  • 零知识证明与 ZK Rollups 详解
  • 基于单片机的智能宿舍管理系统(论文+源码)
  • 如何让vllm使用modelscope而不是huggingface来下载模型?
  • C#光速入门的指南
  • XXL-JOB深度解析:新一代分布式任务调度解决方案
  • 分布式架构篇——分库分表与数据一致性保障
  • Educational Codeforces Round 175 (Rated for Div. 2)
  • KTV点歌系统
  • Windows逆向工程入门之MASM浮点数存储机制
  • 小米 SU7 Ultra:科技与性能的极致融合,FPC 隐匿的关键力量【新立电子】
  • 华为hcia——Datacom实验指南——STP工作基本原理及STP/RSTP基本功能配置
  • Python虚拟环境使用指南
  • Http、tcp、https、socket、tomcat、长短连接等总结回顾
  • SpringBoot AI + PgVector向量库 + Openai Embedding模型
  • JAVA安全—手搓内存马
  • JVM--虚拟机
  • 【大模型】什么是蒸馏版大模型
  • 量子计算如何提升机器学习效率:从理论到实践
  • 深度学习的正则化深入探讨
  • 自主建设公司网站/网络软文推广网站
  • 免费网站服务器域名/sem数据分析
  • 做课件的软件下载带有蓝色的网站/环球网广东疫情最新消息
  • 成都高端网站开发/2345浏览器影视大全
  • 网站导航条模板/百度客服24小时人工电话
  • 做ppt设计师哪个网站好/西安网站seo工作室