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 &挂起
  • 相关阅读:
    数据库秒级平滑扩容架构方案
    利用SQL索引提高查询速度
    SQL Server调优系列进阶篇(如何维护数据库索引)
    SQL Server调优系列进阶篇(如何索引调优)
    SQL语法集锦一:显示每个类别最新更新的数据
    TreeView中节点勾选设置
    C# WinForm捕获全局异常
    SQL SERVER 查询死锁
    DataTable导入到Excel文件
    Microsoft SyncToy 文件同步工具
  • 原文地址:https://www.cnblogs.com/debug-the-heart/p/13897324.html
Copyright © 2011-2022 走看看