操作系统实验:Fat12文件系统与实模式保护模式探索
需积分: 0 80 浏览量
更新于2024-08-05
收藏 139KB PDF 举报
"本次实验主要涉及操作系统的文件系统管理,特别是FAT12文件系统,以及实模式和保护模式的理解。实验要求编写程序读取FAT12文件系统,并实现对文件和目录的操作。"
实验内容详细说明:
1.1 编程读取FAT12文件
在这一部分,学生需要编写名为`read_fat12`的程序,该程序能读取一个以FAT12文件系统格式存储的软盘镜像文件(a.img)。程序的主要任务包括:
- 分析FAT12文件系统结构,打印出镜像文件中包含的所有文件名。
- 接受用户输入的文件路径,对目录文件、普通文件和不存在的文件做出相应处理。具体来说:
- 对于目录文件,列出其中的文件和子目录。
- 对于普通文件,显示其内容。
- 对于不存在的文件,给出提示。
1.2 输入输出示例
这部分展示了程序在不同输入情况下的预期输出:
- 第1步输出所有文件,按照文件路径展示。
- 第2.1步,用户可以输入一个目录路径,程序将列出该路径下的所有文件。
- 第2.2步,用户输入"count"命令后跟路径,程序统计指定路径及子路径下的文件和子目录数量,并按照目录层次结构显示结果。
知识点扩展:
1. **实模式下的寻址方式**:在8086处理器的实模式下,地址线直接映射到内存单元,采用20位物理地址,最大寻址空间为1MB。在实模式中,程序不能直接访问超过64KB的内存,因为段寄存器乘以16(段基址)加上偏移地址(段内地址)来形成20位物理地址,导致了这个限制。
2. **实模式的缺陷**:实模式无法实现内存保护和多任务,因为所有程序共享相同的地址空间,容易引发冲突和安全问题。
3. **保护模式下的寻址过程**:保护模式引入了分段和分页机制,每个进程有自己的独立地址空间。通过段选择子(segment selector)和描述符表(Descriptor Table)来确定段基址,再结合段内偏移量计算出物理地址,实现了内存保护和权限控制。
4. **选择子的作用**:选择子是一个16位的标识符,用于在全局描述符表(GDT)或局部描述符表(LDT)中找到对应的段描述符,描述符中包含了段的基址、限制和访问权限等信息。
5. **描述符的作用**:描述符是保存在描述符表中的数据结构,包含段的基地址、限制、访问权限等信息,用于在保护模式下确定内存访问的合法性。
6. **根目录区大小**:在FAT12文件系统中,根目录区的大小不是固定的,而是由FAT表中的特定项决定。通常,根目录区在FAT12分区的起始部分。
7. **数据区**:数据区是FAT12文件系统中存储文件内容的区域,紧随根目录区之后,根据FAT表中的信息分配和管理文件的数据块。
通过这次实验,学生不仅可以学习到FAT12文件系统的结构和操作,还能理解实模式与保护模式的差异,以及如何在程序中实现这些概念。这有助于深入理解操作系统的底层原理和文件系统的实现细节。
2022-08-04 上传
2018-04-28 上传
2022-06-29 上传
2013-04-28 上传
2023-02-20 上传
2023-02-20 上传
2022-12-22 上传
ShenPlanck
- 粉丝: 949
- 资源: 343
最新资源
- Python中快速友好的MessagePack序列化库msgspec
- 大学生社团管理系统设计与实现
- 基于Netbeans和JavaFX的宿舍管理系统开发与实践
- NodeJS打造Discord机器人:kazzcord功能全解析
- 小学教学与管理一体化:校务管理系统v***
- AppDeploy neXtGen:无需代理的Windows AD集成软件自动分发
- 基于SSM和JSP技术的网上商城系统开发
- 探索ANOIRA16的GitHub托管测试网站之路
- 语音性别识别:机器学习模型的精确度提升策略
- 利用MATLAB代码让古董486电脑焕发新生
- Erlang VM上的分布式生命游戏实现与Elixir设计
- 一键下载管理 - Go to Downloads-crx插件
- Java SSM框架开发的客户关系管理系统
- 使用SQL数据库和Django开发应用程序指南
- Spring Security实战指南:详细示例与应用
- Quarkus项目测试展示柜:Cucumber与FitNesse实践