b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

struct hd_geometry_heal geometry_geometry expressions(4)

电脑杂谈  发布时间:2017-05-21 09:08:57  来源:网络整理

队列链表中元素的排序方式对每个块设备驱动程序是特定的;然而,I/O调度程序提供了几种预先确定好的元素排序方式,牵涉到“I/O调度算法”的概念,后面会提到。

backing_dev_info字段是一个backing_dev_info类型的小对象,它存放了关于基本的硬件块设备的I/O数据流量的信息。例如,它保存了关于预读以及关于请求队列拥塞状态的信息。

每个块设备的待处理请求都是用一个请求描述符来表示的,请求描述符存放在如下所示的request数据结构中:

struct request {

struct list_head queuelist;

struct list_head donelist;

unsigned long flags;

sector_t sector;

unsigned long nr_sectors;

unsigned int current_nr_sectors; //当前bio的当前段中要传送的扇区数

sector_t hard_sector;

unsigned long hard_nr_sectors;

unsigned int hard_cur_sectors; //当前bio的当前段中要传送的扇区数(由通用块层更新)

struct bio *bio; //请求中第一个没有完成传送操作的bio

struct bio *biotail; //请求链表中末尾的bio

void *elevator_private; //指向I/O调度程序私有数据的指针

void *completion_data;

int rq_status;

int errors; //用于记录当前传送中发生的I/O失败次数的计数器

struct gendisk *rq_disk; //请求所引用的磁盘描述符

unsigned long start_time; //请求的起始时间(用jiffies表示)

unsigned short nr_phys_segments; //请求的物理段数

unsigned short nr_hw_segments; //请求的硬段数

unsigned short ioprio;

int tag; //与请求相关的标记(只适合支持多次数据传送的硬件设备)

int ref_count; //请求的引用计数器

request_queue_t *q; //指向包含请求的请求队列描述符的指针

struct request_list *rl; //指向request_list结构的指针

struct completion *waiting; //等待数据传送终止的Completion结构

void *special; //对硬件设备发出“特殊”命令的请求所使用的数据的指针

char *buffer; //指向当前数据传送的内存缓冲区的指针(如果缓冲区是高端内存区,则为NULL)

unsigned int cmd_len; //cmd字段中命令的长度

unsigned char cmd[BLK_MAX_CDB];//由请求队列的prep_rq_fn方法准备好的预先内置命令所在的缓冲区后面还会详细谈到

unsigned int data_len; //通常,由data字段指向的缓冲区中数据的长度

unsigned int sense_len; //由sense字段指向的缓冲区的长度(如果sense是NULL,则为0)

void *data; //设备驱动程序为了跟踪所传送的数据而使用的指针

void *sense; //指向输出sense命令的缓冲区的指针


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-48358-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...