嵌入精灵

潜心研究嵌入式技术

排序:
默认
按更新时间
按访问量

spinlock与linux内核调度的关系

作者:刘洪涛,华清远见嵌入式学院高级讲师,ARM公司授权ATC讲师。   关于自旋锁用法介绍的文章,已经有很多,但有些细节的地方点的还不够透。我这里就把我个人认为大家容易有疑问的地方拿出来讨论一下。   一、自旋锁(spinlock)简介   自旋锁在同一时刻只能被最多一个内核任务持有...

2012-03-14 16:20:06

阅读数:684

评论数:0

linux设备驱动归纳总结(四):4.单处理器下的竞态和并发

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 经过上面几节的铺垫,终于要来重点了,由于内核的进程调度和中断(中断还没讲,不过这里会大概的说说),它们都会进入内核共用内核...

2012-02-27 10:17:05

阅读数:543

评论数:0

Linux中的并发和竞态

本帖大体上描述Linux kernel为解决并发导致的竞态所提供的内核API(主要是信号量和自旋锁)之间的区别,侧重于使用方面。代码级的阅读比较打算另开一贴。 因为程序的并发执行而导致的竞态是Linux内核中一个非常复杂的方面。对于设备的驱动程序开发者而言,熟悉Linux内核提供的并发互斥的处理...

2012-02-26 18:50:15

阅读数:640

评论数:0

学习使用epoll

epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。     一、epoll的优点 支持一个进程打开大数目的socket描述符。 IO效率不随FD数目增加而线性下降。   二、epoll的使...

2011-11-26 22:57:59

阅读数:879

评论数:0

epoll_create epoll_ctl epoll_wait close epoll和select的简单比较

在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗...

2011-11-26 16:47:53

阅读数:1118

评论数:0

中断服务下半部之工作队列详解

摘要】本文详解了中断服务下半部之工作队列实现机制。介绍了工作队列的特点、其与tasklet和softirq的区别以及其使用场合。接着分析了工作队列的三种数据结构的组织形式,在此基础之上分析了工作队列执行流程。最后介绍了工作队列相关的API,如何编写自己的工作队列处理程序及定义一个work对象并向内...

2010-11-19 10:28:00

阅读数:1788

评论数:0

linux下C语言多线程编程实例

学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵。   下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。下面是我们的代码:/*thread_example.c : c mul...

2010-05-28 19:22:00

阅读数:653

评论数:0

Linux下的多线程编程

1 引言  线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括W...

2010-05-28 15:36:00

阅读数:597

评论数:0

signal函数的使用

signal系统函数调用提供了一种最简单的范例。然而,由于C原形声明的缘故使它看起来比实际复杂。signal函数将一个给定的函数和一个特定的信号联系。这里是FreeBSD中的定义(和一个typedef一起): 引用: typedef void (*sig_t) (int); sig_t   sig...

2010-05-20 20:34:00

阅读数:570

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭