1. bio

  目前内核中块I/O操作的基本容器由bio结构体表示,定义在中。该结构代表了正在现场(活动)的以片段(segment)链表形式组织的块I/O操作。一个片段是一小块连续的内存缓冲区。通过片段来描述缓冲区,即使一个缓冲区分散在内存的多个位置上,bio结构体也能对内核保障I/O操作的执行。像这样的向量I/O就是所谓的聚散I/O。

  bio结构体中最重要的几个域是bi_io_vec、bi_vec、和bi_index,如下图所示:

bio

每一个块I/O请求都是通过一个bio结构体表示。每个请求包含一个或多个块,这些块储存在bio_vec结构体数组中。

  buffer_head是用来管理buffer,而bio是用来传输buffer的。bio为通用层的主要数据结构,既描述了磁盘的位置,又描述了内存的位置,是上层内核vfs与下层驱动的连接纽带。

results matching ""

    No results matching ""