操作系统实验三题目四
题目四
题目内容-共享内存通信
- 编写程序 sender,它创建一个共享内存,然后随机产生一个100以内的计算表达式(例如12+34),并将这串表达式字符串通过共享内存发送给 receiver;最后,receiver完成表达式运算后,将计算结果(36)写到共享内存 ,sender收到应答消息后,将接收到的计算结果显示在终端屏幕上。上述计算重复10次后,sender向receiver发送”end”,等待receiver发送”over”信息后,删除共享内存,结束程序的运行。
- 编写程序receiver, 它通过共享内存接收来自 sender 产生的信息,如果该信息是计算表达式,则将表达式显示在终端屏幕上,然后计算表达式的结果,再通过该共享内存向sender 发送计算结果,等待接收下一个消息;如果该信息是”end”,则向 sender 发送一个应答消息”over”,并结束程序的运行。选择合适的信号量机制实现两个进程对共享内存的互斥及同步使用。
C代码
sender.c
1 |
|
receiver.c
1 |
|
编译
Makefile文件
1 |
|
全部完成后输入命令
- make(重新编译输入make即可)
- ./receiver
- ./sender(另起一个终端)
实验结果
author: YaoGuangMing 2022-HDU
转载请标明出处!