业务开发算法 50 讲
黄清昊
Hashdata 数据库内核工程师,LeetCode 高赞答主,公众号微扰理论作者
23292 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 51 讲
业务开发算法 50 讲
15
15
1.0x
00:00/00:00
登录|注册

14|调度算法:操作系统中的进程是如何调度的?

React fiber机制
前端领域
服务器负载均衡
SRTF (最短剩余时间优先)
SJF (最短任务优先)
FCFS (先到先服务)
周转时间
吞吐量
MFQ (多级反馈队列)
HRRN (高响应比优先)
时间片长度平衡
公平性
时钟中断触发
时间片分配
任务执行完毕或阻塞前不切换
程序计数器
内存访问
BLOCK (阻塞)
RUNNING (运行)
READY (就绪)
多任务并发执行的抽象
正在进行的程序
硬软件交汇关键
软件基石
设计DDL敏感的调度算法
操作系统外场景
具体算法
普通进程调度
实时进程调度
Round-Robin (时间片轮转)
抢占式调度
非抢占式调度
进程资源
进程标识符(PID)
进程状态
进程(Process)
操作系统
课后思考题
调度算法应用
非抢占式调度算法
抢占式调度算法
调度算法分类
进程相关
概念
调度算法总结

该思维导图由 AI 生成,仅供参考

你好,我是微扰君。
之前我们已经学习了大部分常用的数据结构和一些经典的算法思想,从今天开始,我们将正式迈入算法在真实世界的应用,感受计算机先辈们在解决实际问题时天马行空的智慧之光。希望带给你思维乐趣的同时,也能给你解决实际工作里的问题带来一些启示。
就让我们从操作系统开始说起,作为计算机软件的基石,它是计算机软硬件交汇的关键所在。
当然,操作系统同样是一个非常大的话题,不同历史时期的操作系统都背负着不同的使命。发展至今,随便一个可用的操作系统都有几千万行的代码,上上下下用到的算法肯定也非常多,我们不可能全部涉及,这次会挑出几个关键的算法或者设计来讲解,包括:计算机进程调度算法、内存页面置换算法和日志文件系统。
我们今天要学习的就是进程调度算法,也就是 Process Scheduling Algorithms。
在许多中间件、语言设计甚至日常开发的业务系统中遇到问题时,我们常常会参考操作系统中成熟的解决办法,进程调度就是这样一种常常被借鉴的场景,在不少语言的线程或者协程机制的设计里都有应用。
那操作系统的进程调度到底是如何设计的呢?话不多说,我们开始今天的学习。

进程是什么?

在聊进程调度算法之前,我们先简单复习一些操作系统相关的基础概念。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了操作系统中的进程调度算法,包括FCFS、SJF和SRTF等。文章首先解释了进程的概念和状态分类,然后详细讨论了各种调度算法的特点和适用场景。其中,FCFS是最简单直接的非抢占式算法,但对短任务不公平;SJF则优先调度短任务,有助于降低平均周转时间;而SRTF在考虑IO情况下,进一步提高了调度的整体吞吐量。此外,文章还提到了抢占式调度和非抢占式调度的区别,以及不同调度算法在实时交互进程和普通进程中的应用。总的来说,本文为读者提供了对进程调度算法的基本了解,以及其在操作系统中的重要性。文章内容涵盖了技术性强、实用性强的进程调度算法,对读者快速了解文章概览具有重要意义。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《业务开发算法 50 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • 春风
    老是,SJF、SRTF怎么知道进程需要的执行时间

    作者回复: 春风同学你好,你的这个问题非常不错! 事实上,我们没有办法直接知道任务的执行时间;但我们可以进行预测。 有一类技术叫做 Predict Burst Time ;感兴趣的话可以了解一下;大体分为动态预测和静态预测两种。

    2022-01-12
    6
  • 林铭铭
    后面几种调度算法能不能也提供下伪代码或代码?

    作者回复: 之后找机会补充~ 也欢迎提供PR到 github.com/wfnuser/Algorithms

    2022-01-23
  • Paul Shan
    DDL应该属于非抢占式算法,一种简单的做法是选择结束时间最早的任务调度。

    作者回复: Earliest Deadline First 就是一种常用的按照DDL来排序的调度算法;当出现DDL更近的任务时,还是会抢占DDL更远的任务的CPU使用时间的哈。

    2022-01-11
    2
  • 拓山
    SJF、SRTF算法可以用小顶堆算法来实现
    2023-08-10归属地:浙江
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部