CZXTSJ003 | 操作系统设计:进程调度

本文介绍了操作系统中的进程调度,包括调度器的工作原理、调度算法的目标和不同类型的调度策略。在批处理系统中,关注吞吐量和周转时间;交互式系统中,强调响应时间和均衡性;实时系统则需要满足截止时间和可预测性。常见的调度算法如时间片轮转、优先级调度和最短作业优先等在不同系统中各有应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1 调度器


CPU 只有一个,当有多个进程都是处于就绪态的时候,操作系统就必须做出决定先运行哪一个进程,操作系统做出决定的那一部分称为调度器,它使用的算法称为调度算法

进程调度和线程调度类似

1.2 调度介绍


1、几乎所有进程都会交替地突发 I/O 请求

2、有些进程大部分时间花费在运算上称为:计算密集型

3、有些进程大部分时间花费在等待 I/O 操作上称为:I/O 密集型

4、由于现代的发展,CPU 的速度越来越快,所以总体趋势趋向于 I/O 密集型

5、什么时候会发生调度?

当然,刚刚运行的进程完不会立刻就绪

下面2中必定发生调度

1、当一个进程退出时

2、当一个进程在 I/O 或 信号量上阻塞时

还有下面3种可能不是必定发生,当会经常发生

1、当一个新进程被创建

2、当一个 I/O 中断发生

3、当一个时钟中断发生

时钟中断

时钟中断提供了一个判断当前运行进程是否运行了足够长的时间,根据处理时钟中断的方式可以把调度算法分为:非抢占式调度算法抢占式调度算法

非抢占式调度算法:挑一个进程运行,一直到该进程阻塞或自愿退出

抢占式调度算法:挑一个进程运行,这个进程所运行的最大时间是固定,如果到了这个最大时间这个进程还是运行,那么该进程就会被挂起,调度器会挑选另外的进程运行

抢占式调度器在这个时间间隔的最后需要另外一个时钟中断来获取 CPU 控制权,所以,要使用抢占式的,这个时钟必须要存在,不然非抢占式就是唯一选择。

1.3 调度算法目标


所有系统

        公平:给每个进程公平的 CPU 份额

        策略强制执行:执行规定策略

        平衡: 保持系统所有部分都忙碌

批处理系统

        吞吐量:最大化每小时作业数

        周转时间:最小化从提交到完成的时间间隔

        CPU 利用率:保持 CPU 始终忙碌

交互式系统

        响应时间:快速响应请求

        均衡性:满足所有用户需求

实时系统

        满足截止时间:避免丢失数据

        可预测性:在多媒体系统中失真

1.4 批处理系统中调度


1、队列式:根据进程请求的顺序占用 CPU 且是任意时长

2、最短作业优先法

3、最短剩余时间优先

1.5 交互式系统中的调度


1、时间片轮转调度:每个进程分配一个时间片,允许进程最长运行时间

时间片不能设置太长或太短,进程切换(上下文切换)需要时间

太短:导致过多的上下文切换,降低了 CPU 利用率

太长:交互请求响应变差

通常设置 20-50 ms

2、优先级调度:

3、彩票调度:重要的进程就提高该中奖率

1.6 实时系统中的调度


1、硬实时:必须满足时间限制

2、软实时:不必满足时间限制

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值