首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

一次脑残的记录:Linux 中实时任务调度与优先级

通过这篇文章,您能深刻体验到 Linux 系统中下面几个概念: 实时进程和普通进程的调度策略; Linux 中混乱的进程优先级是如何计算的; CPU亲和性的测试; 多处理器(SMP)遇到实时进程和普通进程的程序设计...背景知识:Linux 线程优先级 在 Linux 系统中,优先级的管理显得比较混乱,先看下面这张图: ? 这张图表示的是内核中的优先级,分为两段。...include 之前定义; #include 必须在 #include 之前包含进来; 这个顺序能够保证在后面设置继承的 CPU 亲和性时,CPU_SET...其中有一个信息涉及到 Linux 系统的调度策略,这里记录一下。 Linux 系统中,为了不让实时任务彻底占据 CPU 资源,会让普通任务有很小的一段时间缝隙来执行。...thread_routine 的开头,增加下面的代码: cpu_set_t mask; int cpus = sysconf(_SC_NPROCESSORS_CONF); CPU_ZERO(&mask); CPU_SET

92810

一文读懂 | 进程怎么绑定 CPU

设置进程的 CPU 亲和性 前面介绍了进程与 CPU 绑定的好处后,现在来介绍一下在 Linux 系统下怎么将进程与 CPU 进行绑定的(也就是设置进程的 CPU 亲和性)。...Linux 系统提供了一个名为 sched_setaffinity 的系统调用,此系统调用可以设置进程的 CPU 亲和性。...argc, char **argv) { cpu_set_t cpuset; CPU_ZERO(&cpuset); // 初始化CPU集合,将 cpuset 置为空 CPU_SET...strerror(errno)); return -1; } return 0; } CPU 亲和性实现 知道怎么设置进程的 CPU 亲和性后,现在我们来分析一下 Linux...本文使用的 Linux 内核版本为 2.6.23 Linux 内核为每个 CPU 定义了一个类型为 struct rq 的 可运行的进程队列,也就是说,每个 CPU 都拥有一个独立的可运行进程队列。

3K30
领券