操作系统-实验三-进程管理-实验报告(共20页).docx
《操作系统-实验三-进程管理-实验报告(共20页).docx》由会员分享,可在线阅读,更多相关《操作系统-实验三-进程管理-实验报告(共20页).docx(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上计算机与信息工程学院实验报告姓名 学号专业软件工程年级2017级课程操作系统主讲教师党兰学实验时间(年月日时)2019年10月23日实验地点计算机学院201机房辅导教师党兰学实验题目进程管理实验目的1. 加深对进程概念的理解,明确进程和程序的区别;2. 进一步认识并发执行的实质;3. 了解父进程和子进程之间的关系;4. 查看进程管理命令。实验环境(硬件和软件)硬件:PC机 软件:Oracle VM Virtualbox Linux一、实验内容1.练习在shell环境下编译执行程序(注意: 在vi编辑器中编写名为sample.c的c语言源程序 用linux自带的编译器g
2、cc编译程序,例如:gcc o test sample.c 编译后生成名为test.out的可执行文件; 最后执行分析结果;命令为:./test)注意:linux自带的编译程序gcc的语法是:gcc o 目标程序名 源程序名,例如:gcc o sample1 sample1.c,然后利用命令:./sample 来执行。如果仅用“gcc 源程序名”,将会把任何名字的源程序都编译成名为a.out的目标程序,这样新编译的程序会覆盖原来的程序,所以最好给每个源程序都起个新目标程序名。2.进程的创建仿照例子自己编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两
3、个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示“a”,子进程分别显示字符“b”和“c”。观察记录屏幕上的显示结果,并分析原因。3.分析程序实验内容要在给出的例子程序基础上,根据要求进行修改,对执行结果进行分析。二、实验步骤1. 利用fork()创建一个小程序(1) 编写程序#include main () int i=5; pid_t pid; pid=fork(); for(;i0;i-) if (pid 0;i-) if (pid 0) printf(error in fork!); else if (pid = 0) printf(the child process, my
4、process id is %d and i=%dn,getpid(),i); else printf(the parent process, my process id is %d and i=%dn,getpid(),i); (2) 运行程序(3)分析程序在这里,主程序先运行,在屏幕上输出一个a,之后两个子程序分别运行而输出c和b。2 子进程对存取空间的复制(1) 编写程序(2)运行程序(3) 分析程序通过scanf(“%d”,&i);语句读取一个整数存在i,之后创建两个子程序,输入10后,子程序运行,之后经过一些读取赋值操作,输出i的值。3 父子进程执行进程分析(1) 编写程序(2) 运
5、行程序(3) 程序分析三次结果不同是因为printf(“In which process?n”);所处位置经过变换,处于父子程序之后,父子程序之前和父程序之中。4 修改程序验证父子进程关系(1) 编写程序文本代码:#include #include #include #include #include #include #include #include #include #define MY_SHMKEY / need to change#define MY_SEMKEY / need to changevoid sigend(int);int shmid, semid;int main(v
6、oid) int *shmptr, semval, local; struct sembuf semopbuf; if(shmid=shmget(MY_SHMKEY, sizeof(int), IPC_CREAT|IPC_EXCL|0666) 0) /* shared memory exists, act as client */ shmid=shmget(MY_SHMKEY, sizeof(int), 0666); semid=semget(MY_SEMKEY, 2, 0666); shmptr=(int *)shmat(shmid, 0, 0); printf(Act as produce
7、r. To end, input 0 when prompted.nn);printf(Input a number:n);scanf(%d, &local); while( local ) semopbuf.sem_num=0; semopbuf.sem_op=-1; semopbuf.sem_flg=SEM_UNDO; semop(semid, &semopbuf, 1);/* P(S1) */ *shmptr = local; semopbuf.sem_num=1; semopbuf.sem_op=1; semopbuf.sem_flg=SEM_UNDO; semop(semid, &s
8、emopbuf, 1);/* V(S2) */ printf(Input a number:n); scanf(%d, &local); else/* acts as server */ semid=semget(MY_SEMKEY, 2, IPC_CREAT|0666); shmptr=(int *)shmat(shmid, 0, 0);semval=1;semctl(semid, 0, SETVAL, semval);/* set S1=1 */semval=0;semctl(semid, 1, SETVAL, semval);/* set S2=0 */ signal(SIGINT, s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 进程 管理 报告 20
限制150内