理中的主存分配与回收、页式虚拟存储管理中的页面置换,以及磁盘空闲块的管理与回收。以下是完整内容:
操作系统入门:位示图、主存分配、页面置换与磁盘管理
操作系统听起来复杂,但其实就像一个超级管家,帮我们管理电脑的资源。如果你是个小白,看到"位示图法""页面置换"之类的高深词可能会懵。这篇博客会用最简单的语言,带你搞懂这些概念:位示图是什么,文件目录怎么找,分页式存储的主存怎么分配和回收,虚拟存储的页面怎么换,磁盘空闲块怎么管。一步步来,保证你能看懂!
1. 位示图法:资源管理的"点阵图"
什么是位示图法?
- 定义: 位示图(Bitmap)是用一串0和1表示资源使用情况的方法。每个"位"(bit)代表一个资源块,0表示空闲,1表示已占用。
- 生活比喻: 像电影院的座位表,每个座位一个格子,空着标0,有人标1。一眼就能看出哪有空位。
用在哪里?
- 管理内存、磁盘等资源。比如磁盘空闲块的管理(后面会讲)就常用位示图。
怎么实现的?
- 例子 : 假设有8块资源,位示图是
01001100
。- 第1块(0):空闲。
- 第2块(1):占用。
- 第5、6块(1):占用。
- 操作系统扫一遍位示图,找0就知道哪块空着。
小白Tips
- 优点:简单、直观,占空间少。
- 刷题可能问:"位示图怎么找空闲块?" 答案是:找第一个0。
2. 文件目录查找:找文件靠什么?
文件目录是啥?
- 文件目录像电脑里的"通讯录",记录每个文件的位置(在磁盘上的地址)。
怎么查找?
- 方法 : 常用树形结构 (目录树)+索引表。
- 生活比喻: 像找书,先看图书馆的分类(目录树),再查书的具体架号(索引)。
- 步骤 :
- 从根目录开始(比如
/
)。 - 按路径一层一层找(比如
/home/user/file.txt
)。 - 每个目录下有个表,记录文件名和地址,找到目标文件的磁盘位置。
- 从根目录开始(比如
实现细节
- FCB(文件控制块): 每个文件有个"身份证",存着文件名、大小、地址等。
- 索引节点(inode): Unix/Linux常用,记录文件的具体位置,目录只存文件名和inode号。
小白Tips
- 刷题可能问:"目录查找快吗?" 答案是:树形结构很快,但层级深了会慢。
3. 分页式存储管理:主存空闲块怎么分配和回收?
分页式存储是啥?
- 内存分成固定大小的页面(比如4KB),程序也切成同样大小的页面,散开放进内存。
主存空闲块分配
- 怎么做? : 用空闲页面表 或位示图 跟踪空闲页面。
- 位示图法: 每个页面一个位,0是空,1是占。找空页面时扫0。
- 空闲页面表: 像个清单,列出所有空闲页面的编号。
- 生活比喻: 像旅馆登记空房间,管理员查表或图,找到空房给客人。
- 分配过程: 程序需要3页,系统从空闲表挑3个页面,更新表或图。
主存空闲块回收
- 怎么做? : 程序用完页面后,归还给系统。
- 把页面编号加回空闲表,或把位示图对应位改成0。
- 生活比喻: 客人退房,管理员把房间标为空,重新可分配。
小白Tips
- 刷题可能问:"分配和回收区别?" 答案是:分配是找0给出去,回收是把1变0。
4. 页式虚拟存储管理:页面置换怎么实现?
虚拟存储是啥?
- 程序觉得自己有"无限内存"(虚拟内存),其实真内存有限,用不到的页面放硬盘,需要时调进来。
页面置换是啥?
- 定义: 内存满了,新页面要进来,得把老页面换出去。
- 生活比喻: 桌子放满了书,想看新书,得拿走一本老书。
怎么实现?
- 步骤 :
- 缺页中断: 程序要用的页面不在内存,触发中断。
- 选择牺牲者: 用算法决定换哪页出去。
- 换入换出: 把老页面存硬盘(如果改过),新页面从硬盘调内存。
- 常见算法 :
- FIFO(先入先出): 最早进来的先出去,像排队。
- LRU(最近最少使用): 挑最久没用的换走,像清理不常用的东西。
- OPT(最佳置换): 挑未来最晚用的(理论算法,实际没法预测)。
小白Tips
- 刷题可能问:"LRU怎么选页面?" 答案是:找最久没访问的。
5. 磁盘空闲块管理与回收
磁盘空闲块是啥?
- 磁盘分成小块(比如4KB),文件占一些,剩下的就是空闲块。
怎么管理?
- 方法 : 常用位示图 或空闲块链表 。
- 位示图 : 每个块一个位,0空1占。比如
00110
,第3、4块占用。 - 空闲块链表: 把空闲块串成链表,像记账本列出空位。
- 位示图 : 每个块一个位,0空1占。比如
- 生活比喻: 像停车场,位示图是座位表,链表是空位清单。
分配与回收
- 分配: 新文件要空间,从位示图找0或从链表取块,标记为1或移除。
- 回收: 文件删除,归还块,把位改0或加回链表。
- 例子 : 删除文件释放3块,位示图从
11100
变00000
。
小白Tips
- 刷题可能问:"位示图和链表区别?" 答案是:位示图直观但固定,链表灵活但复杂。
小结:从位示图到磁盘管理
- 位示图法: 用0和1管理资源,简单高效。
- 文件目录查找: 树形结构+索引,像找书的地图。
- 分页主存分配回收: 位示图或表跟踪空闲页面,分配找0,回收变0。
- 页面置换: 内存满时换页面,LRU、FIFO常见。
- 磁盘空闲块: 位示图或链表管空位,分配占位,回收释放。