水平触发(Level Triggered,也称条件触发):select()和poll()将就绪的文件描述符告诉进程后,如果进程没有对其进行IO操作,那么下次调用select()和poll()的时候将再次报告这些文件描述符,所以它们一般不会丢失就绪的消息。 边缘触发(Edge Triggered):只...
分类:
其他好文 时间:
2015-08-11 18:13:46
阅读次数:
129
File descriptors 是一个整数 表内存管理的对象,该对象可以由进程进行读写。
一个进程可以获取File descriptors通过打开文件 目录 或者设备,通过创建管道
或者复制一个已经存在的descriptors,
文件描述符将文件 管道 设备都抽象化为一样的东西,都像字节流.文件描述符作为索引映射到
进程表中。每一个进程都有文件描述符的私有化控件,从0开始。进程读取文件 ...
分类:
系统相关 时间:
2015-08-09 17:17:59
阅读次数:
205
lsof(list open files)是一个查看当前系统文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,该文件描述符提供了大量关于这个应用程序本身的信息。
查看系统信息时,需要给予管理员权限,在前面加上sudo...
分类:
系统相关 时间:
2015-08-09 15:40:08
阅读次数:
186
3.1 引言
文件I/O函数:打开文件,读文件,写文件
常用到五个函数:open, read, write, lseek, close.
本章描述的函数都是:不带缓冲的I/O(unbuffered I/O),属于不带缓冲 是指每个read和write都是调用内核中一个系统调用
3.2 文件描述符
对于内核而言,所有打开的文件都是通过文件描述符引用的
当读或写一个文件的时候,使用open...
分类:
其他好文 时间:
2015-08-08 01:21:33
阅读次数:
182
转自:http://my.oschina.net/u/274829/blog/2850141,ioctl介绍ioctl控制设备读写数据以及关闭等。用户空间函数原型:intioctl(intfd,unsingedlongcmd,...)fd-文件描述符cmd-对设备的发出的控制命令...表示这是一个可...
分类:
系统相关 时间:
2015-08-05 18:19:14
阅读次数:
292
问题:binder到底是如何从代理对象找到其对应的binder实体的呢?要回答这个就必须要看Binder驱动如何工作的。
1.Binder设备文件的打开
一个进程在使用Binder机制进行通信之前,必须打开设备文件/dev/binder来获取一个文件描述符,然后才能通过这个文件描述符
和Binder驱动进行交互,进程调用open函数打开/dev/binder的时候,binder_ope...
分类:
其他好文 时间:
2015-08-05 12:58:21
阅读次数:
129
Channel是Reactor结构中的“事件”,它自始至终都属于一个EventLoop,负责一个文件描述符的IO事件。Poller是实现了IO复用,是个虚基类。...
分类:
其他好文 时间:
2015-08-05 01:06:12
阅读次数:
128
控制socket文件描述符属性1.set/getsockopt()修改socket属性int getsockopt (int __fd, int __level, int __optname, void *__restrict __optval, socklen_t *__restrict __op...
分类:
系统相关 时间:
2015-08-04 20:49:00
阅读次数:
202
多线程一个进程在同一时刻只能做一件事,而多个线程却可以同时执行,每个线程处理各自独立的任务。多线程有很多好处:
简化处理异步事件的代码
实现内存和文件描述符的共享
改善程序的吞吐量
改善响应时间
互斥锁
互斥锁:互斥锁通过锁机制来实现线程间的同步,在同一时刻通常只允许一个关键部分的代码
当多个线程控制相同的内存时,对于读写操作的时间差距就有可能会导致数据的不同步,下图就很清晰的说明了这种情况:...
分类:
编程语言 时间:
2015-08-04 13:38:20
阅读次数:
173
编程级别:
(一)守护进程的概念
守护进程是一种生存期比较长的进程,常常在系统自举时启动,在系统关闭时退出。因为他们没有控制终端,因此是在后台运行的。
(二)守护进程的编程规则
1 清除文件模式创建屏蔽字
2 成为一个新的会话首进程
3 略HUP信号。然后再次fork
4 改变当前工作路径
5 关闭所有的文件描述符
6 把文件描述符0 1 2都定向到 /dev/null
7 日...
分类:
系统相关 时间:
2015-08-04 11:19:18
阅读次数:
170