大连理工大学本科实验报告课程名称:操作系统实验学院(系):计算机科学与技术学院专业:计算机科学与技术班级:电计学号:学生姓名:年月日实验项目列表序号实验项目名称学时成绩指导教师预习操作结果1进程管理2存储管理3磁盘移臂调度456789101112131415161718总计学分:大连理工大学实验报告学院(系):计算机科学与技术学院专业:计算机科学与技术班级:电计1301姓名:学号:组:___实验时间:2016.6.3实验室:综412实验台:指导教师签字:成绩:进程管理实验一、实验目的加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练习Linux系统中进程创建与控制有关的系统调用的编程和调试技术。二、实验原理和内容原理:(1)fork成功创建子进程后将返回子进程的进程号,不成功会返回-1(2)exec系统调用有一组6个函数,其中示例实验中引用了execve系统调用语法:#includeintexecve(constchar*path,constchar*argv[],constchar*envp[]);path要装入的新的执行文件的绝对路径名字符串.argv[]要传递给新执行程序的完整的命令参数列表(可以为空).envp[]要传递给新执行程序的完整的环境变量参数列表(可以为空).Exec执行成功后将用一个新的程序代替原进程,但进程号不变,它绝不会再返回到调用进程了。exec调用失败,它会返回-1。内容:(1)每个进程都执行自己独立的程序,打印自己的pid,每个父进程打印其子进程的pid;(2)每个进程都执行自己独立的程序,打印自己的pid,父进程打印其子进程的pid;(3)编写一个命令处理程序,能处理max(m,n),min(m,n)和average(m,n,l)父子1子2父子1子2这几个命令。(使用exec函数族)三实验代码及结果(1)#include#includeintmain(){if(fork()==0){printf("子进程的pid为:%d.\n",getpid());if(fork()==0){printf("二级子进程的pid为:%d.\n",getpid());}}else{printf("父进程的pid为%d.\n",getpid());}return0;}运行结果:(2)#include#includeintmain(){if(fork()==0){printf("子进程的pid为%d.\n",getpid());}else{if(fork()==0){printf("子进程2的pid%d.\n",getpid());}else{printf("父进程的pid为%d.\n\n",getpid());}}return0;}(3)调用函数为:include#include#include#defineN10intmain(){inti;charcmdname[N];printf("$");scanf("%s",cmdname);if(strcmp(cmdname,"min")==0){execl("/home/lenovo/min","min",NULL);}elseif(strcmp(cmdname,"max")==0){execl("/home/lenovo/max","max",NULL);}elseif(strcmp(cmdname,"ave")==0){execl("/home/lenovo/average","ave",NULL);}elseprintf("´íÎó!\n");return0;}Max函数为:#include#include#includeintmain(){inta,b;printf("请输入要比较的两个数:\n");scanf("%d%d",&a,&b);printf("大的数是:%d\n",a>b?a:b);}Min函数为:#include#include#includeintmain(){inta,b;printf("请输入要比较的两个数:\n");scanf("%d%d",&a,&b);printf("小的数是:%d\n",a#include#includeintmain(){floata,b,c;printf("请输入要求平均值的两个数:\n");scanf("%f%f%f",&a,&b,&c);printf("平均值为:%.3f\n",(a+b+c)/3);}实验结果为:(此处文字打错,实际输入三个数)四实验总结本次实验熟悉了用cygwin软件模拟linux系统的编译环境,熟悉了编译语句gcc1.c–o1和执行语句./1.exe的使用。并且编程实现了fork成功创建子进程及父子进程间的关系,比如else则代表父进程,比如二级子进程的建立方法。大连理工大学实验报告学院(系):计算机科学与技术学院专业:计算机科学与技术班级:电计1301姓名:学号:组:___实验时间:2016.6.3实验室:综412实验台:指导教师签字:成绩:存储管理实验一实验目的加深对于存储管理的了解,掌握虚拟存储器的...