
实验名称: Linux观察行为
实验时间:年 月 日
实验人员: (姓名) (学号) (年级)
实验目的: 掌握监视系统的几个Linux基本命令以及其他常用命令,学习linux内核,进程,存储和其他资源的一些重要特征,熟悉/proc虚拟文件系统。
实验环境: linux
实验步骤:
1. 用帐户root,密码123456登陆linux系统
2. 运行ps、man ps、cal、date、clear、who、which命令,观察输出结果
3. 运行/proc文件系统的相关命令(参见以下实验陈述3),观察输出结果
实验陈述:
1、基础知识:
为什么说/proc是一个虚拟文件系统:
proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。
该文件的作用:
它以文件系统的方式为访问系统内核数据的 *** 作提供接口。用户和应用程序可以通过 proc得到系统的信息,并可以改变内核的某些参数。
2、写出下列运行指令的结果(在终端里原样输入命令即可得到结果)
cal: 返回当前年月日历
who am I:返回当前用户信息
find /usr -name "clear":
返回 一直到/clear的路径 如:/use/bin/clear
which ls: alias ls='ls --color=tty'
/bin/ls
3、完成下列liunx机器问题(/proc文件系统)
² CPU的类型和型号
Ø指令:cat /proc/cpuinfo
Ø结果:(原样输入指令即可得到结果)
² 使用的Linux内核版本、编译器版本
Ø指令:cat /proc/version
Ø结果:(原样输入指令即可得到结果)
² 配置了多少内存
Ø指令:cat /proc/meminfo
Ø结果:
MemTotal项就是总的内存.
² 当前有多少可用内存
Ø指令:cat /proc/meminfo
Ø结果:
MemFree项就是可用内存.
² 有多少磁盘读写请求
Ø指令:cat /proc/stat
Ø结果:
disk_io项
² 从系统启动以来已经创建了多少进程
Ø指令:cat /proc/stat
Ø结果:
processes项即为总的线程数
实验总结:...
#include <unistd.h>#include <stdio.h>
//警告: 该程序未做错误验证, 未关闭管道(由系统自动关闭)
int main()
{
int p2c[2] // 该管道父进程写,子进程读
int c2p[2] // 该管道子进程写,父进程读
// 创建2条管道
pipe(p2c)
pipe(c2p)
int pid = fork()
int fd_read, fd_write // 这两个描述符用于保存某进程读端和写端
int pid_my // 保存某进程自身的pid
int pid_other // 另一进程的pid,通过
if ( pid == 0 ) { // 子进程
fd_read = p2c[0]
fd_write= c2p[1]
// 通过getpid取得自身pid,写到管道里
pid_my = getpid()
write(fd_write, &pid_my, sizeof(int))
// 从另一管道读取另一进程的pid
read(fd_read, &pid_other, sizeof(int))
// 打印读取到的pid
printf("Recive pid : %d\n", pid_other)
} else { // p
fd_read = c2p[0]
fd_write= p2c[1]
pid_my = getpid()
// 由于子进程是先写自身pid,父进程最好先读取子进程的pid
read(fd_read, &pid_other, sizeof(int))
write(fd_write, &pid_my, sizeof(int))
printf("Recive pid : %d\n", pid_other)
}
return 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)