操作系统练习题·成组链接法
来源:互联网 发布:数控铣床四叶草的编程 编辑:程序博客网 时间:2024/05/16 03:17
【操作系统】成组链接法
刚刚学习完文件管理这一章的内容,这道题用来练习和理解成组链接法还是很合适的。
例题.某个系统采用成组链接法来管理磁盘的空闲空间,目前磁盘的状态如图1所示。
(1) 该磁盘中目前还有多少个空闲盘块?
(2) 请简述磁盘块的分配过程。
(3) 在为某个文件分配3个盘块后,系统要删除另一文件,并回收它所占的5个盘块,它们的盘块号依次为700、711、703、788、701,请画出回收后的盘块链接情况。
图1
解析:
(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,回收完成后,空闲盘块的链接情况将如图2所示。
图2
- 操作系统练习题·成组链接法
- 操作系统原理之成组链接法
- 成组链接法
- 成组链接法
- 成组链接法
- 成组链接法 恩赐解脱
- 实例讲解成组链接法
- 成组链接法(第六章)
- 文件存储空间的管理:成组链接法
- 【操作系统】记录的成组误区
- 关于OS文件管理的成组链接法(潇湘竹de个人总结)
- 操作系统练习题1
- 操作系统练习题2
- 操作系统练习题(2)
- 操作系统存储器管理练习题
- 操作系统文件系统练习题
- 《操作系统》期末复习综合练习题
- 一些操作系统的链接
- 项亮《推荐系统实践》笔记
- Chocolatey 安装【于2017/5/18更新】
- 浅谈Java中的Set、List、Map的区别
- LeetCode 13. Roman to Integer
- Java中Map的用法详解
- 操作系统练习题·成组链接法
- Docker Hub与Docker Store详解
- java中HashMap详解
- JavaScript学习-DOM扩展_专有扩展
- HIT训练
- uboot源码分析二
- Assembly Language Homework Project (Two)
- ios开发之Swift获取视频截图(本地视频、网络视频的缩略图)(转)
- Guava学习笔记目录