摘要: 一、轮询的概念: 使用非阻塞I/O的应用程序通常会使用select()和poll()系统调用查询是否可对设备进行无阻塞的访问,select() 和 poll() 系统调用都需要设备驱动程序中的poll函数支持,也就是说,poll 函数为最终执行体。二、Linux下 select 调用的过程:1.用户层应用程序调用 select() ,底层调用 poll()2.核心层调用 sys_select() --> do_select()最终调用文件描述符fd对应的 struct file 类型变量的 struct file_operations *f_op 的 poll 函数。 ## 解释 ## 阅读全文
posted @ 2013-10-04 21:04 Jan5 阅读(1449) 评论(0) 推荐(0) 编辑
摘要: CentOS 6.4安装Fcitx4.0一、首先安装中文支持:$su root#yum install "@Chinese Support"#exit$yum remove ibus注销再登陆二、安装fcitx下载fcitx输入法源码,百度搜索即可,我下载的是华军软件园提供的“Fcitx 小企鹅输入法 4.0 正式版”。先安装fcitx所依赖的库:yum install gettext gettext-devel libXft libXft-devel libXpm libXpm-devel解压缩源码包:unzip fcitx-4.0.0.tar.ziptar zxf fc 阅读全文
posted @ 2013-10-04 16:06 Jan5 阅读(1600) 评论(0) 推荐(0) 编辑
摘要: 概念1:阻塞与非阻塞 阻塞是指在执行设备操作时,若不能获得资源则挂起进程,同时将CPU 礼让给其他进程使用,被挂起的进程进入休眠态,被从调度器的运行队列移走,直到条件被满足,它又将被调度器调度进来,再次判断能否获得资源。 而非阻塞在获取不到资源时并不挂起,它会不停的查询,直到它的时间片用完(放弃,等待下一次调度)为止,这样反而占用CPU。概念2:进程的休眠 休眠(被阻塞)进程被标志为一个特殊的不可执行状态,并从调度器的运行队列中移走。 进程休眠有各种原因,但肯定都是为了等待一些事件。事件可能是一段时间、从文件I/O读更多数据,或者是某个硬件事件。 休眠有两种相关的进程状态:TASK_... 阅读全文
posted @ 2013-10-04 15:55 Jan5 阅读(569) 评论(0) 推荐(0) 编辑
摘要: 一、需要了解的概念知识概念1:临界区(1)维基百科对临界区的定义: 在同步的程序设计中,临界区段(Critical section)指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。 当有线程进入临界区段时,其他线程或是进程必须等待(例如:bounded waiting 等待法),有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥或的使用,例如:semaphore。(2)形象点的解释: 对某一代码段A来说,在程序中可能被多次执行,把A的一次执行过程称为A的代码执行路径(简称代码路径)。 当两个或两... 阅读全文
posted @ 2013-10-04 13:37 Jan5 阅读(2572) 评论(0) 推荐(1) 编辑