梁广轩_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工具
- 梁广轩_1505010601_实验3
- 梁广轩_1505010601_实验1
- 梁广轩_1505010601_实验2
- 梁广轩_1505010601_实验4
- 实验3
- 实验3
- 实验3
- 实验3
- 实验3
- 实验3
- 实验3
- 实验3
- 接口与实验:实验3
- 上机实验3种排序实验8
- C++实验2-剩下3个实验
- 实验:C++实验3-项目1
- 实验:c++实验3-项目1
- 实验:C++ 实验3-项目1
- fortify——password Management
- js图片旋转
- 原型模式(ProtoType)
- 【LeetCode】17. Letter Combinations of a Phone Number
- html页面的meta标签的name和http-equiva区别
- 梁广轩_1505010601_实验3
- Android--百度API的初使用
- 静态方法和非静态方法的区别是什么
- 投掷硬币(动态规划)
- 176. Second Highest Salary
- VS2013出现“无法找到“xxx.exe”的调试信息,或者调试信息不匹配”错误解决方案
- 01背包问题
- C/C++:sizeof数组与指针
- erlang学习之自定义behaviour【转】