# OperatingSystemSimulator **Repository Path**: ordinary-world3/OperatingSystemSimulator ## Basic Information - **Project Name**: OperatingSystemSimulator - **Description**: 操作系统模拟器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-29 - **Last Updated**: 2026-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 操作系统模拟器 (OperatingSystemSimulator) 一个基于Java的操作系统模拟课程设计项目,包含进程管理、内存管理、文件管理、设备管理和磁盘管理五大核心模块。 ## 项目结构 ``` OperatingSystemSimulator/ ├── pom.xml # Maven配置文件 ├── README.md # 项目说明文档 ├── src/ │ ├── main/ │ │ └── java/ │ │ └── com/example/ossimulator/ │ │ ├── Main.java # 主入口类 │ │ ├── controller/ │ │ │ └── OperatingSystemController.java # 系统控制器 │ │ ├── model/ │ │ │ ├── process/ │ │ │ │ ├── PCB.java # 进程控制块 │ │ │ │ └── ProcessManager.java # 进程管理器 │ │ │ ├── memory/ │ │ │ │ ├── MemoryManager.java # 内存管理器 │ │ │ │ └── UsedMemoryBlock.java # 已用内存块 │ │ │ ├── disk/ │ │ │ │ ├── DiskManager.java # 磁盘管理器 │ │ │ │ ├── Block.java # 磁盘块 │ │ │ │ ├── FilePolicy.java # 文件策略 │ │ │ │ ├── ConFileDir.java # 连续分配目录 │ │ │ │ ├── FileBlock.java # 文件块 │ │ │ │ ├── FreeBlockTable.java # 空闲块表 │ │ │ │ ├── DirFat.java # FAT目录 │ │ │ │ ├── FAT.java # FAT表 │ │ │ │ ├── IndexDir.java # 索引目录 │ │ │ │ └── IndexBlock.java # 索引块 │ │ │ ├── file/ │ │ │ │ ├── FileManager.java # 文件管理器 │ │ │ │ ├── MyFilePro.java # 文件属性 │ │ │ │ └── Folder.java # 文件夹 │ │ │ └── device/ │ │ │ ├── DeviceManager.java # 设备管理器 │ │ │ └── Process.java # 设备进程 │ │ └── view/ │ │ └── MainConsoleView.java # 控制台视图 │ └── test/ │ └── java/ │ └── com/example/ossimulator/ │ ├── controller/ │ │ └── OperatingSystemControllerTest.java │ └── model/ │ ├── process/ │ │ ├── PCBTest.java │ │ └── ProcessManagerTest.java │ ├── memory/ │ │ └── MemoryManagerTest.java │ ├── disk/ │ │ └── DiskManagerTest.java │ ├── file/ │ │ └── FileManagerTest.java │ └── device/ │ └── DeviceManagerTest.java ``` ## 功能模块 ### 1. 进程管理模块 - 进程创建与删除 - 进程状态转换(就绪、运行、阻塞、完成) - 调度算法: - FCFS(先来先服务) - SJF(短作业优先) - 动态优先级时间片轮转 - 信号量机制实现进程同步 ### 2. 内存管理模块 - 分页式内存管理 - 内存分配与回收 - 页面置换算法: - FIFO(先进先出) - LRU(最近最少使用) ### 3. 文件管理模块 - 文件和文件夹的创建、删除 - 文件属性查看 - 文件搜索功能 ### 4. 设备管理模块 - 设备资源分配与回收 - 银行家算法实现死锁避免 - 资源请求队列管理 ### 5. 磁盘管理模块 - 磁盘空间分配策略: - 连续分配 - 显式链接(FAT) - 索引分配 - 空闲块管理(计数法) - 磁盘调度算法(SCAN) ## 环境要求 - Java Development Kit (JDK) 17 或更高版本 - Maven 3.6.0 或更高版本 - 操作系统:Windows 10/11, macOS, Linux ## 构建与运行 ### 使用Maven构建 ```bash # 进入项目目录 cd OperatingSystemSimulator # 编译项目 mvn compile # 运行测试 mvn test # 打包项目 mvn package # 运行项目 java -jar target/OperatingSystemSimulator-1.0.0.jar ``` ### 使用IDE运行 1. 打开 IntelliJ IDEA 或 Eclipse 2. 导入 Maven 项目 3. 运行 `Main.java` 文件 ## 使用说明 运行程序后,会显示主菜单: ``` ===== 主菜单 ===== 1. 进程管理 2. 内存管理 3. 文件管理 4. 设备管理 5. 磁盘管理 0. 退出 ================== ``` ### 进程管理子菜单 ``` ===== 进程管理 ===== 1. 查看进程状态 2. 创建进程 3. 删除进程 4. FCFS调度 5. SJF调度 6. 动态优先级时间片轮转 7. 重置进程 0. 返回主菜单 ==================== ``` ### 内存管理子菜单 ``` ===== 内存管理 ===== 1. 查看内存状态 2. 分配内存 3. 释放内存 4. FIFO页面置换 5. LRU页面置换 0. 返回主菜单 ==================== ``` ### 文件管理子菜单 ``` ===== 文件管理 ===== 1. 查看文件目录树 2. 查看文件状态 3. 创建文件 4. 创建文件夹 5. 删除文件 0. 返回主菜单 ==================== ``` ### 设备管理子菜单 ``` ===== 设备管理 ===== 1. 查看设备状态 2. 生成进程队列 3. 请求资源 4. 安全性检查 5. 释放资源 0. 返回主菜单 ==================== ``` ### 磁盘管理子菜单 ``` ===== 磁盘管理 ===== 1. 查看磁盘状态 2. 磁盘调度模拟 0. 返回主菜单 ==================== ``` ## 测试说明 项目包含完整的单元测试和集成测试: ```bash # 运行所有测试 mvn test # 运行特定测试 mvn test -Dtest=PCBTest mvn test -Dtest=ProcessManagerTest mvn test -Dtest=MemoryManagerTest mvn test -Dtest=DiskManagerTest mvn test -Dtest=FileManagerTest mvn test -Dtest=DeviceManagerTest mvn test -Dtest=OperatingSystemControllerTest ``` ## 设计模式 项目采用以下设计模式: 1. **MVC模式**:分离数据模型、视图和控制器 2. **单例模式**:各管理器类作为核心组件 3. **策略模式**:支持多种调度算法和分配策略 4. **工厂模式**:文件创建时选择不同的分配策略 ## 技术特点 - 代码结构清晰,符合Java开发规范 - 完整的错误处理和边界检查 - 模块化设计,各模块间低耦合 - 支持多种算法切换 - 详细的日志输出 ## 许可证 MIT License ## 作者 操作系统课程设计项目组