zoukankan      html  css  js  c++  java
  • Linux 指定进程为RRFIFO进程,设置优先级,绑定运行cpu

    执行c代码

    #include<sched.h>
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<errno.h>
    #include <math.h>
    
    int main(int argc,char **argv)
    {
    
    	long i,j,temp;
    	char cmd_str[100];
    	int rc,current_scheduler_policy;
    	unsigned long mask=(unsigned long)atoi(argv[3]); /* processor 0 ->valu=1,and processor 1->value=2 */
    	struct sched_param my_params;//将要设置的调度参数
    	
    	printf("The argc value = %d,arv[3]=%d,hope is=1, argv[2]=%d,hope is=90+,argv[1]=%d
    ",argc,atoi(argv[3]),atoi(argv[2]),atoi(argv[1]));
    	/*if(argc!=4){
    	printf("usage:RR-FIFO-sched sched_class priority
    sched_class: 0 for CFS;1 for FIFO;2 for RR
    ");
    	exit(1);
    	}*/
    	//增加绑定进程
    	if (sched_setaffinity(0, sizeof(mask), &mask) <0) {
    		 perror("sched_setaffinity");
    	     }
    
    	my_params.sched_priority = atoi(argv[2]);
    	rc = sched_setscheduler(0,atoi(argv[1]),&my_params);
    
    	if(rc<0){
    		perror("sched_setscheduler error
    ");	
    		exit(0);
    	}
    
    	current_scheduler_policy = sched_getscheduler(0);
    	printf("the  PID:%d current scheduler=%d
    ",getpid(),current_scheduler_policy);
    
    	for(i=0;i<1024*1024*1024;i++){
    		for(j=0;j<10;j++)
    			temp++;
    	}
    	
    	//while(1);
    	
    	sprintf(cmd_str,"cat /proc/%d/sched > ./sched-%d; date >> ./sched-%d",getpid(),getpid(),getpid());//sprintf 
    	system(cmd_str);//记录各个进程的/proc/PID/sched以及时间信息
    	return 0;
    
    }
    

     通过gcc 链接成可执行文件RR-FIFO2 

    shell可执行脚本:

    #!/usr/bin/bash
    echo Running a shell
    #./RR-FIFO-sched 2 90 1&
    #./RR-FIFO-sched 2 90 1&
    #taskset -c 0 ./RR-FIFO-sched 2 90&
    #taskset -c 0 ./RR-FIFO-sched 2 90&
    #sleep 5s
    #taskset -c 0 ./RR-FIFO-sched 1 95&
    #./RR-FIFO-sched 1 95 1&
    # SCRIP 3
    ./RR-FIFO2 2 90 1& # 2 -指定进程为RR类 , 90-priority 1 -绑定到cpu 0 &挂起
    ./RR-FIFO2 2 90 1&
    sleep 5s
    ./RR-FIFO2 1 95 1&# 2 -指定进程为FIFO类 , 90-priority 1 -绑定到cpu 0 &挂起
  • 相关阅读:
    Android Studio 编译报错 AAPT2 error: check logsfor details
    pytest01--生成测试报告及allure的介绍
    三号坑——自动化测试用例前置conftest.py文件
    【pycharm】如何设置以pytest方式去运行用例!!!
    二号坑 —— 导出、安装依赖包
    一号坑 —— 数据比对时碰到的问题
    十六——reflect反射机制
    十五—— 装饰器
    十三 —— 文件读写
    十二 —— python的内置函数
  • 原文地址:https://www.cnblogs.com/debug-the-heart/p/13897324.html
Copyright © 2011-2022 走看看