20、高级进程管理深度解析

高级进程管理深度解析

1. 进程调度基础

进程调度器是内核子系统,负责在系统的各个进程之间分配有限的处理器时间。简单来说,它决定了接下来要运行的进程。在决定哪些进程可以运行以及何时运行时,调度器要在最大化处理器使用率的同时,营造出多个进程在无缝并发执行的假象。

可运行进程是指未被阻塞的进程,而阻塞进程则是处于睡眠状态、等待内核 I/O 的进程。与用户交互、频繁读写文件或响应网络事件的进程,在等待资源可用时往往会花费大量时间处于阻塞状态,在此期间它们不可运行。如果只有一个可运行进程,进程调度器的工作就很简单:运行该进程。但当可运行进程数量超过处理器数量时,调度器的价值就体现出来了,此时一些进程运行,而另一些则需等待。决定哪些进程运行、何时运行以及运行多长时间,是进程调度器的基本职责。

操作系统的多任务处理有两种形式:协作式和抢占式。Linux 采用的是抢占式多任务处理,即调度器决定一个进程何时停止运行,另一个进程何时恢复运行。我们将暂停一个正在运行的进程以运行另一个进程的行为称为抢占。进程在被调度器抢占之前允许运行的时间长度称为时间片,因为调度器为进程分配了处理器时间的“一片”。

在协作式多任务处理中,进程直到自愿决定停止运行才会停止。自愿暂停自身被称为让步。理想情况下,进程会经常让步,但操作系统无法强制这种行为。一个不规范或有问题的程序可能会长时间运行,破坏多任务处理的假象,甚至导致整个系统崩溃。由于这种方法的缺点,现代操作系统几乎普遍采用抢占式多任务处理,Linux 也不例外。

Linux 的进程调度器多年来发生了变化。自 Linux 内核版本 2.6.23 起可用的当前进程调度器称为完全公平调度器(CFS)。这个名称源于调度器采用了公平

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值