2024年7月21日

3、linux系统中对中断处理的演进

摘要: 2 Linux系统对中断处理的演进 从2005年我接触Linux到现在15年了,Linux中断系统的变化并不大。比较重要的就是引入了threaded irq:使用内核线程来处理中断。 Linux系统中有硬件中断,也有软件中断。 对硬件中断的处理有2个原则:不能嵌套,越快越好。 如果可以中断嵌套,那么 阅读全文

posted @ 2024-07-21 16:45 拉风摊主 阅读(2) 评论(0) 推荐(0) 编辑

2、进程、线程、中断的核心:栈

摘要: 1 进程、线程、中断的核心:栈 中断中断,中断谁? 中断当前正在运行的进程、线程。 进程、线程是什么?内核如何切换进程、线程、中断? 要理解这些概念,必须理解栈的作用。 1.1 ARM处理器程序运行的过程 ARM芯片属于精简指令集计算机(RISC:Reduced Instruction Set Co 阅读全文

posted @ 2024-07-21 16:22 拉风摊主 阅读(1) 评论(0) 推荐(0) 编辑

0、软中断与硬中断的区别

摘要: 一、硬中断由与系统相连的外设(比如网卡、硬盘)自动产生的,主要是用来通知操作系统系统外设状态的变化。 可屏蔽中断 ——当 CPU 接收到更高优先级的中断时,这些中断可以被延迟。 不可屏蔽中断 ——无法延迟这些中断。 CPU 应该立即考虑它们。 二、软中断为了满足实时系统的要求,中断处理应该是越快越好 阅读全文

posted @ 2024-07-21 15:52 拉风摊主 阅读(1) 评论(0) 推荐(0) 编辑

1、异常与中断的概念及处理流程

摘要: 1 中断的引入 1.1妈妈怎么知道孩子醒了 妈妈怎么知道卧室里小孩醒了? ① 时不时进房间看一下:查询方式 简单,但是累 ② 进去房间陪小孩一起睡觉,小孩醒了会吵醒她:休眠-唤醒 不累,但是妈妈干不了活了 ③ 妈妈要干很多活,但是可以陪小孩睡一会,定个闹钟:poll方式 要浪费点时间,但是可以继续干 阅读全文

posted @ 2024-07-21 15:00 拉风摊主 阅读(1) 评论(0) 推荐(0) 编辑

2024年5月5日

互斥量mutex的实现-07

摘要: 1 mutex的内核结构体 mutex的定义及操作函数都在Linux内核文件include\linux\mutex.h中定义,如下: (count可以取值1(unlocked),0(locked),-1(locked 且有waiter)) 初始化mutex之后,就可以使用mutex_lock函数或其 阅读全文

posted @ 2024-05-05 16:18 拉风摊主 阅读(15) 评论(0) 推荐(0) 编辑

信号量 semaphore的实现 -06

摘要: 1 semaphore的内核结构体 注意:这是信号量,不是信号。在前面学习异步通知时,驱动程序给应用程序发信号。现在我们讲的信号量是一种同步、互斥机制。 信号量的定义及操作函数都在Linux内核文件include\linux\semaphore.h中定义,如下: 初始化semaphore之后,就可以 阅读全文

posted @ 2024-05-05 16:10 拉风摊主 阅读(3) 评论(0) 推荐(0) 编辑

自旋锁spinlock的实现-05

摘要: 自旋锁,顾名思义:自己在原地打转,等待资源可用,一旦可用就上锁霸占它。 问题来了,假设别人已经上锁了,你原地打转会占住CPU资源了,别的程序怎么运行?它没有CPU怎么解锁? 这个问题,有2个答案: ① 原地打转的是CPU x,以后CPU y会解锁:这涉及多个CPU,适用于SMP系统; ② 对于单CP 阅读全文

posted @ 2024-05-05 15:54 拉风摊主 阅读(11) 评论(0) 推荐(0) 编辑

2024年5月3日

linux锁的介绍和使用 -04

摘要: 本节参考: https://www.kernel.org/doc/html/latest/locking/index.html https://mirrors.edge.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/ 锁的类型 Lin 阅读全文

posted @ 2024-05-03 16:11 拉风摊主 阅读(129) 评论(0) 推荐(0) 编辑

原子操作的实现原理与使用-03

摘要: 所谓“原子操作”就是这个操作不会被打断。Linux有2种原子操作:原子变量、原子位。 原子变量的内核操作函数 原子变量的操作函数在Linux内核文件arch\arm\include\asm\atomic.h中。 原子变量类型如下,实际上就是一个结构体(内核文件include/linux/types. 阅读全文

posted @ 2024-05-03 15:18 拉风摊主 阅读(27) 评论(0) 推荐(0) 编辑

同步与互斥的失败例子-02

摘要: 一句话理解同步与互斥:我等你用完厕所,我再用厕所。 什么叫同步?就是条件不允许,我要等等。 什么是互斥?你我早起都要用厕所,谁先抢到谁先用,中途不被打扰。 同步与互斥经常放在一起讲,是因为它们之的关系很大,“互斥”操作可以使用“同步”来实现。我“等”你用完厕所,我再用厕所。这不就是用“同步”来实现“ 阅读全文

posted @ 2024-05-03 14:22 拉风摊主 阅读(4) 评论(0) 推荐(0) 编辑

导航