会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
zhuliushun001
博客园
首页
新随笔
联系
管理
订阅
上一页
1
2
3
4
5
下一页
2022年8月4日
Makefile初汇总
摘要: Makefile规则 Makefile常见规则 目标文件:依赖文件 规则(命令) eg:maintest:main.o input.o output.o gcc -o maintest main.o input.o output.o 每条命令前面是由TAB键开始,不能使用空格。 Makefile的错
阅读全文
posted @ 2022-08-04 20:01 JwChu
阅读(69)
评论(0)
推荐(0)
2022年7月31日
互斥量
摘要: 互斥量 互斥量 通过将信号量设置为1,也可以实现信号量的互斥访问。在os中,提供一种专门的机制-互斥体,来进行互斥访问。 互斥体访问表示一次只有一个线程可以访问共享资源,不能递归申请互斥体。在互斥访问的场景尽量使用互斥体-mutex。 互斥体数据结构 互斥体数据结构文件:include/linux/
阅读全文
posted @ 2022-07-31 16:11 JwChu
阅读(95)
评论(0)
推荐(0)
2022年7月30日
信号量
摘要: 信号量 信号量的引入 对于操作共享空间时间较长的场景,对于自旋锁的使用不太合适,自旋锁适用于快速完成的场景。因为自旋锁会关闭抢占与中断。 在执行完成之后,在开启中断与抢占。对于不能快速完成,等待时间较长的的场景,不适用于自旋锁。由此引入信号量机制, 而信号量机制的引入的特点,信号量可以使线程进入休眠
阅读全文
posted @ 2022-07-30 21:28 JwChu
阅读(230)
评论(0)
推荐(0)
自旋锁
摘要: 自旋锁 自旋锁概念 锁有自旋与睡眠两种。当进程无法获取锁资源,该进程不会休眠,会一直循环等待,一直到资源可用。 自旋锁接口函数 接口函数定义在include\linux\spinlock.h中,接口函数: 函数名 作用 spin_lock_init(_lock) 初始化自旋锁为unlock状态 vo
阅读全文
posted @ 2022-07-30 20:00 JwChu
阅读(273)
评论(0)
推荐(0)
原子操作
摘要: 原子操作 原子的引入 在上篇文章并发与竞争中,由于多线程对于共享变量的访问而引入的问题,不符合程序的期望。 为了规避这个问题,引入原子操作,对共享变量不能被打断。 原子操作有两种:原子变量,原子位。 原子变量内核操作 原子变量的内核文件:include/linux/types.h 图 1 原子变量数
阅读全文
posted @ 2022-07-30 19:58 JwChu
阅读(281)
评论(0)
推荐(0)
并发与竞争
摘要: 并发与竞争 并发与竞争的提出 对于全局变量区域,不同的任务(线程)可能会访问变量区的同一变量,这种对于同一内存访问的情况,就是并发情况。而对于这种并发的问题,会引入竞争。 int a = 1; a++; 对于全局变量int a,对于其操作加1操作。 并发与竞争机理 假设有两个或者两个以上的线程A,线
阅读全文
posted @ 2022-07-30 19:55 JwChu
阅读(57)
评论(0)
推荐(0)
2022年7月28日
内核定时器使用
摘要: 定时器 定时器 定时器作为重要模块。是支持完成调度的基础之一。主要主要有两个方面:时间,动作。对应程序中的超时时间,函数。 在内核中使用定时器的接口函数: setup_timer(timer, fn, data):设置定时器,主要是初始化timer_list结构体,设置其中的函数、参数。 void
阅读全文
posted @ 2022-07-28 21:54 JwChu
阅读(293)
评论(0)
推荐(0)
阻塞与非阻塞初认识
摘要: 阻塞与非阻塞 阻塞与非阻塞概念 阻塞:等待某件事情发生。如前面举例说明,使用read函数获取底层硬件数据,如果没有数据,会让任务休眠等待。 在使用poll方式,如果传入的等待时间不为0,任务是需要休眠等待的,也是阻塞的。 如果poll方式,将传入的等待时间为0,也即是不等待。没有数据立马返回,这是非
阅读全文
posted @ 2022-07-28 21:53 JwChu
阅读(277)
评论(0)
推荐(0)
内核异步操作
摘要: 异步 异步引入 前几章节提供的休眠-唤醒,poll机制,都需要休眠等待某个事件发生。但是在实际中,我们并不会休眠等待事件的发生, 而是采用另一种方式,等外部事件发生之后,将结果通知给我们。在程序中,就是驱动程序中的数据主动上报给App,App收到信号之后, 执行对应的动作。这种机制称为“异步机制”。
阅读全文
posted @ 2022-07-28 21:52 JwChu
阅读(79)
评论(0)
推荐(0)
内核Poll机制
摘要: Poll机制 Poll机制引入 休眠-唤醒机制来等待某个事件产生。完全取决的外部事件,可能等待的时间可能太长。为了避免等待时间过长, 增加超时时间,就是对应的poll机制。 具体流程: 使用poll机制,查询驱动程序是否有数据。 进入内核态,如果有数据,立刻返回 如果当时驱动中没有数据,内核程序进入
阅读全文
posted @ 2022-07-28 21:47 JwChu
阅读(272)
评论(0)
推荐(0)
上一页
1
2
3
4
5
下一页
公告