文档介绍:操作系统试验报告姓名:学号:学院:实验一实验要求:获得当前系统中正在运行的所有进程的优先级。实验程序://实验一:获取当前系统的所有优先级#include<>#include<>#include<iostream>//当在用户模式机内核模式下都提供所耗时间时,在内核模式下进行所耗时间的64位计算的帮助方法DWORDGetKernelModePercentage(constFILETIME&ftKernel, constFILETIME&ftUser){ //将FILETIME结构转化为64位整数 ULONGLONGqwKernel= (((ULONGLONG))<<32)+ ; ULONGLONGqwUser= (((ULONGLONG))<<32)+ ; //将消耗时间相加,然后计算消耗在内核模式下的时间百分比 ULONGLONGqwTotal=qwKernel+qwUser; DWORDdwPct= (DWORD)(((ULONGLONG)100*qwKernel)/qwTotal); return(dwPct);}//以下是将当前运行进程名和消耗在内核模式下的时间百分数都显示出来的应用程序voidmain(){ //对当前系统中运行的进程拍取"快照" HANDLEhSnapshot=::CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, //提取当前进程 0); //如果是当前进程,就将其忽略//初始化进程入口 PROCESSENTRY32pe; ::ZeroMemory(&pe,sizeof(pe)); =sizeof(pe); //按所有进程循环 BOOLbMore=::Process32First(hSnapshot,&pe); while(bMore) { //打开用于读取的进程 HANDLEhProcess=::OpenProcess(PROCESS_QUERY_INFORMATION, //指明要得到信息FALSE, //); //要打开的进程 if(hProcess!=NULL) { DWORDdwPriority=::GetPriorityClass(hProcess);//消除句柄::CloseHandle(hProcess); std::cout<<"ProcessID:"<<<<",Processpriority:"; switch(dwPriority) { caseHIGH_PRIORITY_CLASS: std::cout<<"High"; break; caseNORMAL_PRIORITY_CLASS: std::cout<<"Normal"; break; caseIDLE_PRIORITY_CLASS: std::cout<<"Idle"; break; caseREALTIME_PRIORITY_CLASS: std::cout<<"Realtime"; break