2024年9月7日

自旋锁-基于忙等待的并发控制机制

摘要: 自旋锁,只能解决互斥问题; 不能堵塞; 当加锁失败,自旋锁用忙等待应对,本线程不放弃时间片,一直死循环直到加锁成功; 适用于: 1. 异常上下文之间共享资源 2. 异常上下文与任务上下文之间共享资源 3. 任务上下文之间、且临界区时间很短(即无堵塞)的情况 4. 互斥问题 阅读全文

posted @ 2024-09-07 12:15 f1engmin11 阅读(16) 评论(0) 推荐(0)

信号量-基于堵塞的同步机制

摘要: 适用于:任务上下文之间且临界区执行时间较长的互斥或者同步问题 阅读全文

posted @ 2024-09-07 12:14 f1engmin11 阅读(10) 评论(0) 推荐(0)

并发控制机制选择原则

摘要: 1. 不允许睡眠的上下文需要采用忙等待类 2. 可以睡眠的上下文可以采用堵塞类 3. 在异常上下文中访问的竞争资源一定要采用忙等待类 4. 临界区操作较长的应用建议采用堵塞类 5 临界区很短的操作建议采用忙等待类 6. 中断屏蔽仅在有与中断上下文共享资源时使用 7. 共享资源仅仅是一个整型变量时,使 阅读全文

posted @ 2024-09-07 12:14 f1engmin11 阅读(6) 评论(0) 推荐(0)

时钟中断

摘要: 1. 硬件滴答时钟,周期性产生中断,每中断异常,jiffies_64的值加1,jiffies是jiffies_64的低32位 2. HZ,一个宏定义,一般为100或者200,代表1秒时间对应的滴答中断次数 阅读全文

posted @ 2024-09-07 12:13 f1engmin11 阅读(15) 评论(0) 推荐(0)

内核定时器

摘要: 有滴答定时器触发软中断 内核定时器时间到达后,执行回调函数,回调函数执行过程,属于:异常上下文 这就意味着,在回调函数内,不能有堵塞产生。 Linux在驱动里做定时循环 - f1engmin11 - 博客园 (cnblogs.com) 阅读全文

posted @ 2024-09-07 12:13 f1engmin11 阅读(11) 评论(0) 推荐(0)

延时机制

摘要: 非堵塞类: 1. 短延时,不睡眠,在延时函数内,跑循环 2. 长延时 堵塞类:(本进程进入堵塞态挂起,此时CPU执行其他进程去了,直到延时完成。) msleep 深度睡眠 msleep_interruptible 浅度睡眠 延时类型选择原则: 堵塞时,任务会进入等待队列,等堵塞结束后,任务会出现出队 阅读全文

posted @ 2024-09-07 12:13 f1engmin11 阅读(23) 评论(0) 推荐(0)

2024年9月6日

Linux在驱动里做定时循环

摘要: 1. 使用内核定时器 实现 思路是,在驱动里使用一个内核定时器,定时一个时间后,执行回调函数,再在回调函数里重新设置一次定时时间,以此往复,在回调函数里里执行自己的业务 Linux4.4内核 定时器内核源码位置:linux-4.1.15/kernel/time/timer.c /* 一些变量 */# 阅读全文

posted @ 2024-09-06 09:12 f1engmin11 阅读(106) 评论(0) 推荐(0)

2024年9月4日

root 添加登录密码(基于buildroot)

摘要: 通过以前这篇文章 Linux启动后自动登录root进入控制台 - f1engmin11 - 博客园 (cnblogs.com) 我们可以知道,Linux启动后,是否自动登录 root 用户,可以通过修改 /etc/inittab 文件的 respawn 动作来实现。 下面记录一下如何 添加 root 阅读全文

posted @ 2024-09-04 16:03 f1engmin11 阅读(802) 评论(0) 推荐(0)

Linux启动后自动登录root进入控制台

摘要: 通过修改 /etc/inittab 文件来实现 1. buildroot 编译出来的 /etc/inittab 文件如下 # # Copyright (C) 2001 Erik Andersen <andersen@codepoet.org> # # Note: BusyBox init doesn 阅读全文

posted @ 2024-09-04 10:09 f1engmin11 阅读(478) 评论(0) 推荐(0)

导航