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

做网站卖货苏州建设工程检测协会网站

做网站卖货,苏州建设工程检测协会网站,flash网站 seo,wordpress 更改数据表GPU虚拟化实现(七) 章节回顾进程管理资源限制和环境变量利用率监控线程信号处理退出处理代码具体运作流程怎么限制SM的总结章节回顾 在上一章,分析了项目的主要代码模块功能:共享内存和初始化、GPU 内存管理、GPU 利用率管理以及锁机制,在这一章将继续分析其他的代码模块…

GPU虚拟化实现(七)

  • 章节回顾
  • 进程管理
  • 资源限制和环境变量
  • 利用率监控线程
  • 信号处理
  • 退出处理
  • 代码具体运作流程
  • 怎么限制SM的
  • 总结

章节回顾

在上一章,分析了项目的主要代码模块功能:共享内存和初始化、GPU 内存管理、GPU 利用率管理以及锁机制,在这一章将继续分析其他的代码模块功能。

进程管理

void init_proc_slot_withlock() {int32_t current_pid = getpid(); // 获取当前进程的 PIDlock_shrreg(); // 加锁shared_region_t* region = region_info.shared_region; // 获取共享内存区域 shared_region 的指针// 检查共享内存中的进程计数 proc_num 是否达到最大限制if (region->proc_num >= SHARED_REGION_MAX_PROCESS_NUM) {exit_withlock(-1); // 退出程序}// 调用 signal() 函数为 SIGUSR1 和 SIGUSR2 信号注册处理函数signal(SIGUSR2,sig_swap_stub);signal(SIGUSR1,sig_restore_stub);// If, by any means a pid of itself is found in region->proces, then it is probably caused by crashloop// we need to reset it.int i,found=0;// 遍历共享内存中的进程槽位数组 region->procs,检查是否存在当前进程的 PID(current_pid)for (i=0; i<region->proc_num; i++) {// 如果找到,将该槽位的状态 status 设置为 1(表示活跃),并用 memset() 清空该槽位的两个数组if (region->procs[i].pid == current_pid) {region->procs[i].status = 1;memset(region->procs[i].used,0,sizeof(device_memory_t)*CUDA_DEVICE_MAX_COUNT);memset(region->procs[i].device_util,0,sizeof(device_util_t)*CUDA_DEVICE_MAX_COUNT);found = 1;break;}}// 如果未找到自己的 PID(found == 0),在当前进程计数 proc_num 对应的槽位上分配一个新槽位if (!found) {region->procs[region->proc_num].pid = current_pid;region->procs[region->proc_num].status = 1;memset(region->procs[region->proc_num].used,0,sizeof(device_memory_t)*CUDA_DEVICE_MAX_COUNT);memset(region->procs[region->proc_num].device_util,0,sizeof(device_util_t)*CUDA_DEVICE_MAX_COUNT);region->proc_num++;}clear_proc_slot_nolock(current_pid, 1);unlock_shrreg();
}
  • 为当前进程在共享内存区域中分配或重用一个进程槽位,初始化该槽位的状态和数据,并设置信号处理函数以支持进程间通信或恢复机制
int rm_quitted_process(){// 使用 popen() 调用系统命令 ps ax,并以只读模式("r")打开一个文件流 wstream,用于读取命令输出。ps ax 会列出系统中所有运行进程的信息FILE *wstream;wstream=popen("ps ax","r");char tmp[256];char *atmp;int pidmap[SHARED_REGION_MAX_PROCESS_NUM];memset(pidmap,0,sizeof(int)*SHARED_REGION_MAX_PROCESS_NUM);ensure_initialized();int32_t pid;int i = 0,cnt=0,ret=0;LOG_INFO("rm_quitted_process");lock_shrreg();if (wstream!=NULL){while (fgets(tmp,256,wstream)) {atmp = strtok(tmp," ");pid = atoi(atmp);if (pid!=0)for (i=0;i<region_info.shared_region->proc_num;i++)if (region_info.shared_region->procs[i].pid==pid){pidmap[i]=1;}}// 遍历共享内存中的进程列表 procs,检查 pidmap[i] 的值for (i=0;i<region_info

文章转载自:

http://u8EMFoPx.ccpnz.cn
http://hd7yowRG.ccpnz.cn
http://qalz4jNF.ccpnz.cn
http://XpmGqDJ8.ccpnz.cn
http://qosmJ0m8.ccpnz.cn
http://S2xdg9xn.ccpnz.cn
http://QotT3Q8g.ccpnz.cn
http://zElvSLJq.ccpnz.cn
http://arcwIzXC.ccpnz.cn
http://GSGKrprE.ccpnz.cn
http://43Xm8uq9.ccpnz.cn
http://wfZZjjOv.ccpnz.cn
http://bD6Olp0W.ccpnz.cn
http://ekCZDZwV.ccpnz.cn
http://aZlsVSQG.ccpnz.cn
http://EFlwgtZB.ccpnz.cn
http://fTsYDk1L.ccpnz.cn
http://nRhX8zmr.ccpnz.cn
http://Jv7wXjRd.ccpnz.cn
http://WAWvrfCq.ccpnz.cn
http://2V01WcLE.ccpnz.cn
http://MdXs2Rro.ccpnz.cn
http://7Yrnihk4.ccpnz.cn
http://RxQputLl.ccpnz.cn
http://uDk8UFCo.ccpnz.cn
http://7aGXhoWN.ccpnz.cn
http://Zk2S3VUL.ccpnz.cn
http://33H6sfnG.ccpnz.cn
http://52K4L9Um.ccpnz.cn
http://AbdfYkS4.ccpnz.cn
http://www.dtcms.com/wzjs/658924.html

相关文章:

  • 懒人免费建站模板大宗商品交易平台推荐
  • 网站网络推广策略和电子商务js页面下载wordpress
  • 网站可以免费做吗dede小说网站模板
  • 汨罗做网站价格创建企业需要什么条件
  • 从化区城郊街道网站麻二村生态建设如何建设企业网站
  • 微站开发360免费wifi无法在win10下正常运行
  • 浙江建设信息港怎么查询账号seo是什么
  • 天空建筑网站ai网站
  • 建设一个网站要多少钱重庆建工集团有限公司官网
  • 哪家建网站重庆免费建网站
  • 自己公司的网站怎么编辑器网站怎么提交收录
  • 网站模板编辑器广东建设信息网行业版
  • 杭州网站前端建设备案网站需要多久
  • 12306网站如何做火车票候补做网站话术
  • 怎么用网站做类似微博html5标签
  • 做淘宝浏览单的网站帮你省网站怎么做
  • 十大博客网站长沙品牌网站建设实力强
  • 网站域名解析登陆淄博网络科技有限公司
  • 在线阅读网站建设方案南京家装公司有哪些品牌
  • 网站关键词优化技巧wordpress调出代码
  • 网站 ip pv做下载类网站前景
  • 青岛做网站哪家公司好cms内容管理
  • 2023网站推荐温州网站建设专家
  • 企业网站建设选题依据wordpress 会员推广插件
  • pc 手机站网站制作公司黄页企业名录在哪里查
  • wordpress站点取名如何分析竞争对手的网站
  • 为什么有的网站打不开wordpress autumn默认主页
  • 永久免费自助建站平台什么是网站代理
  • 网站备案与域名关系免费企业名录数据
  • 广州网站程序开发手机app的开发与维护费用