某UNIX操作系统采用i结点管理文件的存储空间,假设i结点包括13个地址项,其中10个地址用来存直接地址,一个地址项存一重间接地址,一个地址项存二重间接地址,一个地址项存三重间接地址。每个磁盘块地址占64位(8个字节),磁盘块大小为2048字节,如果要存取某文件的字节偏移量是1260000,请问,需要读取几次硬盘?请写出中间过程。
某UNIX操作系统采用i结点管理文件的存储空间,假设i结点包括13个地址项,其中10个地址用来存直接地址,一个地址项存一重间接地址,一个地址项存二重间接地址,一个地址项存三重间接地址。每个磁盘块地址占64位(8个字节),磁盘块大小为2048字节,如果要存取某文件的字节偏移量是1260000,请问,需要读取几次硬盘?请写出中间过程。
【正确答案】:160000/2048=615.234因此地址在第615个盘块中。
去掉10个直接地址615-10=605
一个一重间接地址,每个盘块大小为2048字节,每个地址项占8个字节,所以每个簇中可以存放256个盘块号,605-256=349
一个二重间接地址,能存放256个一重间接地址,第一个一重间接地址,放256个盘块号,所以是放在第二个一重间接地址中。
所以,需要先读取该文件的i结点的盘块,访问一次一重间接地址的盘块,访问一次二重间接地址的盘块,再访问1260000地址的盘块,所以,共需要访问磁盘4次。
Top