并发和竞态(实践篇)

1. complete.c 只是一个简单的字符驱动,但是我加进去了completion来同步读写操作

 

 

2. Makefile

 

 

3. completion_testr.c 调用read函数

 

 

4. completion_testw.c 调用write函数

 

 

5. Makefile 使用make all编译读写程序

 

 

 

 6. 开始测试啦

 

装载completion驱动

sudo insmod complete.ko

查看主设备号,假设为251

cat /proc/devices

建立设备节点

sudo mknod /dev/completion c 251 0

更改权限

sudo chgrp staff /dev/completion

sudo chmod 664 /dev/completion

 

实验1: 先运行completion_testw,再运行completion_testr

结果:  write ok! code=0

           read ok! code=0

 

实验2: 先运行两个completion_testr,再运行两个completion_testw

结果: completion_testr 1 阻塞

          completion_testr  2 阻塞

          completion_testw 1 打印 write ok! code=0

          同时 completion_testr 1 打印 read ok! code=0

          completion_testw 2 打印 write ok! code=0

          同时 completion_testr 2 打印 read ok! code=0

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值