当前位置: 首页 > wzjs >正文

网站 制作公司二维码制作生成器

网站 制作公司,二维码制作生成器,龙轩导航,怎样用虚拟空间做网站1. Linux 进程中的 nice 值 nice 值通过调整进程的优先级,间接控制 CPU 时间片的分配权重,从而实现对进程调度行为的精细控制。它是 Linux 系统中平衡实时任务与后台任务资源占用的核心工具之一。 优先级调整 核心机制:nice 值(…

1. Linux 进程中的 nice 值

nice 值通过调整进程的优先级,间接控制 CPU 时间片的分配权重,从而实现对进程调度行为的精细控制。它是 Linux 系统中平衡实时任务与后台任务资源占用的核心工具之一。

优先级调整
核心机制:nice 值(范围 -20 到 19)直接控制进程的调度优先级。
低 nice 值(如 -20):表示高优先级,进程更容易被调度器选中,获得更多 CPU 时间片。
高 nice 值(如 19):表示低优先级,进程被调度的频率降低,CPU 时间片分配减少。

记忆:一个进程的 nice 值越高,说明对别的进程越 nice,别的进程运行得越好越快。

2. 代码

设计说明

  • 独立程序:高优先级和低优先级程序完全分离,便于独立运行和调试。
  • CPU 绑定:两个程序均绑定到 CPU 0,消除多核干扰。
  • 时间片观测:每秒打印计数器增量,反映时间片分配比例。

a. high_nice.cc

#include <iostream>
#include <unistd.h>
#include <sys/resource.h>
#include <sched.h>
#include <atomic>
#include <thread>// 绑定到指定 CPU 核
void bind_cpu(int cpu_id) {cpu_set_t mask;CPU_ZERO(&mask);CPU_SET(cpu_id, &mask);if (sched_setaffinity(0, sizeof(mask), &mask) < 0) {perror("sched_setaffinity");exit(1);}
}// 设置进程的 nice 值
void set_nice(int niceness) {if (setpriority(PRIO_PROCESS, 0, niceness) < 0) {perror("setpriority");exit(1);}
}std::atomic<long> counter(0);  // 全局计数器void worker() {while (true) {counter++;  // 高速递增计数器}
}void reporter() {long last = 0;while (true) {std::this_thread::sleep_for(std::chrono::seconds(1));long current = counter.load();std::cout << "[HIGH] Increment: " << current - last << std::endl;last = current;}
}int main() {bind_cpu(0);         // 绑定到 CPU 0set_nice(-5);       // 设置最高优先级(需 root 权限)std::thread t1(worker);std::thread t2(reporter);t1.join();t2.join();return 0;
}

b. low_nice.cc

#include <iostream>
#include <unistd.h>
#include <sys/resource.h>
#include <sched.h>
#include <atomic>
#include <thread>// 绑定到指定 CPU 核
void bind_cpu(int cpu_id) {cpu_set_t mask;CPU_ZERO(&mask);CPU_SET(cpu_id, &mask);if (sched_setaffinity(0, sizeof(mask), &mask) < 0) {perror("sched_setaffinity");exit(1);}
}// 设置进程的 nice 值
void set_nice(int niceness) {if (setpriority(PRIO_PROCESS, 0, niceness) < 0) {perror("setpriority");exit(1);}
}std::atomic<long> counter(0);  // 全局计数器void worker() {while (true) {counter++;  // 高速递增计数器}
}void reporter() {long last = 0;while (true) {std::this_thread::sleep_for(std::chrono::seconds(1));long current = counter.load();std::cout << "[LOW]  Increment: " << current - last << std::endl;last = current;}
}int main() {bind_cpu(0);         // 绑定到 CPU 0set_nice(10);        // 设置最低优先级std::thread t1(worker);std::thread t2(reporter);t1.join();t2.join();return 0;
}

c. Makefile

CPP = g++
CFLAGS = -std=c++11 -pthread -O2
TARGETS = high_nice low_niceall: $(TARGETS)high_nice: high_nice.cc$(CPP) $(CFLAGS) $< -o $@low_nice: low_nice.cc$(CPP) $(CFLAGS) $< -o $@clean:rm -f $(TARGETS)

运行:

make# bash1
sudo ./high_nice# bash2
sudo ./low_nice

3. 结果测试

nice 值为 -5 的占据 CPU 的 96%, nice 值为10 的占据 CPU 的3.7%。

在这里插入图片描述

http://www.dtcms.com/wzjs/814831.html

相关文章:

  • 新河企业做网站如何弄网站排名
  • 网站被谷歌收录wordpress 自动提交表单
  • 克隆网站模板ps怎么做网站视频特效
  • 移动网站建设哪家便宜网页游戏源码购买
  • 自己公司网站自己能做吗手机端网站怎么做排名
  • 事业单位可以建设网站吗最专业的网站建设收费
  • 全美东莞网站建设电子商务网站的设计工具
  • 手机网站模板使用方法科技节手抄报
  • 做哪类网站网站上添加百度地图
  • 南宁制作企业网站建立反洗钱内部控制机制的基本原则
  • 网站开发技术创业计划搜狗推广登录
  • 网站建设公司果动c成都口碑最好的家装公司
  • 自己的服务器建网站为什么要做手机网站
  • 商标 做网站 是几类家纺 网站建设 中企动力
  • 企业单页网站模板滨州做网站建设价格
  • 全返网站建设建筑公司简介模板范文
  • phpnow 搭建网站宁波专业网站制作设计
  • 做商城网站价格学习建设网站难么
  • 静态门户网站源码网站做不做备案有什么区别
  • 写小说赚钱的网站可以用足球做的游戏视频网站
  • 做网站过程中的自身不足外贸公司怎么做网站
  • 咸阳万企网站建设wordpress+编辑器+空格
  • 网站搭建软件d个人响应式网站
  • 专业高端网站建设网站空间到期时间查询
  • 东莞开发公司网站建设网站的内容
  • 北京正规网站建设单价注册商标需要多长时间
  • 建设网站的拓扑图数据查询网站建设
  • 零食电子商务网站建设策划书领英怎么注册公司主页
  • 有专门做房孑特卖的网站吗大型房地产网站建设方案
  • 企业网站搭建营销专业就业前景