Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Operating system 当操作系统第一次读取文件时是否会发生页面错误?_Operating System - Fatal编程技术网

Operating system 当操作系统第一次读取文件时是否会发生页面错误?

Operating system 当操作系统第一次读取文件时是否会发生页面错误?,operating-system,Operating System,你好,Stackoverflow的操作系统专家 我一直在努力找出操作系统在英特尔x86体系结构中首次读取文件时是否会出现页面错误 我很好奇,在用户空间应用程序在open系统调用之后调用read系统调用之后,操作系统将如何处理 据我所知 在读取系统调用之后,内核访问当前未由内存管理单元映射的页面表的无效页面,并引发页面错误 页面错误将调用请求分页。内核查找所需页面的磁盘地址并计划磁盘操作(I/O计划) 但是,我从我的顾问那里收到一条提示,当第一次打开并读取文件时,不会出现页面错误。 这是真的吗?我

你好,Stackoverflow的操作系统专家

我一直在努力找出操作系统在英特尔x86体系结构中首次读取文件时是否会出现页面错误

我很好奇,在用户空间应用程序在open系统调用之后调用read系统调用之后,操作系统将如何处理

据我所知

  • 在读取系统调用之后,内核访问当前未由内存管理单元映射的页面表的无效页面,并引发页面错误

  • 页面错误将调用请求分页。内核查找所需页面的磁盘地址并计划磁盘操作(I/O计划)

  • 但是,我从我的顾问那里收到一条提示,当第一次打开并读取文件时,不会出现页面错误。


    这是真的吗?我一直在寻找一个明确的答案,但没有任何成功。是否可以解释在第一次读取文件时是否发生页面错误

    这取决于文件的读取方式。如果文件被读取为内存映射文件,则几乎可以肯定会发生页面错误


    如果通过缓冲区读取,系统可能需要将缓冲区锁定在内存中。但是,将数据传输到用户缓冲区时可能会有一个页面文件。

    这取决于文件的读取方式。如果文件被读取为内存映射文件,则几乎可以肯定会发生页面错误

    如果通过缓冲区读取,系统可能需要将缓冲区锁定在内存中。但是,在将数据传输到用户缓冲区时,可能存在页面文件