自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yanhaoliqian的专栏

乘风破浪会有时,直挂云帆济沧海。

  • 博客(8)
  • 收藏
  • 关注

原创 Linux 设备驱动中的阻塞与非阻塞I/O

何谓阻塞与非阻塞I/O?简单来说就是对I/O操作的两种不同的方式。阻塞:当操作I/O设备时,如果不能得到相应的资源,则该进程进入休眠状态,被从调度器的队列中移走,直到等待的条件满足。非阻塞:当不能对I/O设备进行操作时,它或者放弃,或者不停的查询,直到可以进行操作为止。

2011-03-14 15:06:00 1432 1

原创 Linux 设备驱动中的并发控制

  linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访问会导致竞态。并发(concurrency)指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访问很容易导致竞态(race conditions)。竞态的发生情况:a.对称多处理器(SMP)的多个CPU因为多个CPU使用共同的系统总线,访问共同的外设和存储器。b.单CPU内进程与抢占它的进程2.6内核支持抢占调度,低优先级可以被高优先级打断。c.中断(包括硬中断、软中断、T

2011-03-10 17:39:00 769

原创 一个简单的Linux内核模块实现

    参考了《Linux 设备驱动开发详解》 和 《Linux 驱动程序(第三版)》及网上资料。虽说简单,但对第一次操作整个过程却也出了不少的麻烦。下面按照我的思路来重现整个过程:1.一个简单的Linux 内核模块 原始代码:hello.c#include                                       //include head files#include MODULE_LICENSE("DUAL BSD/GPL");  //告诉内核模块的版权信息/许可权限static i

2011-03-08 14:27:00 901

原创 Ubuntu 10.04 Tftp服务器搭建

       做移植是要用到Tftp服务,于是到网上百了一把,试了两把,发现都不起用,到第三次才侥幸蒙对,真是不同版本,操作方法却千差万别。下面把我的正确操作贴出来,以正视听。(版本10.04)1.首先安装Tftp软件:tftp-hpa 客户端 tftpd-hpa 服务器端sudo apt-get install tftp-hpa tftpd-hpa2.修改配置文件:/etc/default/tftpd-hpa原文:TFTP_USERNAME="tftpd"TFTP_DIRECTORY="/var/lib/

2011-03-07 17:58:00 584

转载 进程上下文和中断上下文

转自:http://blog.csdn.net/zhiyu520/archive/2008/07/27/2719827.aspx进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅层次的理论层面上,没有深入去研究。处理器总处于以下状态中的一种:1、内核态,运行于进程上下文,内核代表进程运行于内核空间;2、内核态,运行于中断上下文,内核代表硬件运

2011-03-07 11:17:00 308

转载 Android深入浅出之Binder机制

Android深入浅出之Binder机制一说明 Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。我们这里将以MediaService的例子来分析Binder的使用:l         ServiceManager,这是Android OS的整个服务的管理程序l         MediaService,这个程序里边注册了提供媒体播放的服务程序Medi

2011-02-18 10:58:00 531 1

原创 public void startManagingCursor (Cursor c)的作用

<br />我们将获得的Cursor对象交与Activity 来管理,这样Cursor对象的生命周期便能与当前的Activity自动同步,省去了自己管理Cursor。<br /> <br /> 

2010-11-27 13:06:00 3138 1

原创 android 获得电话簿中姓名及号码

        程序内容部分如下:ContentResolver cr = getContentResolver();        Cursor cursor  = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);        try {   do{       nameStr = "";       numberStr = "";       int nameColumnIndex = cursor.get

2010-11-24 13:59:00 879 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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