# PyOSLabs-Basics **Repository Path**: joy_2_0/py-oslabs-basics ## Basic Information - **Project Name**: PyOSLabs-Basics - **Description**: PyOSLabs-Basics 是一个围绕操作系统核心资源管理机制构建的 Python 实验项目,包含文件存储的成组链接管理、经典磁盘调度算法以及连续内存分配策略的完整实验流程。项目以“可交互模拟器”的形式呈现,将 OS 课本中的抽象算法转化为可运行的实验平台,适合作为操作系统课程设计、资源调度分析与相关算法教学的实验参考实现。项目完全由三个独立的模拟器构成,结构清晰、专业完整。 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-25 - **Last Updated**: 2025-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: 操作系统, 资源调度, 可交互模拟器, 连续内存分配策略 ## README # PyOSLabs-Basics PyOSLabs-Basics 是一个围绕操作系统资源管理机制构建的 Python 实验项目,包含三类核心算法模拟器:文件存储的成组链接管理、磁盘调度策略以及连续内存分配方法。通过命令行交互形式,用户可以直观观察资源分配、回收与调度过程,适合作为操作系统课程设计、教学实验或算法理解的参考实现。 --- ## 1. group_linked_storage.py 基于“**成组链接(Linked Free Space with Groups)**”思想实现的文件存储管理实验。 功能包括: - 初始化存储空间与空闲块分组结构 - 文件的分配与回收 - 分配后空闲组的链表维护(in-chain / not-in-chain 状态) - 可视化展示当前文件占用与组结构 该实验用于理解文件系统空闲空间的组织方式与组链表结构在分配、回收过程中的变化机制。 --- ## 2. disk_scheduler.py 实现并对比四类经典磁盘调度算法: - **FCFS**(先来先服务) - **SSTF**(最短寻道时间优先) - **SCAN**(电梯算法,可选择向内/向外方向) - **OPTSCAN**(对 SCAN 距离的公式化估算) 脚本提供完整的命令行交互输入,包括初始磁头位置、访问序列与调度方向,输出访问顺序与总寻道距离,便于比较不同策略的调度效率。 --- ## 3. memory_allocator.py 模拟连续内存分配策略,包括: - **First Fit(首次适应)** - **Best Fit(最佳适应)** - **Worst Fit(最坏适应)** 支持用户定义初始内存块、多个进程的内存需求,并提供: - 内存分配 - 内存回收 - 空闲块自动合并(coalescing) - 当前内存状态打印 适合观察不同策略下的外碎片形成与合并行为。 --- ## Usage ```bash python group_linked_storage.py python disk_scheduler.py python memory_allocator.py