1、实验要求 A、实验进程的需要相应的截图B、实验相应的程序 实验环境 Cygwin 环境实验内容1、理解系统调用fork(),exec系列函数,exit(),wait()的功能和实现过程。(1)进程的创建 (2)进程等待(3)进程的终止 (4)System函数运用(5)进程组 (6)时间片的分配(7)多线程库算法描述及步骤(1)在cygwin环境下建立新文件;(vi a.c)(2)在cygwin环境中查找刚建立的文件;(ls a.c)(3)在C盘中找到文件、打开将进程复制在其中并保存,然后在cygwin环境中进行调试;(cc -o a a.c)(4)在cygwin环境下执行进程。(./a)调试过
2、程结果实验2.1:#includestdio.hunistd.hint main() pid_t pid; char *message; int n; printf(“Fork program startingn”);pid=fork()switch(pid)case 1:printf(“Fork error!n”); exit(1); case 0:message= “Child process is printing.”; n=5; for(;n0;n-) puts(message); sleep(1);break; default: message= “Parent process id
3、 printing.”; n=3;for(;exit(0);实验结果:实验2.2:sy/types.h if(pid=vfork()0) printf(“Fork error! else if(pid= =0) printf(“Child process PID:%d.n”,getpid();setenv(“PS1”,”CHILD$”,1); printf(“Process %4d: calling exec.n”, getpid(); if(execl(“/bin/sh”,”bin/sh”,”arg2”,NULL) int n,exit_code; exit_code=37; break;m
4、essage=“Parent process id printing.”;n=3; exit_code=0;if(pid) int stat_val; pid_t child_pid; child_pid=wait(&stat_val);printf(“Child has finished: PID=%d.n”,child_pid);if(WIFEXITED(stat_val) printf(“Child exited with code %d.n”, WEXITSTATUS(stat_val);printf(“Child terminated abnormally.n”);实验2.4:进程的
5、终止void h_exit(int status);static void forerror(void);static void waiterror(void);int main(void) int status; if(pid=fork()printf(“running ps with system.n”); system(“ps ax”);printf(“Done.n”);实验2.6: 多线程库pthread.hint myglobal;pthread_mutex_t mytmutex=PTHREAD_MUTEX_INITIALIZER;/定义静态互斥void *thread_functi
6、on(void *arg) int i,j; for(i=0;i20;i+) pthread_mutex_lock(&mymutex); /加锁 j=myglobal; j+; printf(“.”); fflush(stdout); myglobal=j; pthread_mutex_unlock(& /解锁 Return NULL; pthread_t mythread; int i; if(pthread_create(&mythread, NULL, thread_function, NULL) printf(“error creating thread.”); abort();for(i=0; myglobal+; if(pthread_join(mythread, NULL) printf(“error joining thread.”); printf(“nmyglobal equals %dn”,myglobal); Exit(0);总这次实验,主要是实验在cygwin环境之下进程的相关运行过程。这让我对cygwin环境有了一些了解,但是还不是很深入,我还必须加强学习,进一步理解这类知识。附录
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1