大家好,为了进一步提升大家对实验的认识程度,每个控制实验将加入详细控制思路与流程,欢迎交流学习。
今天给大家分享一下,linux系统里面并发与竞争具体实现,操作硬件为I.MX6ULL开发板。
第一:Linux系统并发与竞争简介
linux是一个多任务操作系统,存在多个任务操作同一个内存或设备的情况,多个任务都能访问的资源叫做共享资源。例如共享单车,按照谁先扫码,谁骑走的原则使用共享单车,如果没有限制恐怕要打起来,因此linux驱动对并发控制的管理非常重要,一起来学习一下吧。
第二:原子操作实验
使用原子操作来实现对LED设备的互斥访问,一次只允许一个应用程序使用LED灯。使用atomic来实现一次只能运行一个应用访问LED,在源码的基础上添加atomic相关代码即可。
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/ide.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/gpio.h>
#include <linux/cdev.h>
#include <linux/device.h>
#inc