第六章作业习题解答3
某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理盘空间,试问:(1)位示图需多少个字
(2)第i字第j位对应的块号是多少
(3)并给出申请/归还一块的工作流程
答:(1)位示图占用字数为500/32=16(向上取整)个字
(2)第i字第j位对应的块号为:N=32×i+j
(3)申请时自上至下、自左至右扫描位示图跳过为1的位,找到第一个遇到的0位,根据它是第i字第j位算出对应块号,并分配出去
归还时已知块号,块号/32算出第i字第j位并把位示图相应位清0
一个UNIX/Linux文件,如果一个盘块的大小为1KB,每个盘块占4个字节,那么,若进程欲访问偏移为263168字节处的数据,需经过几次间接寻址
答:UNIX/Linux文件系统中,一个盘块的大小为1KB,每个盘块号占4个字节,即每块可放256个地址
直接寻址为10块,一次间接寻址为256块,二次间接寻址为2562块,三次间接寻址为2563块
首先将逻辑文件的字节偏移量转换为文件的逻辑块号和块内偏移
方法是:将逻辑文件的字节偏移量/盘块大小,商为文件的逻辑块号,余数是块内偏移;再将文件的逻辑块号转换为物理块号,使用多重索引结构,在索引节点中根据逻辑块号通过直接索引或间接索引找到对应物理块号
偏移为263168字节的逻辑块号是:263168/1024=257
块内偏移量=263168-257×1024=0