news 2026/6/15 15:53:08

21、Linux进程管理:优先级、亲和性与实时系统解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
21、Linux进程管理:优先级、亲和性与实时系统解析

Linux进程管理:优先级、亲和性与实时系统解析

1. 进程调度中的“乒乓效应”及改进

在进程调度中,曾经存在一种“乒乓效应”。当两个进程都调用sched_yield()且拥有非零时间片时,旧的sched_yield()行为会导致内核轮流调度这两个进程,每个进程依次表示“不,调度其他进程” ,这种情况会持续到两个进程耗尽它们的时间片。进程调度器的进程选择模式类似 “A, B, A, B, A, B” ,因此被称为 “乒乓” 现象。

新的行为避免了这种情况。一旦进程 A 请求让出处理器,调度器会将其从可运行进程列表中移除。同样,进程 B 提出相同请求时,也会被移除。调度器在没有其他可运行进程之前,不会考虑运行进程 A 或 B,从而防止了 “乒乓效应” ,让其他进程能公平地获得处理器时间。所以,进程请求让出处理器时,应是真正打算让出。

2. 普通进程优先级

Linux 并非随意调度进程,而是为应用程序分配优先级,这些优先级会影响进程的运行时间和时长。在 Unix 中,这些优先级被称为 “nice 值” ,其理念是通过降低进程优先级来 “友好对待” 系统中的其他进程,让其他进程能消耗更多的系统处理器时间。

nice 值决定了进程的运行时机。Linux 按优先级从高到低调度可运行进程,优先级高的进程先于优先级低的进程运行。nice 值还决定了进程时间片的大小。合法的 nice 值范围是 -20 到 19(包含),默认值为 0。比较容易混淆的是,进程的 nice 值越低,其优先级越高,时间片越大;反之,nice 值越高,优先级越低,时间片越小。提高进程的 nice 值对系统其他部

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 16:03:24

30、深入理解 Linux 内存管理:从基础到高级应用

深入理解 Linux 内存管理:从基础到高级应用 1. 内存分配函数及可移植性考量 在 Linux 中,我们可以使用 valloc 和 memalign 函数来进行特定的内存分配。以下是示例代码: if (!pirate) {perror ("valloc");return -1; } hms = memalign (getpagesize ( ), …

作者头像 李华
网站建设 2026/6/15 12:24:22

35、深入理解操作系统中的时间管理

深入理解操作系统中的时间管理 在现代操作系统中,时间管理至关重要,许多程序都需要对时间进行跟踪和处理。下面将详细介绍操作系统中时间的表示、测量、相关数据结构以及获取时间的方法。 1. 时间的测量方式 操作系统通过三种不同的方式来测量时间: - 挂钟时间(实时时…

作者头像 李华
网站建设 2026/6/15 0:46:49

m4s-converter:B站缓存视频转换神器,轻松保存珍贵内容

m4s-converter:B站缓存视频转换神器,轻松保存珍贵内容 【免费下载链接】m4s-converter 将bilibili缓存的m4s转成mp4(读PC端缓存目录) 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 还在为B站视频突然下架而烦恼吗?m4s-…

作者头像 李华
网站建设 2026/6/13 20:37:43

7、GLib:功能强大的通用工具库

GLib:功能强大的通用工具库 1. GLib 基础 GLib 是一个通用实用库,用于实现许多非图形化的有用功能。它虽为 GTK+ 所必需,但也能独立使用,有些应用程序就仅借助 GLib 提供的众多功能,而不依赖 GTK+ 及其他支持库。使用 GLib 的主要好处之一是它提供了跨平台接口,能让代码…

作者头像 李华
网站建设 2026/6/15 12:24:10

15、深入了解GTK+信号机制

深入了解GTK+信号机制 1. GTK+信号基础 GTK+是一个依赖信号和回调函数的系统。信号是一种通知,用于告知应用程序用户执行了某些操作。当信号发出时,可以让GTK+运行一个名为回调函数的函数。 连接信号可以使用 g_signal_connect() 函数,其函数原型如下: gulong g_sig…

作者头像 李华
网站建设 2026/6/15 2:09:23

17、GTK+开发:Stock项、错误类型及练习解决方案全解析

GTK+开发:Stock项、错误类型及练习解决方案全解析 1. GTK+ Stock项 Stock项是常用的项,它提供一个图像和一些附带的文本,用于菜单、工具栏、按钮等地方。每个Stock项由一个Stock字符串标识,不过为了方便也提供了预处理器宏。 部分Stock项有从右到左的变体,适用于有此偏…

作者头像 李华