• minix3中的read系统调用


    1.定义

    n = read(fd, buffer, nbytes);

    参数说明:

    fd:文件描述符

    buffer:存放取回数据的缓冲区?

    nbytes:要读取的字节数

    2.步骤

    对于调用者来说,一般是构造一条消息,包含以上三个参数,发送给系统,然后自己阻塞起来。

    read函数从消息中提取出fd,找到相应的filp表项以及目标文件的inode。

    然后将读请求分段,分段后每一次的操作都对应与一个块,即将跨块的操作分解。

    分解之后,检查需要读取的块是否在高速缓存中。若不在,调入之。

    fs(文件系统)向task(系统任务)发送一条消息,请求将数据复制到用户缓冲区中。当然复制也是分块操作的。

    发送应答消息给库函数,库函数再回应用户(调用程序)。

    read操作到此为止,但在具体实现的时候还有一步,就是预读下面的文件块,

    这样需要的时候,他们就已经在高速缓存中了。

  • 相关阅读:
    第二次作业
    第一次作业
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    第一次作业
    HTML标签分类
    HTML属性与事件的搭配使用
    HTML全局属性和全局事件属性
  • 原文地址:https://www.cnblogs.com/jun14/p/2809002.html
Copyright © 2020-2023  润新知