下面描述在Multi-Core CPU上控制任务管理器CPU使用记录曲线(绘制余弦曲线),具体见代码:
/*
@Author: yj
@Description: 文件描述构造控制任务管理器,使CPU使用曲线满足余弦函数
*/
#include<windows.h>
#include <stdio.h>
#include<iostream>
#include<stdlib.h>
#include<math.h>
using namespace std;
const double PI = 3.14159265;
//周期T = COUNT * INTERVAL
const int COUNT = 200;
const int INTERVAL = 300;
//y = Asin(wx + theat0);FACTOR描述y的值
const double FACTOR = 2 * PI / (COUNT * INTERVAL);
int main()
{
//指定固定在1号CPU上运行,现代系统一般都是Multi-Core Cpu
SetProcessAffinityMask(GetCurrentProcess(),0x00000001);
DWORD busySpanArray[COUNT];
DWORD idleSpanArray[COUNT];
double x = 0;
int half = INTERVAL / 2;
for(int i = 0; i < COUNT; i++)
{
//注意这个表达式
//根据周期T获得FACTOR值
//(1 + sin(FACTOR * x + PI / 2)) * half ,首先函数上移,其次由于y = sinx 值域[-1, 1],乘以hal