操作系统学习笔记4--进程调度

本文深入探讨了操作系统中的CPU调度,包括基本概念、抢占调度、各种调度算法如FCFS、SJF、优先级调度和轮转调度,以及实时CPU调度策略。讲解了调度延时、调度准则,如CPU使用率、吞吐量、周转时间和响应时间,并介绍了Linux的完全公平调度程序(CFS)。

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

1 CPU调度

1.1 CPU调度基本概念

CPU调度:对于单核cpu,每个时刻最大可以处理一个进程。cpu作为计算机最重要的资源之一,cpu调度即采用多道程序,多个进程同时位于内存在,当某个进程需要等待时,此时cpu空闲,从内存中找到另外一个进程接管cpu。从而最大化cpu利用率。当一个进程需要等待时,另一个进程接管cpu。

CPU/IO执行周期:对于每个进程,都是周期性的执行cpu执行或是io等待。而cpu调度的成功取决于进程的CPU/IO执行周期。进程不断地在这两个状态之间交替。

CPU调度程序:当cpu空闲时,cpu调度程序从内存中选择一个进程,并为其分配CPU。进程选择采用短期调度程序或是cpu调度程序。就绪队列不是必须为FIFO的,可以是FIFO,优先队列,树等。就绪队列中的所有进程都需要排队以等待cpu空闲,队列内的记录通常为PCB。

1.2 抢占调度

1.2.1 调度机制

需要cpu调度的四种情况

1.一个进程从运行状态->等待状态(执行IO请求或wait())

2.一个进程从运行状态->就绪状态(中断发生时,cpu将当前进程挂起,当前进程由运行状态转为就绪状态)

3.一个进程从等待状态->就绪状态(如IO请求完成)

4.一个进程终止

非抢占调度:对于第一种和第四种情况,必须选择一个新进程来执行,此时调度方案称为非抢占的(或协作的),即调度方案只有在第1和第4种情况出现时,才进行调度。在这种情况下,一旦某个进程被分配cpu,那么会一直执行,直到该进程终止或它切换到等待状态。

抢占调度:不只在第1和第4种情况下,也进行调度。称为抢占调度。比如某个某个进程并未切换到等待状态,或是终止,也被其他进程挂起,那么称之为抢占。

1.2.2 调度程序

cpu调度由调度程序来完成,其主要功能包括:1.切换上下文 2.切换到用户模式 3.跳转到用户程序的合适位置,以便重新启动程序。

调度延时:调度程序停止一个进程,并启动另一个进程所需要的时间称为调度延时。

1.2.3 调度准则

无论是何种cpu调度算法,都要以一些指标来进行,共同的指标或目标有:

cpu使用率:应尽可能让cpu忙碌

吞吐量:单位时间内进程完成的数量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值