操作系统课程设计——前端
多道程序系统中,进程与进程之间存在同步与互斥关系。当就绪进程数大于处理机数时,需按照某种策略决定哪些进程先占用处理机。在可变分区管理方式下,采用首次适应算法实现主存空间的分配和回收。
本程序模拟实现处理机调度和内存分配及回收机制,并通过可视化界面观察进程的运行流程与情况。为了实现算法与界面的解耦合,以及绘制更加优美的界面,本实验设计了前后端分离的架构,在后端使用Python的Flask框架实现相关算法并设计通信接口,在前端使用Vue.js框架及Element UI实现可视化界面,前后端通过Axios框架进行通信。
本仓库为前端实现代码,后端可视化实现请前往仓库操作系统课程设计Vue后端
起步
1. clone后端仓库
git clone https://github.com/lxysl/OS_experiment
2. 安装环境
pip install flask
pip install flask_cors
3. 启动后端程序
cd <PREFIX_PATH>/OS_experiment
python app.py
4. 启动前端程序
cd <PREFIX_PATH>/os_experiment_vue
npm install
npm run serve
http://localhost:8080/
5. 打开页面使用
1. 创建进程
创建进程需要用户输入所需时间、所需内存,选择优先级、进程属性和前驱进程。
前驱进程的选择会根据进程属性自动切换是否禁用,选择同步进程时可以选择多项已有进程作为前驱进程。
进程信息填写不完整,或内存超出主存空间的最大容量时,会进行相应报错提示。
选择同步进程但为选择前驱进程时,会自动将进程切换为独立进程,并显示提示信息。
2. 挂起/解挂进程
挂起/解挂进程分页分为两列,左边为未挂起进程列表,右边为挂起进程列表。
可以多选进程并点击下方箭头进行挂起和解挂操作。
已经结束的进程不会出现在列表中。
3. 刷新/运行
模拟进程运行一个时间单位。
4. 查看内存
内存空间分页中展示了当前所有的内存分区表,其中进程号-1表示操作系统占用内存,用橘黄色表示,-2表示未分配内存用绿色表示。
通过修改后端的 Cofig.py 配置文件,可以很方便的改变内存大小。
5. 查看处理机
处理机分页中显示了所有处理机中分配的进程号,这些进程都处于内存中的活动就绪状态,可以直接运行。
通过修改后端的 Cofig.py 配置文件,可以很方便的改变处理机的个数,下图所示为5台处理机分配三个进程时的情况。
6. 查看后备队列
后备队列分页中显示了当前因内存空间不足,无法置入内存运行的进程号。
7. 查看挂起队列
挂起队列分页中显示了挂起队列中的进程情况。