梁广轩_1505010601_实验3

来源:互联网 发布:手机上javaweb编程软件 编辑:程序博客网 时间:2024/06/07 05:09

Linux 系统分析实验报告 实验3

提交日期:2017.04.16

提交截止日期:2017.04.16

姓名:梁广轩

学号:1505010601

班级:计算机科学与技术6班

一、 实验题目

1.在linux环境下用c语言编写一个程序,以树状结构输出系统当前所有进程。

2.编写一个程序,开启三个线程,这三个线程的ID分别为A、B、C,每个线程用自己的ID在屏幕上打印10遍,要求输出结果必须按照ABC的顺序显示。

3.修改do_fork函数,使用prink函数输出do_fork函数执行过程信息到日志。

二、 实验目的

在linux环境下,熟悉进程、线程、do_fork函数、prink函数的使用。
三、 实验平台
一台专有LinuxMint的Linux虚拟机。

四、 实验要求

1.在linux环境下用c语言编写一个程序,以树状结构输出系统当前所有进程。

2.编写一个程序,开启三个线程,这三个线程的ID分别为A、B、C,每个线程用自己的ID在屏幕上打印10遍,要求输出结果必须按照ABC的顺序显示。

3.修改do_fork函数,使用prink函数输出do_fork函数执行过程信息到日志。

3.独立完成。

五、设计思路和流程图

1.设计思路

在Linux虚拟机上,编写程序。

2.实验流程

1)在终端中输入:

vim pstree1.c(新建并生成pstree1.c文件。)(这是打印Linux系统进程树—访问proc目录方案,打印Linux系统进程树—访问PCB结构方案的方案截图在另一文件夹下。)
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

2)在终端中输入:

gcc –o pstree1 pstree1.c(将pstree1.c文件编译成pstree1文件。)
./ pstree1(运行pstree1文件。)

运行结果:

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

任务一完成

3)在终端中输入:

vim test1.c(新建并生成test1.c文件。)
这里写图片描述
这里写图片描述

4)在终端中输入:

gcc –o test1 test1.c(将test1.c文件编译成test1文件。)
./ test1(运行test1文件。)

运行结果:

这里写图片描述

任务二完成

3)在终端中输入:

cd /usr/src/linux-4.10.2/kernel (进入 /usr/src/linux-4.10.2/kernel 路径)
vim fork.c(编写fork.c文件,修改do_fork函数。)

修改前这里写图片描述
修改后

???????????????????????????????

4)在终端中输入:

vim forktest.c(编写forktest.c文件。)
???????????????????????????????

5)在另一终端中输入:

tail –f /var/log/messages(观察输出信息。)

运行结果:

???????????????????????????????

任务三不会做

六、实验体会

通过不停地查找资料,我终于编写和修改程序的任务完成了,对linux系统中进程、线程、do_fork函数、printk函数的使用了更深一步的了解。

七、程序清单

1.windows系统下的“Oracle VM VirtualBox管理器”。
2.linux-4.10.2内核
3.vim、gcc工具

0 0
原创粉丝点击