资源简介
1.在linux中实现一个命令执行程序doit,它执行命令行参数中的命令,之后统计
1)命令执行占用的CPU时间(包括用户态和系统态时间,以毫秒为单位),
2)命令执行的时间,
3)进程被抢占的次数,
4)进程主动放弃CPU的次数,
5)进程执行过程中发生缺页的次数
代码片段和文件信息
#include
#include
#include
#include
#include
#define NDEBUG
#define MAX_CMD_LEN 256//the max length of shell commands
#define MAX_TOKEN_NUM 80//the largest number of tokens
#define HOME “/“//home directory of shell
void printCwd(){/*{{{*/
long size;
char *buf;
char *cwd;
size=pathconf(“.“_PC_PATH_MAX);
if((buf=(char *)malloc((size_t)size))!=NULL)
cwd=getcwd(buf(size_t)size);
printf(“%s$“cwd);
}/*}}}*/
void myshell(){/*{{{*/
printCwd();
char cmd[MAX_CMD_LEN+1];//store a command line
char *token[MAX_TOKEN_NUM+1];//store tokens from command
int token_num;//number of tokens
int DaemonToggle=0;//daemon toggle
int i=-1;
do{
i++;
cmd[i]=getchar();
}while(cmd[i]!=‘\n‘&&i<=MAX_CMD_LEN);
cmd[i]=‘\0‘;
if(i==0){//no input
return;
}
#ifndef NDEBUG
printf(“DEBUG--%d\t\tcommand:%s\n“__LINE__cmd);
#endif
token[0]=strtok(cmd“ “);
for(i=1;token[i-1]!=NULL&&i token[i]=strtok(NULL“ “);
#ifndef NDEBUG
printf(“DEBUG--%d\t\ttoken[%d]:%s\n“__LINE__itoken[i]);
#endif
}
if(token[i-1]==NULL){
token_num=i-1;
}
else{
token[i]=NULL;
token_num=i;
}
if(strcmp(token[token_num-1]“&“)==0)
DaemonToggle=1;
else
DaemonToggle=0;
#ifndef NDEBUG
printf(“DEBUG--%d\t\ttokens:“__LINE__);
for(i=0;token[i]!=NULL;i++)
printf(“%s “token[i]);
printf
- 上一篇:32位Visio一键到底式安装包
- 下一篇:智能手环硬件原理图
相关资源
- 先进先出FIFO页面置换算法
- 《操作系统概念》课后答案.pdf
- 计算机操作系统答案 方敏版
- 操作系统实验四主存空间的分配与回
- 哈工大 操作系统实验二 linux0.01添加系
- 操作系统汤子瀛版课后答案
- 华南理工大学操作系统课设
- 系分经典教材 计算机系统知识、软件
- 机器人操作系统ROS-典型功能代码详解
- 操作系统实验报告_读者写者问题.do
- 罗宇版本的操作系统课后习题答案
- 2007年东北大学博士入学考试试题-分布
- 东北大学linux操作系统期末作业
- 存储管理--可变分区管理 操作系统
- 计算机操作系统课程设计报告.docx
- zw_操作系统试卷.zip
- Spy++是一个非常好的查看Windows操作系
- 计算机操作系统实验代码6个实验
- win10原版操作系统地址
- 《Linux+0.01内核分析与操作系统设计》
- Slackware Linux操作系统启动过程详解
- 操作系统课后习题答案,第八版部分
- Revolution.OS操作系统革命BT种子
- 华为liteOS操作系统说明手册,写的很
- 银河麒麟服务器操作系统安装手册-
- 银河麒麟服务器操作系统标准版V4-白
- centos7ISO文件地址.zip
- 计算机操作系统 西安电子科技大学
- [IBM虚拟大型主机操作系统.带.PCOM5.7
- unix操作系统课后答案
评论
共有 条评论