- 264
- 0
- 约 18页
- 2016-12-07 发布于重庆
- 举报
大连理工大学操作系统实验报告
大连理工大学
本科实验报告
课程名称: 操作系统实验
学院(系): 计算机科学与技术学院
专 业: 计算机科学与技术
班 级: 电计
学 号:
学生姓名:
年 月 日
实验项目列表
序号 实验项目名称 学时 成 绩 指导教师 预习 操作 结果 1 进程管理 2 存储管理 3 磁盘移臂调度 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 总计 学分:
大连理工大学实验报告
学院(系):计算机科学与技术学院 专业: 计算机科学与技术 班级:电计1301
姓 名: 学号: 组: ___
实验时间: 2016.6.3 实验室: 综412 实验台:
指导教师签字: 成绩:
进程管理实验
实验目的
加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练习Linux系统中进程创建与控制有关的系统调用的编程和调试技术。
实验原理和内容
原理 (2)exec 系统调用有一组6个函数,其中示例实验中引用了 execve 系统调用语法:
#include unistd.h
int execve(const char *path, const char *argv[], const char * envp[]);
path 要装入的新的执行文件的绝对路径名字符串.
argv[] 要传递给新执行程序的完整的命令参数列表(可以为空).
envp[] 要传递给新执行程序的完整的环境变量参数列表(可以为空). Exec执行成功后将用一个新的程序代替原进程,但进程号不变,它绝不会再返回到调用进程了。exec调用失败,它会返回-1。
内容:
每个进程都执行自己独立的程序,打印自己的pid,每个父进程打印其子进程的pid;
每个进程都执行自己独立的程序,打印自己的pid,父进程打印其子进程的pid;
编写一个命令处理程序,能处理max(m,n), min(m,n)和 average(m,n,l)这几个命令。(使用exec函数族)
三 实验代码及结果
(1)
#includestdio.h
#includeunistd.h
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)
#includestdio.h
#includeunistd.h
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 unistd.h
#include string.h
#include stdio.h
#define N 10
int main()
{
int i;
原创力文档

文档评论(0)