Linux进程通信实验(共享内存通信,接上篇)

Linux进程通信实验(共享内存通信,接上篇),第1张

这一篇记录一下共享内存实验,需要linux的共享内存机制有一定的了解,同时也需要了解POSIX信号量来实现进程间的同步。可以参考以下两篇博客: https://blog.csdn.net/sicofield/article/details/10897091

https://blog.csdn.net/ljianhui/article/details/10253345

实验要求:编写sender和receiver程序,sender创建一个共享内存并等待用户输入,然后把输轮卜入通过共腊物穗享内存发送给receiver并等待,receiver收到后把消息显示在屏幕上并用同样方式向sender发送一个over,然后两个程序结束运行。

这个实验的难点主要在于共享内存的创建和撤销(涉及到的步骤比较多,需要理解各步骤的功能),以及实现两个进程间的相互等待(使用信号蚂洞量来实现,这里使用了有名信号量)

实验心得:学习理解了linux的共享内存机制以及POSIX信号量机制。

两个实验虽然加强了对linux一些机制的理解,但是感觉对linux的学习还不够,需要继续学习。

1-

for dir in "a_sub b_sub"

do

cd $dir

ls -1 *.c

ls -1 *.o

cd ..

done

2-

str=`df /home |grep home|cut -c 51-`

for used in $str

do

per_use=$used

break

done

num=`echo $per_use|cut -d'%' -f1`

if [ $num -lt 50 ]

then

echo "态坦用户文件系帆枣桐统磁岩拆盘使用负荷量小"

else

if [ $num -lt 90 ]

then

echo "用户文件系统磁盘使用负荷量正常"

else

echo "用户文件系统磁盘使用负荷量偏大"

fi

fi

3-假设文件内容如下:

class 1

100

98

80

class 2

99

96

90

class 3

100

60

50

cnt=0

sum=0

while read a

do

if echo $a|grep class >/dev/null

then

if [ $cnt -ne 0 ]

then

avg=`expr $sum / $cnt`

echo "$old_class's average: $avg"

fi

cnt=0

sum=0

old_class=$a

else

cnt=`expr $cnt + 1`

sum=`expr $sum + $a`

fi

done <score.txt

if [ $cnt -ne 0 ]

then

avg=`expr $sum / $cnt`

echo "$old_class's average: $avg"

fi

实验报告

实验名称: 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项即为总的线程数

实验总结:...


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12402292.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存