main.c 流程-buffer初始化

void buffer_init(long buffer_end)函数的理解:

 *   0         0x100000          0x400000                    0x10 00000(16M)
 *    ----------------------------------------------------------
 *   |   kernel  | memery buffer   |   main memory              |             
 *    ----------------------------------------------------------

以上图为例,该段主要初始化memery buffer部分,并且前地址地段储存缓存头部,高端储存缓存块(1K);

缓存头部struct buffer_head

 1 struct buffer_head {
 2     char * b_data;            /* pointer to data block (1024 bytes) */
 3     unsigned long b_blocknr;    /* block number */
 4     unsigned short b_dev;        /* device (0 = free) */
 5     unsigned char b_uptodate;
 6     unsigned char b_dirt;        /* 0-clean,1-dirty */
 7     unsigned char b_count;        /* users using this block */
 8     unsigned char b_lock;        /* 0 - ok, 1 -locked */
 9     struct task_struct * b_wait;
10     struct buffer_head * b_prev;
11     struct buffer_head * b_next;
12     struct buffer_head * b_prev_free;
13     struct buffer_head * b_next_free;
14 };

用环形双链表链接:

node0 <--->node1<--> ...... <-->noden<-->node0

 

转载于:https://www.cnblogs.com/qianzhilan/p/6091644.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、实验描述 本实验主要是通过以字节读取文件的方式,读取并打印本地文本数据。 2、推荐步骤 2-1. 新建项目工程,工程名为CORE_C09_001: 2-1.1. 在当前工程根目录下创建一个文本文件:myjava.txt 2-1.2. 在文本文件中写a~z的26个英文小写字母并保存 2-1.3. 创建java类-Fileoutput。 2-2. 创建读取文件内容的方法-readFile,入参为文件路径,返回值类型为String。 2-3. readFile方法中的变量初始化: 2-3.1. 创建StringBuffer类型变量实例,用于存放多次读取到的文本数据。 2-3.2. 创建byte[]类型的变量,长度为2048,用于存储一次读取到的字节数据。 2-3.3. 创建int类型的变量count,用于记录一次读取到的字节数。 2-4. readFile方法中循环读取文件数据: 2-4.1. 用入参做参数,生成FileInputStream类型的实例。 2-4.2. 创建while循环,循环读取数据: 1) 循环条件:执行FileInputStream对象的read函数,把读到的数据存到byte数组中, 把read函数的返回值存放到count变量中,并且count不等于-1。 2) 循环内容:将读取到的数据转换并添加到StringBuffer中。 2-4.3. 关闭文件读取流-FileInputStream对象。 2-5. 抓取IO异常: 2-5.1. try-catch语句抓取2-4中抛出的IOException。 2-6. 循环结束后,返回StringBuffer中的文本数据。 3、验证与测试: 3-1. 程序测试: 3-1.1. 创建程序入口函数-main 3-1.2. 调用readFile方法,读取当前项目工程下的myjava.txt文件内容并输出到控制台 1) 文件路径:myjava.txt 3-1.3. 运行该项目,观察控制台能否显示文件中的内容。
最新发布
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值