資源簡介
操作系統實驗,壓縮包中包括Linux和windows進程控制源代碼及實驗報告。
進程控制實驗題目:
設計并實現Unix的“time”命令。“mytime”命令通過命令行參數接受要運行的程序,創建一個獨立的進程來運行該程序,并記錄程序運行的時間。
在Windows下實現:
? 使用CreateProcess()來創建進程
? 使用WaitForSingleObject()在“mytime”命令和新創建的進程之間同步
? 調用GetSystemTime()來獲取時間
在Linux下實現:
? 使用fork()/execv()來創建進程運行程序
? 使用wait()等待新創建的進程結束
? 調用g
代碼片段和文件信息
#include
#include
#include
#include
#include
#include
int?main(int?argc?char?*argv[])
{
struct?timeval?starttimeendtime;????//子程序開始時間和結束時間
double?startendlast;
char?*const?arg[]?=?{““};
int?status;
pid_t?pid;
????//記錄開始時間
????gettimeofday(&starttimeNULL);
//創建子進程
pid?=?fork();
if(pid<0)
{
printf(“進程創建失敗!\n“);
}
else?if(pid==0)
{
//運行子進程
if(?exevc(argv[1]arg)<0?)
{
printf(“子進程運行失敗!\n“);
}
exit(0);
}
//等待進程結束
wait(&status);
//記錄結束時間
gettimeofday(&endtimeNULL);
//計算運行時間
start?=?(double)starttime.tv_sec*1000000?+?(double)starttime.tv_usec;
end?=?(double)endtime.tv_sec*1000000?+?(double)endtime.tv_usec;
last?=?end?-?start;
printf(“程序的運
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????905??2011-04-01?20:26??進程控制\linux\mytime.c
?????文件?????????95??2011-04-01?20:37??進程控制\linux\test1.c
?????文件???????2303??2011-04-02?09:59??進程控制\windows\mytime.cpp
?????文件??????29696??2011-04-01?20:30??進程控制\windows\mytime.exe
?????文件????????125??2011-04-02?11:12??進程控制\windows\wintest1.cpp
?????文件?????172086??2011-04-01?15:29??進程控制\windows\wintest1.exe
?????文件????????125??2011-04-02?11:13??進程控制\windows\wintest2.cpp
?????文件?????172086??2011-04-01?15:30??進程控制\windows\wintest2.exe
?????文件?????224768??2011-04-03?13:37??進程控制\實驗報告.doc
?????目錄??????????0??2011-04-01?20:38??進程控制\linux
?????目錄??????????0??2011-04-02?11:13??進程控制\windows
?????目錄??????????0??2011-04-03?13:37??進程控制
-----------?---------??----------?-----??----
???????????????602189????????????????????12
- 上一篇:linux內核編譯實驗報告
- 下一篇:計算機算法設計與分析(王曉東)源代碼.zip
評論
共有 條評論