草庐IT

task-manager

全部标签

linux - struct task_struct中的字段 'on_cpu'和struct thread_info中的字段 'cpu'是什么意思?

我想知道Linux系统中当前进程运行在哪个cpu上,我有两个选择—获取structtask_struct或中的字段on_cpu获取结构thread_info中的字段cpu。我写了一个内核模块程序来探测这两个字段,并得到结果如下:[3991.419185]thefield'on_cpu'intask_structis:1[3991.419187]thefield'cpu'inthread_infois:0[3991.419199]thefield'on_cpu'intask_structis:1[3991.419200]thefield'cpu'inthread_infois:0[399

linux - "Warning: You need to have Ruby and Sass installed and in your PATH for this task to work."

当我尝试grunt:serve时,我收到了这个警告。Warning:Running"sass:server"(sass)taskWarning:YouneedtohaveRubyandSassinstalledandinyourPATHforthistasktowork.Moreinfo:https://github.com/gruntjs/grunt-contrib-sassUse--forcetocontinue.所以我尝试了whichruby​​和whichsass。在/usr/bin/ruby中找到了ruby​​,但在我的任何路径文件夹中都没有找到sass。我在/usr/bin

linux - task_struct 存储在哪里?

Task_struct用于内核保存进程的必要信息。由于该结构,内核可以暂停一个进程,并在一段时间后继续执行它。但我的问题是:这个task_struct存储在内存中的什么地方(我读过内核堆栈,是在虚拟地址空间的内核空间中的那个吗?)?挂起进程后,内核在哪里保存指向该结构和该结构的指针?如果您在描述的地方提供一些资源引用,我将不胜感激。附言。我忘了说这个问题是关于Linux内核的。 最佳答案 Linux内核通过kmem_cache设施分配一个task_struct。例如在fork.c中有一段代码负责分配任务结构:#definealloc

c - 为什么在获取进程的子进程时使用兄弟列表来获取 task_struct

内核task_struct如下所示。我对两个成员更感兴趣,即children和sibling,所以我从这个内核结构中删除了其他元素。structtask_struct{//somedataelements.structlist_headchildren;/*listofmychildren*/structlist_headsibling;/*linkageinmyparent'schildrenlist*///somedatamembers};“children”是进程子进程的task_struct的双向循环链表。如果我想从当前进程访问子进程,我必须使用宏“list_for_each”

linux - 为什么我的 VM 对任一 virsh virt-manager 都可见,但对两者都不可见?

我有一台运行xen的Ubuntu14.04主机,有几个VM(win7和另一个14.04).我使用virt-manager远程创建了这些。他们已经运行了很长一段时间。但是当我在主机上尝试“virshlist--all”时,我在列表中什么也得不到。我尝试导入其中一个虚拟机,如下所示:virt-install-nmy_name-r512--os-type=linux--os-variant=ubuntutrusty--disk/var/lib/libvirt/images/my_name.img--import就virsh而言,这看起来很有效。它在virsh列表中显示为“running”。但

linux - 理解从进程内核栈中获取task_struct指针

现在我正在阅读RobertLove所著的《Linux内核开发3d版》一书。他在那里写了thread_info结构,它包含指向task_struct结构的指针,据我所知,它位于进程内核堆栈的底部或顶部(取决于体系结构)。直到最近我才熟悉Linux内核API,也不知道current()方法的存在。书中有一段关于current()方法实际工作原理的摘录:Onx86,currentiscalculatedbymaskingoutthe13least-significantbitsofthestackpointertoobtainthethread_infostructure.Thisisdon

c++ - 如何对进程的 'manager' 和 'worker' 线程进行优先级排序(或设置调度策略)?

我正在运行一个进程(在基于Linux3.x的操作系统上),其中:一些线程是“管理器”线程(为简单起见,假设他们决定哪些工作线程应该做什么,但不做任何I/O,并且他们需要的CPU时间总量更短/更短比工作线程')更多线程是“工作线程”:它们在计算方面承担繁重的工作,我对它们随时被抢占没有任何问题。有可能存在超额订阅(即工作线程数超过HT英特尔处理器内核的两倍)。现在,我看到的是“管理器”线程没有足够频繁地获得处理器时间。他们并没有完全“饿死”,我只是想给他们一个助力。所以,我很自然地考虑设置不同的线程优先级(我在Linux上)——但后来我注意到线程调度程序的不同选择及其效果。在这一点上我感

linux - Linux 中的调度 : run a task when computer is idle (= no user input)

我想运行Folding@home客户端仅在我的Ubuntu8.10机器闲置时才运行,因为该程序占用大量RAM。“空闲”是指没有用户事件(键盘、鼠标等)的状态。由于F@H具有最低的CPU优先级,因此此时运行其他(可能是繁重的)进程是可以的。重点只是为了提高用户体验,在无人使用机器时做繁重的工作。如何实现? 最佳答案 当有问题的机器是台式机时,您可以将启动/停止脚本挂接到屏幕保护程序,以便在屏幕保护程序处于非事件状态时停止进程,反之亦然。 关于linux-Linux中的调度:runatask

c - Linux内核-task_h_load

我正在尝试了解load_balance函数期间发生的情况。我正在检查3.14版,但我也查看了4.3版,因为有人告诉我机制已更改,并且在此版本中更加清楚。在v3.14中,call来自move_tasks在v4.3中,call来自detach_tasks从我所看到的是相同的功能,只是名称不同。此功能根据env->balance参数将任务从一个队列移到另一个队列。我不明白的是task_h_load中的负载计算方式/方式。有谁知道加载成员代表什么以及如何在task_h_load函数中计算它? 最佳答案 CFS包含“计划实体”树。每个调度实体

mongodb - 命令以非零退出代码 : Error executing in Docker Container: 137 (Mongo Manager) 终止

根据本指南:https://docs.opsmanager.mongodb.com/current/tutorial/install-simple-test-deployment/我正在尝试在OpenShift中运行MongoDB和MongoDBOpsManager。我已经成功dockerizeMongoDB和MongoDBOpsManager并且MongoDB正在成功运行,监听端口27017和所有接口(interface):#networkinterfacesnet:port:27017bindIp:0.0.0.0我还设法让MongoDBOpsManager初始化,这意味着以下步骤成