闽 南 师 范 大 学
实 验 报 告
班 级 学号 姓名 成绩
同组人 实验日期 课程名称:操作系统 实验题目:进程管理 1.对理论课中学习的进程、程序等的概念作进一步的理解,明确进程和程序的区别; 2. 加深理解进程并发执行的概念,认识多进程的并发执行的实质; 实验目的与要求 PC 兼容机。Window xp 以上操作系统 实验环境的配置 第 1 页
闽 南 师 范 大 学 实 验 报 告 编写程序,利用fork()产生两个子进程,首先显示两个子进程及父进程的进程标识符;然后让父进程显示1~26个数字,子进程1显示26个大写字母,子进程2显示26个小写字母,让大小写字母及数字是夹杂交错输出的。修改程序,让两个子进程夹杂输出结束后,父进程输出开始(见图1) pid=fork(); if(pid<0){//failed} else if (pid==0){//child1} 实验内容与具体步骤 if(pid>0){ pid1=fork(); if(pid1<0){//failed} else if (pid1==0){//child2} else{//parent } } ...... #include #include #include #include int main(void) { pid_t pid,pid1; int i; pid = fork(); if (pid < 0) { perror(\exit(1); } else if (pid == 0) { printf(\for(i=0;i<26;i++) { sleep(1); printf(\ } } else { pid1=fork(); if(pid1==0){ printf(\ for(i=0;i<26;i++) { sleep(1); printf(\ } } else if(pid1>0){ printf(\ for(i=1;i<=26;i++) { sleep(1); printf(\ } } } return 0; #include #include #include #include int main(void) { pid_t pid,pid1; int i; pid = fork(); if (pid < 0) { perror(\exit(1); } else if (pid == 0) { printf(\for(i=0;i<26;i++) { sleep(1); printf(\ } } else { pid1=fork(); if(pid1==0){ printf(\ for(i=0;i<26;i++) { sleep(1); printf(\ } } else if(pid1>0){ printf(\wait(); for(i=1;i<=26;i++) { printf(\ } } } return 0;