Articles of 调度

进程nice(优先级)设置对Linux没有影响

我写了一个testing程序,其中只包含一个无限循环,里面有一些计算,不执行I / O操作。 我试着开始两个程序实例,一个具有很高的漂亮度值,另一个具有较低的漂亮度值: sudo nice -n 19 taskset 1 ./test sudo nice -n -20 taskset 1 ./test taskset命令确保两个程序在同一个内核上执行。 与我的预期相反,最重要的报告是这两个程序都能获得大约50%的计算时间。 这是为什么? nice命令是否有效?

在Linux中进行计划:计算机闲置时运行任务(=无用户input)

我想在我的Ubuntu 8.10盒子上运行Folding @ home客户端,只是因为程序的内存消耗太大而导致它闲置。 “空闲”是指没有用户活动的状态(键盘,鼠标或任何其他)。 由于F @ H具有最低的CPU优先级,因此其他(可能很重)的进程可以运行。 重点在于改善用户体验,并在他不在的时候进行繁重的工作。 如何做到这一点?

Linux调度器是否喜欢在fork()之后运行subprocess?

Linux调度器是否喜欢在fork()之后的父进程中运行subprocess? 通常,分叉进程会执行某种types的exec ,所以最好在父进程之前让subprocess运行(防止写入时复制)。 我假设孩子将在创build后执行exec作为第一个操作。 是我的假设(即调度程序将喜欢孩子的过程)是正确的。 如果没有,为什么? 如果是的话,是否有更多理由让孩子先行?

如何将我的调度程序添加到Linux内核

我正在研究Linux内核。 我应该给Linux内核添加一个调度algorithm,比如SJF,SRT和其他algorithm。 经过一番search,我发现linux内核有两个调度器:CFS和实时调度器。 但是这两个调度程序有什么区别呢? 如何编写我的调度程序代码? 我应该在哪里添加我的调度程序代码,CFS或实时? 我应该在编译linux内核之前做这个工作吗? 和其他任何我需要做的工作…我正在使用Linux内核3.15.6。

在中断的时候得到current-> pid

我在linux调度器上写了一些东西,我需要知道哪个进程在我的中断进入之前正在运行..是当前可用的结构? 如果我在中断处理程序中执行current-> pid,是否得到我中断的进程的pid?

如何使用sched_getaffinity(2)和sched_setaffinity(2)。 请给代码示例在C程序中使用

我在尝试着 并行运行16个副本(处理器固定)(每个内核2个副本) 在处理器固定的情况下(每个内核2个拷贝)同时运行8个拷贝,并在某个函数表示函数1完成后,将处理器内核翻转到最远的内核。 我面临的问题是如何select最远的处理器。 有些朋友build议使用sched_getaffinity(2)和sched_setaffinity,但我没有find任何好的例子。 请帮忙。

Linux – 线程和进程调度优先级

如果我们在linux上使用默认调度策略创buildpthreads(pthread_create)或进程(fork),那么调度器会在调度它们时将进程和线程的优先级视为相同的优先级吗? 让我们说,有一个线程的进程P1和P2线程T1 T2的进程 可以说只有一个核心。调度是P1 P1 P1 T2 P1 T1 P1 T2 要么 P1 T1 T2 P1 T1 T2

Linux SCHED_OTHER,SCHED_FIFO和SCHED_RR – 差异

有人可以解释SCHED_OTHER,SCHED_FIFO和SCHED_RR之间的区别吗? 谢谢

如何在多核上运行使用bash进行pipe理的进程?

我有一个简单的bash脚本,pipe道输出到另一个进程。 即:。 dostuff | filterstuff 碰巧在我的Linux系统(openSUSE,如果它很重要的话,kernel 2.6.27),这两个进程都运行在一个内核上。 但是,在不同内核上运行不同的进程是一种默认策略,在这种情况下不会触发。 系统的哪个部分负责,我该怎么做来利用多核function? 请注意 ,在2.6.30内核上没有这样的问题。 澄清 :遵循丹尼斯·威廉姆森的build议,我确定了顶级程序,pipe道进程确实总是运行在同一处理器上。 Linux调度程序,通常做得非常好,这次不行。 我认为,在bash中的东西可以防止操作系统做到这一点。 问题是我需要一个适用于多核和单核机器的便携式解决scheme。 Dennis Williamson提出的taskset 解决scheme不适用于单核机器。 目前我正在使用:, dostuff | taskset -c 0 filterstuff 但这似乎是一个肮脏的黑客。 谁能提供更好的解决scheme?

调度程序代码运行在什么上下文中?

有两种情况调用调度程序代码schedule() 当一个进程自动调用schedule() 定时器中断调用schedule() 在情况2中,我认为schedule()运行在中断上下文中,但是第一种情况呢? 它是否在调用它的过程的上下文中运行? 还有没有更多的情况下调用schedule() ?