大连理工大学大学计算机实验指导,大连理工大学操作系统实验报告...doc

文档介绍:

大连理工大学

本科实验报告

课程名称: 操作系统实验

学院(系): 计算机科学与技术学院

专业: 计算机科学与技术

班级: 电计

学号:

学生姓名:

年月日

实验项目列表

序号

实验项目名称

学时

成绩

指导教师

预****操作

结果

1

进程管理

2

存储管理

3

磁盘移臂调度

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

总计

学分:

大连理工大学实验报告

学院(系):计算机科学与技术学院专业: 计算机科学与技术班级:电计1301

姓名: 学号: 组: ___

实验时间: 2016.6.3 实验室: 综412 实验台:

指导教师签字: 成绩:

进程管理实验

实验目的

加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练****Linux系统中进程创建与控制有关的系统调用的编程和调试技术。

实验原理和内容

原理:(1)fork成功创建子进程后将返回子进程的进程号,不成功会返回-1

(2)exec 系统调用有一组6个函数,其中示例实验中引用了 execve 系统调用语法:

#include

int execve(const char *path, const char *argv[], const char * envp[]);

path 要装入的新的执行文件的绝对路径名字符串.

argv[] 要传递给新执行程序的完整的命令参数列表(可以为空).

envp[] 要传递给新执行程序的完整的环境变量参数列表(可以为空). Exec执行成功后将用一个新的程序代替原进程,但进程号不变,它绝不会再返回到调用进程了。exec调用失败,它会返回-1。

内容:

每个进程都执行自己独立的程序,打印自己的pid,每个父进程打印其子进程的pid;

子1

子2

子1

子2

每个进程都执行自己独立的程序,打印自己的pid,父进程打印其子进程的pid;

编写一个命令处理程序,能处理max(m,n), min(m,n)和 average(m,n,l)这几个命令。(使用exec函数族)

三实验代码及结果

(1)

#include

#include

int main()

{

if(fork() == 0)

{

printf("子进程的pid为:%d.\n",getpid());

if(fork() == 0)

{

printf("二级子进程的pid为:%d.\n",getpid());

}

}

else

{

printf("父进程的pid为%d.\n",getpid());

}

return 0;

}

运行结果:

(2)

#include

#include

int main()

{

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());

}

}

return 0;

}

(3)

调用函数为:

include

#include

#include

#define N 10

int main()

{

int i;

char cmdname[N];

printf("$ ");

scanf("%s",cmdname);

if(strcmp(cmdname,"min")==0)

{

execl("/home/lenovo/min","min",NULL);

}

else if(strcmp(cmdname,"max")==0)

{

execl("/home/lenovo/max","max",NULL);

}

else if(strcmp(cmdname,"ave")==0)

{

execl("/home/lenovo/average","ave",NULL);

}

else

printf

内容来自淘豆网www.taodocs.com转载请标明出处.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值