某个系统采用成组链接法来管理磁盘的空闲空间,目前磁盘的状态如下图所示。(1) 该磁盘中目前还有多少个空闲盘块?(2) 请简述磁盘块的分配过程。(3) 在为某个文件分配3个盘块后,系统要删除另一文件,并回收它所占的5个盘块,它们的盘块号依次为700、711、703、788、701,请画出回收后的盘块链接情况。[img=676x414]17e0ceee18f435e.png[/img]
(1)从图中可以看出,目前系统共有四组空闲盘块,第一组为2块,第二,三组分别为100块,第四组虽记为100快,但除去用于结束标记的那一块后实际只有99块,故空闲盘块总数为301块。(2) 磁盘块的分配过程如下:首先检查超级块空闲盘块号栈是否已上锁,若已上锁则进程睡眠等待;否则将s_nfree减1,若s_nfree仍大于0,即第一组中不止一个空闲盘块,则将s_free[s_nfree]中登记的(即空闲盘块号栈顶的)空闲盘块分配出去。若s_nfree为0,即当前空闲盘块号栈中只剩下最后一个空闲盘块,由于该盘块中登记有下一组空闲盘块的盘块号和盘块数,因此核心在给超级块的空闲盘块号栈上锁后,先将该盘块的内容读入超级块的空闲盘块号栈,再将该盘块分配出去。另外,还需将空闲盘块号栈解锁,并唤醒所有等待其解锁的进程。若s_nfree为0,而且栈底登记的盘块号为0,则表示系统已无空闲盘块可分配,此时也让进程睡眠等待其他进程释放盘块。(3) 根据题意,分配给某文件的3个盘块依次为299号,300号,301号这三个盘块。在此基础上依次回收另一个文件的5个盘块:700、711、703、788、701,回收完成后,空闲盘块的链接情况将如图所示。[img=711x512]17e0ceee296dd07.png[/img]
举一反三
- UNIX操作系统采用空闲块成组链接法来管理磁盘空闲空间,每100个盘块作为一组,下图是某系统的空闲块成组链接示意图。若此时有一个文件A需要6个盘块,则系统会将哪些盘块分配给文件A?若之后有个文件B被删除,它占用的盘块块号为200、220、405、750,则回收这些盘块后空闲盘块号栈的内容是什么?请写出整个分析过程。[img=522x305]17e0ca0829749ff.png[/img]
- 某个系统采用成组链接法来管理磁盘的空闲空间,目前磁盘的状态如图。[img=885x528]17de91c43a27777.png[/img]则该磁盘中目前还有( )个空闲盘块。 A: 300 B: 299 C: 301 D: 302
- 1.有一计算机系统,利用下图所示的位示图(行号、列号都从0开始编号)来管理空闲盘块。盘块的大小为1KB。(1) 写出为某文件分配两个空闲盘块的分配过程(7分)。(注:“0”表示空闲,“1”表示已分配)(2) 若要释放磁盘的第300块,应如何处理?(3分)
- 有一计算机系统,利用下图所示的位示图(行号、列号都从0开始编号)来管理空闲盘块。盘块的大小为1KB。(1)写出为某文件分配两个空闲盘块的分配过程(7分)。(注:“0”表示空闲,“1”表示已分配)(2)若要释放磁盘的第300块,应如何处理?(3分)01234567891011121314150111111111111111111111111111111111211011111111111113111111011110111140000000000000000
- UNIX系统中某记录式文件长度为3200KB,其磁盘存储结构如图B所示假设该文件的逻辑记录长度为256B,磁盘块的大小为2KB,磁盘的逻辑块号占4B,又设每个索引块中的盘块号是连续的。请回答下列问题:(1)该文件占用的磁盘块数(不包括索引结点和目录项所占的盘块)是多少?(2)图6-13中,盘块号Bx的数值为多少?
内容
- 0
有一计算机系统利用下图所示位示图来管理空闲盘块,盘块大小为1KB,现要为某文件分配两个盘块,试说明盘块分配的具体过程
- 1
一个文件有100个磁盘块,假设文件控制块在内存(如果文件采用索引分配,索引表也在内存)。在下列情况下,请计算在连续分配、链接分配、单级索引分配三种分配方式下,分别需要多少次磁盘I/O操作?每读入一个磁盘块需要一次磁盘I/O操作。假设在连续分配方式下,文件头部无空闲的磁盘块,但文件尾部有空闲的磁盘块。 (1)在文件开始处删除一个磁盘块; (2)在文件结尾处添加一个磁盘块。
- 2
【计算题】采用显示链接的方式进行磁盘空间管理,假定磁盘块的大小的 1KB ,对于 540MB 的磁盘,其文件分配表 FAT 需要占用多少存储空间?(说明:假定盘块号所占存储空间以字节为单位。例如,当盘块号占 12 个二进制位时,它实际应占用 16 位)
- 3
有一计算机系统利用图[tex=2.286x1.143]dMINREVbrSrkpd9x3x4JbA==[/tex]所示的位示图来管理空闲盘块。盘块的大小为[tex=2.0x1.0]0bbT4GKkg3puWLK1OUX+PQ==[/tex],现要为某文件分配量个盘块,试说明盘块的具体分配过程。[img=552x168]17ac292760e88f2.png[/img]
- 4
()是利用二进制的1位来表示磁盘中一个盘块的使用情况。值为0,表示空闲,值为1,表示已分配。