使用系统调用映射文件:
mmap(65536, 32768, READ, FLAGS, fd, 0)
页面为8 KB,因此映射了4页的文件(32768 / 8k = 4页)。然后执行以下调用:
munmap(65536, 8192)
删除内存映射的指定部分。该文件的哪些字节仍然映射?答案密钥表示第2页和第3页仍然存在,因此只保留16384到32767字节;但是,我不确定这是对的。由于len
命令的munmap
参数(第二个arg)是8192个,所以不应该只删除第0页,而是留下字节8192到32767吗?
答案 0 :(得分:2)
您和答案密钥都是错误的,但方式不同。
大多数系统上的内存页面为4 KB(4096字节),而不是8 KB。我从未听说过具有8 KB内存页的系统。
这使得32768字节的整个映射达到8页。取消前8192个字节(2页)将使剩下的6个页面(2到8)保持不变。