字符设备与块设备的区别
来源:互联网 发布:stm32f103ret6编程手册 编辑:程序博客网 时间:2024/04/30 12:39
字符设备与块设备的区别
在LINUX里面,设备类型分为:字符设备、块设备以及网络设备,
字符设备、块设备主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生了,而块设备则不然,它利用一块系统内存作为缓冲区,当用户进程对设备请求能满足用户的要求时,就返回请求的数据,如果不能就调用请求函数来进行实际的I/O操作,因此,块设备主要是针对磁盘等慢速设备设计的,以免消耗过多的CPU时间来等待~~~
系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。注意,它们都是以安装文件系统的方式使用的——这也是块设备的一般访问方式。
另一种基本的设备类型是字符设备。字符设备按照字符流的方式被有序访问,像串口和键盘就都属于字符设备。如果一个硬件设备是以字符流的方式被访问的话,那就应该将它归于字符设备;反过来,如果一个设备是随机(无序的)访问的,那么它就属于块设备。
内核管理块设备要比管理字符设备细致得多,需要考虑的问题和完成的工作相比字符设备来说要复杂许多。这是因为字符设备仅仅需要控制一个位置—当前位置—而块设备访问的位置必须能够在介质的不同区间前后移动。所以事实上内核不必提供一个专门的子系统来管理字符设备,但是对块设备的管理却必须要有一个专门的提供服务的子系统。不仅仅是因为块设备的复杂性远远高于字符设备,更重要的原因是块设备对执行性能的要求很高;对硬盘每多一分利用都会对整个系统的性能带来提升,其效果要远远比键盘吞吐速度成倍的提高大得多。另外,我们将会看到,块设备的复杂性会为这种优化留下很大的施展空间。
块设备通过系统缓存进行读取,不是直接和物理磁盘读取。字符设备可以直接物理磁盘读取,不经过系统缓存。(如键盘,直接相应中断)
字符设备是裸设备
块设备是文件设备
在使用上,只要在对数据库方面的应用需要考虑是选择块设备还是字符设备。一般数据库厂商会建议你建库时使用裸设备(字符设备),空间管理完全由数据库引擎进行管理,这样所有数据和日志直接写盘,当发生系统故障时,不至于丢失数据。但还有一种说法是使用块设备便于管理维护人员的系统管理,因为使用裸设备在第一次分配出去之后,这个设备的空间就不能做任何其他用途了,但块设备则不然,你想使用多少空间就分配多少,你可以进行自由的扩展,而无需一次性的全部分配出去。所以我建议在创建数据库master库使用裸设备,而业务数据库及tempdb则使用块设备。
转自:http://blog.163.com/liuqiang_mail@126/blog/static/109968875201193041655436
- 字符设备与块设备的区别
- 字符设备与块设备的区别
- 字符设备与块设备的区别
- 字符设备与块设备的区别
- 字符设备与块设备的区别
- 字符设备与块设备的区别
- 字符设备与块设备的区别
- Linux字符设备与块设备的区别与比较
- Linux字符设备与块设备的区别与比较
- Linux字符设备与块设备的区别与比较
- Linux字符设备与块设备的区别与比较
- Linux字符设备与块设备的区别与比较
- Linux字符设备与块设备的区别与比较
- Linux字符设备与块设备的区别与比较
- Linux字符设备与块设备的区别与比较
- Linux字符设备与块设备的区别与比较
- Linux字符设备与块设备的区别与比较
- Linux字符设备与块设备的区别与比较
- Oracle反转索引
- Oracle行转列函数Listagg()和wm_co…
- 同步IO 异步IO 之间的区别
- 硬盘阵列模式
- poj1860 Bellman_ford算法
- 字符设备与块设备的区别
- nyoj.275 队花的烦恼一【水题】 20141125
- 什么叫做裸设备
- URL的井号
- Oracle迁移数据文件从文件系统至裸…
- Oracle session的SID和Serial…
- oracle中v$session_longops视图介…
- Oracle 中的Userenv()和SYS_C…
- Oracle中V$session及V$process相关…