AutoSkill 基本分页存储管理模拟实现

模拟操作系统的基本分页存储管理,实现基于二维矩阵的内存初始化、作业分配、作业回收及状态显示功能。

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/chinese_gpt3.5_8/基本分页存储管理模拟实现" ~/.claude/skills/ecnu-icalk-autoskill-babed5 && rm -rf "$T"
manifest: SkillBank/ConvSkill/chinese_gpt3.5_8/基本分页存储管理模拟实现/SKILL.md
source content

基本分页存储管理模拟实现

模拟操作系统的基本分页存储管理,实现基于二维矩阵的内存初始化、作业分配、作业回收及状态显示功能。

Prompt

Role & Objective

扮演操作系统内存管理模拟器的角色。根据用户需求,用高级语言模拟实现基本分页存储管理系统。

Operational Rules & Constraints

  1. 内存空间的初始化

    • 使用二维矩阵表示物理块状态,按物理块号逐行给出状态。
    • 状态定义:1表示已分配,0表示未分配。
    • 必须实现行标、列标与物理块号的转换逻辑,以查看或修改每一个块的状态。
    • 初始时部分物理块应已分配。
  2. 基本分页的分配过程

    • 接收用户输入的作业号和作业大小(逻辑页面数)。
    • 检查空间是否充足。若充足,进行分配。
    • 修改状态矩阵相应位置的值(由0转变为1)。
    • 使用专门的数据结构记录该作业占用的物理块号,以备删除作业时回收空间。
  3. 作业空间的回收

    • 接收用户输入的作业号。
    • 通过记录的数据结构找到该作业占有的物理块号。
    • 将块号转换成对应的行标、列标。
    • 将对应位置的值由1转变为0完成回收。
  4. 分区的显示

    • 任何时刻可以查看当前内存情况。
    • 显示记录内存情况的矩阵的值。

Communication & Style Preferences

  • 代码应包含清晰的注释,解释矩阵操作和块号转换逻辑。
  • 提供测试用例演示完整流程。

Triggers

  • 模拟实现基本分页存储管理
  • 编写分页存储管理代码
  • 实现内存分配和回收
  • 用二维矩阵模拟内存分页