程序项目代做,有需求私信(小程序、网站、爬虫、电路板设计、驱动、应用程序开发、毕设疑难问题处理等)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 40 下一页
摘要: 一、中断顶-底半部分 1.1 什么是中断顶-底半部分 linux操作系统是多个进程执行,宏观上达到并行运行的状态,外设中断则会打断内核中任务调度和运行,如果中断函数耗时过长则使得系统实时性和并发性降低。 为保证系统实时性,中断服务程序必须足够简短,但实际应用中某些时候发生中断时必须处理大量的事务,这 阅读全文
posted @ 2022-03-21 22:37 大奥特曼打小怪兽 阅读(1605) 评论(0) 推荐(0)
摘要: 在之前我们介绍了linux中断子系统向驱动程序提供了注册中断的API: request_threaded_irq; request_irq; 这一节我们将从源码层面介绍讲解它们的实现。 一、cascade IRQ和nested IRQ linux中断子系统在注册中断的时候,根据中断控制器的结构实际上 阅读全文
posted @ 2022-03-16 23:20 大奥特曼打小怪兽 阅读(1498) 评论(0) 推荐(0)
摘要: 上一篇博客在最后,我们大致介绍了一下中断子系统的执行流程,这一节我们将从Linux源码层面去中断是如何原型。 一、裸机中断 我们首先回忆一下裸机程序中的中断流程是怎样的,以Mini2440按键K1外部中断为例: 1、使能外部,开启外部中断EINTMASK 、中断源INTMSK 、开启IRQ总中断; 阅读全文
posted @ 2022-03-01 23:40 大奥特曼打小怪兽 阅读(888) 评论(0) 推荐(0)
摘要: 在之前的文章中,我们曾经学习过按键驱动的编写,其中我们就使用到了外部中断,我们是通过request_irq函数实现中断注册的。这一节我们将深入了解linux的中断实现机制。 一、中断介绍 1.1 什么是中断 中断是由软件或者硬件触发的一种事件,可以引起CPU的注意。 举个例子:当我们在键盘上按下一个 阅读全文
posted @ 2022-02-27 22:05 大奥特曼打小怪兽 阅读(981) 评论(0) 推荐(0)
摘要: 一、互斥锁(mutex) 1.1 什么是互斥锁 互斥锁实现了“互相排斥”(mutual exclusion)同步的简单形式,所以名为互斥锁。互斥锁禁止多个进程同时进入受保护的代码“临界区”(critical section)。因此,在任意时刻,只有一个进程被允许进入这样的代码保护区。 mutex的语 阅读全文
posted @ 2022-02-24 22:20 大奥特曼打小怪兽 阅读(1571) 评论(0) 推荐(0)
摘要: 一、自旋锁(spinlock) 1.1 什么是自旋锁 自旋锁(spinlock)是一种典型的对临界资源进行互斥访问的手段,其名称来源于它的工作方式。自旋锁和信号量的主要区别在于,如果进程没有获取到自旋锁,就一直循环在那里看是否该自旋锁的保持者已经释放了锁。 自旋锁的实现有多种:比如CAS和ticke 阅读全文
posted @ 2022-02-23 19:45 大奥特曼打小怪兽 阅读(1192) 评论(0) 推荐(0)
摘要: 一、原子操作 在之前介绍信号量的实现原理中,我们已经了解到获取信号量的操作会导致进程的休眠,也就是存在进程的切换,这样会带来很大的系统开销。 针对单个变量的独占访问我们可以采用原子锁的方式来实现进程的同步。原子锁采用原子操作来实现。 1.1 什么是原子操作 原子操作,顾名思义,就是说像原子一样不可再 阅读全文
posted @ 2022-02-23 19:40 大奥特曼打小怪兽 阅读(599) 评论(0) 推荐(0)
摘要: 一、信号量(semaphore) 1.1 什么是信号量 信号量本质上是一个计数器,它用来记录对某个资源的存取状态。一般来说,为了获取共享资源,进程需要执行下列操作: 测试控制该资源的信号量; 如果信号量的值为正,则允许操作该资源,并且信号量值减1; 如果信号量为0,则资源目前不可用,进程进入休眠状态 阅读全文
posted @ 2022-02-23 19:32 大奥特曼打小怪兽 阅读(623) 评论(0) 推荐(0)
摘要: 一、Linux进程内存空间 1.1 内核空间和用户空间 Linux采用两级保护机制:0级供内核使用、3级供用户程序使用。在32位Linux操作系统中,每个进程都有各自的私有用户空间(0~3GB),这个空间对系统中的其它进程是不可见的,最高的1GB虚拟内核空间为所有进程以及内核所共享。 针对linux 阅读全文
posted @ 2022-02-20 17:53 大奥特曼打小怪兽 阅读(844) 评论(0) 推荐(0)
摘要: 在上一节中我们介绍了linux下的五种IO模型: 阻塞IO; 非阻塞IO; IO多路复用模型; 信号驱动IO模型; 异步IO; 并介绍了poll机制在按键驱动中的使用,这一节我们将重点介绍信号驱动IO模型如何在按键驱动的例子中的使用。 一、信号驱动IO模型 1.1 什么是信号驱动IO模型 我们举个例 阅读全文
posted @ 2022-02-18 22:53 大奥特曼打小怪兽 阅读(520) 评论(0) 推荐(0)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 40 下一页
如果有任何技术小问题,欢迎大家交流沟通,共同进步