操作系统实验:多终端与文件系统实现

需积分: 0 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文件系统的数据结构,包括簇链和目录项,以完成文件的创建、删除和移动。 通过这个实验,学生可以深入理解操作系统的内核机制、进程管理、文件系统原理以及用户空间与内核空间的交互方式,这些都是计算机科学中至关重要的概念,对于理解计算机系统的工作方式有着极大的帮助。
2024-10-11 上传
2024-10-11 上传
微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码