操作系统实验:多终端与文件系统实现
需积分: 0 106 浏览量
更新于2024-06-30
收藏 272KB DOCX 举报
"操作系统原理实验,实验八的内容主要涉及多终端、文件读写与操作,由学生吴侃完成,属于2014级计算机系一班。实验时间为2016年5月6日至19日。实验目标是实现多终端、FAT12文件系统的文件读写和操作。实验环境基于ArchLinux,使用了包括qemu、bochs、Vim、NASM、g++、ld、Make、Bochs和VMwareWorkstation等工具。实验方案包括修改进程调度以支持多终端,将shell从内核分离,并实现文件系统的读写及操作功能。"
实验八的核心知识点如下:
1. **多终端实现**:
- **进程调度**:在PCB表中增加UID字段,用于区分用户进程和内核进程,仅当UID与UserID匹配时才调度用户进程。
- **shell分离**:将shell从内核代码中移出,成为独立的用户程序,通过端口通信和信号量机制与内核交互。
- **屏幕信息管理**:保存和恢复用户界面状态,包括屏幕内容和光标位置,这通常涉及对显存的直接访问和管理。
2. **文件系统操作**:
- **FAT12文件系统**:FAT12是一种常见的文件分配表格式,适用于小容量存储设备。实验要求实现文件的读写,这涉及文件打开(open)、写入(write)、读取(read)和定位(seekp, seekg)等基本操作。
- **文件操作**:实现文件的删除(rm)、复制(cp)和移动(mv)功能,这些功能需要理解FAT12文件系统的目录结构和文件分配表的更新规则。
3. **实验环境与工具**:
- **操作系统**:实验在ArchLinux 4.5.4-1上进行,利用虚拟化技术如qemu和VMware Workstation创建实验环境。
- **开发工具**:使用Vim编辑源码,NASM进行汇编,g++编译C++代码,ld链接生成可执行文件,Make管理构建过程,Bochs作为调试器,dd用于合并文件。
4. **实验方案设计**:
- **进程用户身份管理**:设计用户ID系统以确保进程安全和权限控制。
- **用户程序与内核通信**:通过特定的端口和信号量机制,使用户程序能够请求内核服务,例如运行新的程序。
- **文件操作的实现**:需要理解和实现FAT12文件系统的数据结构,包括簇链和目录项,以完成文件的创建、删除和移动。
通过这个实验,学生可以深入理解操作系统的内核机制、进程管理、文件系统原理以及用户空间与内核空间的交互方式,这些都是计算机科学中至关重要的概念,对于理解计算机系统的工作方式有着极大的帮助。
2022-08-03 上传
2022-08-03 上传
2022-08-03 上传
2024-10-11 上传
2024-10-11 上传
2024-10-11 上传
2024-10-11 上传
滚菩提哦呢
- 粉丝: 412
- 资源: 341
最新资源
- 社交媒体营销激励优化策略研究
- 终端信息查看工具:qt框架下的输出强制抓取
- MinGW Win32 C/C++ 开发环境压缩包快速入门指南
- STC8G1K08 PWM模块实现10K频率及易改占空比波形输出
- MSP432电机驱动编码器测路程方法解析
- 实现动静分离案例的css/js/img文件指南
- 爱心代码五种:高效编程的精选技巧
- MATLAB实现广义互相关时延估计GCC的多种加权方法
- Hive CDH Jar包下载:免费获取Hive JDBC驱动
- STC8G单片机实现EEPROM及MODBUS-RTU协议
- Java集合框架面试题精讲
- Unity游戏设计与开发资源全集
- 探索音乐盒.zip背后的神秘世界
- Matlab自相干算法GUI界面设计及仿真
- STM32智能小车PID算法实现资料
- Python爬虫实战:高效爬取百度贴吧信息