lxysl / os_experiment_vue

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

操作系统课程设计——前端

可视化界面

多道程序系统中,进程与进程之间存在同步与互斥关系。当就绪进程数大于处理机数时,需按照某种策略决定哪些进程先占用处理机。在可变分区管理方式下,采用首次适应算法实现主存空间的分配和回收。

本程序模拟实现处理机调度和内存分配及回收机制,并通过可视化界面观察进程的运行流程与情况。为了实现算法与界面的解耦合,以及绘制更加优美的界面,本实验设计了前后端分离的架构,在后端使用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

5. 打开页面 http://localhost:8080/

使用

1. 创建进程

创建进程需要用户输入所需时间、所需内存,选择优先级、进程属性和前驱进程。

前驱进程的选择会根据进程属性自动切换是否禁用,选择同步进程时可以选择多项已有进程作为前驱进程。

进程信息填写不完整,或内存超出主存空间的最大容量时,会进行相应报错提示。

选择同步进程但为选择前驱进程时,会自动将进程切换为独立进程,并显示提示信息。

创建进程

2. 挂起/解挂进程

挂起/解挂进程分页分为两列,左边为未挂起进程列表,右边为挂起进程列表。

可以多选进程并点击下方箭头进行挂起和解挂操作。

已经结束的进程不会出现在列表中。

挂起/解挂进程

3. 刷新/运行

模拟进程运行一个时间单位。

4. 查看内存

内存空间分页中展示了当前所有的内存分区表,其中进程号-1表示操作系统占用内存,用橘黄色表示,-2表示未分配内存用绿色表示。

通过修改后端的 Cofig.py 配置文件,可以很方便的改变内存大小。

查看内存

5. 查看处理机

处理机分页中显示了所有处理机中分配的进程号,这些进程都处于内存中的活动就绪状态,可以直接运行。

查看处理机

通过修改后端的 Cofig.py 配置文件,可以很方便的改变处理机的个数,下图所示为5台处理机分配三个进程时的情况。

修改处理机

6. 查看后备队列

后备队列分页中显示了当前因内存空间不足,无法置入内存运行的进程号。

7. 查看挂起队列

挂起队列分页中显示了挂起队列中的进程情况。

About


Languages

Language:Vue 94.9%Language:HTML 2.9%Language:JavaScript 2.3%