第一范文网 - 专业文章范例文档资料分享平台

Linux课程设计进程控制

来源:用户分享 时间:2025/7/5 10:31:17 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

课 程 设 计 报 告

课程名称 Linux操作系统课程设计 指导教师 张玲 起止日期 2014-03-01 至 2014-06-13 实验项目 实验二 进程控制

学 院 信息与通信工程学院 专 业 电子信息工程 学生姓名 班级/学号

成 绩 指导老师签字

1. 课程设计概述

本次课设意在利用进程控制相关的系统调用编程进行进程控制实验,观察进程从创建、运行到终止的控制过程,加深对进程概念的理解。

1.1 课程设计的目的

本实验的目的是掌握进程的概念,理解进程的创建、执行、等待、终止的过程。熟悉有关进程控制的命令和系统调用,理解Shell的工作原理。

1.2 课程设计的内容

1) 进程控制命令

? 使用进程控制命令ps,kill监视和控制进程的活动 2) 编程部分

? 用fork,wait,exec系统调用编程实现进程控制; ? 编写一个简单的shell。

1.3 设计原理

进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。 构建的文件构架如图:

2012010948 exp1

exp2

exp3

vis

vis2

图1 实验目录树的结构

2. 实验步骤

2.1 操作

2.1.1

进程控制命令(在此终端窗口的操作截图见图1)

1. 执行ps命令,查看bash进程的PID:

PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收。

2. 在后台运行一个yes进程: yes > /dev/null &

3. 用ps -f命令观察yes进程的pid和ppid,用ps u命令观察yes进程的状态。 yes进程的父进程是哪个进程?通过查看yes程序的PPID可知其父进程为bash 4. 根据命令名搜索特定的进程: ps -ef | grep yes:

5. 用kill命令杀掉yes进程: kill 【PID】:

图1 进程控制命令

2.1.2

进程控制系统调用(此部分操作截图见图2、3)

1. 利用fork()和wait()来控制进程的执行:

? 在exp2目录下编写一个程序fork_wait.c。该程序用fork创建了一个子进程,而后子进

程先输出自己的信息,再睡眠10秒后结束。父进程等待子进程,收集到子进程结束信息后输出信息,然后结束。

编译:gcc -o fork_wait fork_wait.c 运行:./fork_wait

? 修改此程序,使父进程先睡眠一段时间,然后再收集(wait)子进程。重新编译并在

后台运行该程序(./fork_wait &),在子进程已终止而父进程尚未收集它时,用ps u观察子进程的僵尸状态。

在父进程分支的开始处调用函数sleep(40)睡眠40秒。用ps u可以看见一个Z 2. 利用exec()置换程序的执行代码文件:

? 在exp2目录下编写一个程序exec_test.c,使子进程执行另一个程序,如echo。 编译:gcc -o exec_test exec_test.c 运行:./exec_test

? 修改程序exec_test.c,使子进程执行一个可持续运行一段时间命令,重新编译并在后台

运行程序(./exec_test &),用ps -f 命令观察子进程执行的命令名CMD。 添加一句sleep 40。即:execl(\

图2 进程控制系统调用-fork_wait

搜索更多关于: Linux课程设计进程控制 的文档
Linux课程设计进程控制.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1532o7q3fa0zn001pbc6_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top