进程绑定中断CPU核和中断号以及设置线程优先级

2023-10-28

绑定进程的CPU核

// 绑定进程的CPU核
if(g_processCpuNum)
{
    CPU_ZERO(&set);   //清空CPU集合
    CPU_SET(g_processCpuNum, &set);  //向集合中添加CPU核,这个cpu核指参数输入的整数,比如输入了2,代表了cpu2
    if (sched_setaffinity(getpid(), sizeof(set), &set) == -1)   /* 设置主线程的亲和性,子线程会继承父线程的亲和性设置(见man pthread_create) */
    {
        printf("parent sched_setaffinity error\n");
        return -1;
    }
}

绑定要使用中断的CPU核,以及中断号

// 绑定中断CPU核,暂时采用固定中断号的形式,也可以通过系统获取中断号
if(interruptCpuNum && interrruptNum)
{
    sprintf(sysCmd, "echo %d > /proc/irq/%d/smp_affinity", 1 << interruptCpuNum, interrruptNum);
    system(sysCmd);
}

分配线程优先级

// 创建线程读取数据,并分配线程优先级
pthread_t pid;
pthread_attr_t attr;
struct sched_param param;  //描述调度参数的结构

pthread_attr_init(&attr);
#if (THREAD_CTRL_ENABLE == 1)
pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED);    // 线程不继承父线程优先级,即线程也不继承进程的亲和性
pthread_attr_setschedpolicy(&attr, SCHED_FIFO);    // 设置调度策略为SCHED_FIFO
param.sched_priority = sched_get_priority_max(get_thread_policy(&attr));    // 配置优先级最高
pthread_attr_setschedparam(&attr, &param);
#endif
ret = pthread_create(&pid, &attr, read_data, (void*)&handle);
if(ret < 0)
{
    printf("pthread create failed!\n");
    return -1;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

进程绑定中断CPU核和中断号以及设置线程优先级 的相关文章

  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • ALSA:snd_pcm_writei 调用时缓冲区不足

    当运行我最近从灰烬中带回来的旧程序时 我遇到了缓冲区不足的情况 该程序将原始声音文件完全加载到内存中 2100 字节长 525 帧 并准备 ALSA 进行输出 44 1khz 2 通道 有符号 16 位 if err snd pcm set
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • 如何为 Linux 桌面条目文件指定带有相对路径的图标?

    对于我的一个 Linux 应用程序 我有应用程序二进制文件 一个 launcher sh 脚本 针对 LD LIBRARY PATH 和一个 desktop 文件 所有这些都位于同一文件夹中 我想使用图标的相对路径而不是绝对路径 我试过了
  • tcpdump 是否受 iptables 过滤影响?

    如果我的开发机器有iptables规则到FORWARD一些数据包 这些数据包是否被 tcpdump 捕获 我有这个问题 因为我知道存在其他链称为INPUT如果数据包路由到 它会过滤发往应用程序的数据包FORWARD链 它会到达吗tcpdum
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品
  • 并行运行 shell 脚本

    我有一个 shell 脚本 打乱大型文本文件 600 万行和 6 列 根据第一列对文件进行排序 输出 1000 个文件 所以伪代码看起来像这样 file1 sh bin bash for i in seq 1 1000 do Generat
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • 如何使用Android获取Linux内核的版本?

    如何在 Android 应用程序中获取 Linux 内核的版本 不是 100 确定 但我认为调用 uname r 需要 root 访问权限 无论如何 有一种不太肮脏的方法可以做到这一点 那就是 System getProperty os v
  • 如何在 Mac OSX Mavericks 中正确运行字符串工具?

    如何在 Mac OSX Mavericks 中正确运行字符串工具 我尝试按照我在网上找到的示例来运行它 strings a UserParser class 但我收到此错误 错误 Applications Xcode app Content
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序

随机推荐

  • react点击事件控制div盒子的显示隐藏

    index jsx import React Component from react class show extends Component constructor props super props this state cls pa
  • 智慧教室系统--低碳节能管控系统

    随着全球气候变化的日益严重 环保 节能 低碳已经成为各行各业追求的目标 教育行业也不例外 建设低碳 环保的智慧教室已经成为学校和政府的共同关注点 智慧教室系统的解决方案正是基于此 旨在通过AIOT数字化平台 智慧教室和智能管控等技术手段 实
  • list(链表)——STL

    文章目录 list list构造函数 3 list 赋值和交换 list 大小操作 list 插入和删除 list 数据存取 list反转和排序 list 将数据进行链式存储 链表 list 是一种物理存储单元上非连续的存储结构 数据元素的
  • vue 项目动态引入css(sass)文件(判断后加载对应的 sass 文件)

    vue 项目动态引入css文件 preface 问题 解决方案 preface 最新在写后台 管理 应 业务需求 众多菜单业务中 有个菜单需要独立出来给领导使用 改领导有独特喜欢的颜色格调 快速开发 只是做了菜单的权限控制 然后和样式 控制
  • merge sort 一些变种、应用

    1 逆序对数目 分治公式 总的逆序对个数 前半部分逆序对个数 后半部分逆序对个数 merge时候每取一次后半部分的数 累加一次前半部分剩余的数的个数 int countInvertion vector
  • Android系统_SystemUI_android10_添加控制底部导航栏广播

    一 问题背景 在对于我们一些特殊场景 我们可能不想用户能够操作返回 回到主页 因此就需要我们能够灵活控制底部导航栏的状态 二 添加思路 底部导航栏术语叫做NavigationBar 属于SystemUI 跟顶部状态栏StatusBar属于同
  • idea使用debug如何退出循环

    工作中调试难免会遇到循环 特别是循环读取文本内容的时候 10条还可以 万一文本行数有1万多行 难不成还要挨个的进行debug 这里我们可以直接使用idea的debug选项跳出循环 例如下图 如何直接跳出这个while循环 答案是将光标定位到
  • 华清学习阶段总结

    从七月份入学以来 我已经在华清远见学习了3个周左右了 先后遇见了两个讲师 两个讲师以及班主任老师都很负责 不论是在学习上还是在生活上都有他们和同学们相应的及时的帮助与提醒 班上的学习氛围也很好 很多问题在他们的帮助下都能解决 在c基础的上完
  • DEBUG:Ubuntu中无法打开Appimage文件

    DEBUG Ubuntu中无法打开Appimage文件 问题 解决 问题 无法安装此类型的文件 解决 右击文件属性 更改权限
  • 关于Decision in process状态时间变化的解释

    最近自己的文章出现了decision in process时间变化的现象 便上网查了下 觉得以下这个解释是靠谱的 这是编辑部自动发给编辑的提醒邮件引起的状态变化 编辑部一般要求编辑应在decision in process后5个工作日内给作
  • 大语言模型之六- LLM之企业私有化部署架构

    2023年上半年 广泛使用API 如OpenAI 来创建基于大型语言模型 LLM 的基础设施 极大地塑造了软件领域 LangChain 和LlamaIndex在这一趋势中发挥了重要的作用 2023年下半年LLMOps的运维工作流程中微调 或
  • CNStack 虚拟化服务:实现虚拟机和容器资源的共池管理

    背景 容器无疑已经成为新的云计算基础设施 企业私有云平台的建设重心 正在从虚拟化的计算 存储 网络的建设 转向构建以容器 微服务等为核心的云原生平台 不过值得注意的是 企业 IT 系统在进行容器化改造的过程中 由于历史遗留系统 技术债务 内
  • python如何实现excel中vlookup函数的功能

    可以使用 Python 的 pandas 库来实现 Excel 中的 VLOOKUP 函数的功能 首先 需要使用 pandas read excel 函数读取 Excel 文件 然后使用 pandas DataFrame merge 函数将
  • xcode SRCROOT inherited executable_path

    xcode search paths中总是能看到这些宏定义 他们定义了一些常用的路径信息 具体的信息参考官网 https developer apple com library archive documentation Developer
  • LFU算法

    LFU简介 LFU Least Frequently Used 也是一种常见的缓存算法 LFU算法的思想是 如果一个数据在最近一段时间很少被访问到 那么可以认为在将来它被访问的可能性也很小 因此 当空间满时 最小频率访问的数据最先被淘汰 L
  • Flume EmbeddedAgent

    flume flume 二次开发 对EmbeddedAgent的简易改造 动态控制agent 实现启动 关闭等功能 模块结构如下所示 flume parent github地址 1 用途 1 1 本地调试 对flume不是特别熟悉的开发者
  • Ubuntu没网,重启网络服务

    sudo service network manager stop sudo rm var lib NetworkManager NetworkManager state sudo service network manager start
  • ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory解决

    在跑GPU的时候 出现错误 ImportError libcudnn so 7 cannot open shared object file No such file or directory 原因 默认软链的cudnn中没有相应的 lib
  • 接口测试(八)—— 日志收集、全量字段校验、JSON Schema语法

    目录 一 日志收集 1 日志简介 2 日志的级别 3 日志代码实现分析 4 日志使用 二 全量字段校验 1 简介和安装 2 JSON Schema 2 1 入门案例 2 2 校验方式 3 JSON Schema语法 3 1 type关键字
  • 进程绑定中断CPU核和中断号以及设置线程优先级

    绑定进程的CPU核 绑定进程的CPU核 if g processCpuNum CPU ZERO set 清空CPU集合 CPU SET g processCpuNum set 向集合中添加CPU核 这个cpu核指参数输入的整数 比如输入了2