基于C++实现时间片与高优先级抢占调度算法的进程与资源管理功能模拟操作系统OS
MockProcessCmd[Experiment]设计和实现基于时间片与高优先级抢占调度算法的进程与资源管理功能模拟 OSComputer operating system experiment.开发环境IDEVisual Studio 2019LanguageC STL功能需求设计和实现进程与资源管理并完成 Test shell 的编写以建立系统的进程管理、调度、资源管理和分配的知识体系。该管理器能够完成进程的控制如进程创建与撤销、进程的状态转换能够基于优先级调度算法完成进程的调度模拟时钟中断在同优先级进程中采用时间片轮转调度算法进行调度能够完成资源的分配与释放并完成进程之间的同步。该管理器同时也能完成从用户终端或者指定文件读取用户命令通过 Test shell 模块完成对用户命令的解释将用户命令转化为对进程与资源控制的具体操作并将执行结果输出到终端或指定文件中。同时要求设计与实现驱动程序test shell驱动该管理器工作即将命令语言即用户要求转换成对与内核函数如 create, request 等的调用。细节设计创建新进程时新进程的父进程为运行态进程新进程作为运行态的子进程;有高优先级进程就绪态后马上抢占;撤销父进程时需要循环 kill 光所有子进程;释放资源后如有进程可得到资源马上转入就绪态;系统功能总体设计共设计 4 个大模块PCB 进程控制块该模块包含进程 PCB 的数据结构以及操作 PCB 内部数据变化的接口RCB 资源控制块该模块包含进程 PCB 的数据结构以及操作 PCB 内部数据变化的接口进程管理模块该模块负责管理整个程序的进程池和资源池对进程进行创建、撤销以及调度等管理任务对资源进行分配和释放维护着程序的就绪等待队列、阻塞等待队列提供了对程序操作的命令接口基于时间片与高优先抢占调度算法三个优先级就绪队列System-2 User-1 Init-0Cmd 命令行模块该模块负责从用户终端 Cmd 中读取用户命令完成对用户命令的解释将用户命令转化为对进程与资源控制的具体操作调用操作接口 API 并将执行结果输出到终端中。void inputCmd(vectorstring argvs); // 命令输入模块 void initCmd(); // Cmd初始化模块 void createProcessCmd(const vectorstring argvs); // 进程创建模块 void destroyProcessCmd(const vectorstring argvs); // 进程释放模块 void requestResourcesCmd(const vectorstring argvs); // 资源申请模块 void releaseResoursesCmd(const vectorstring argvs); // 资源释放模块 void showReadyListCmd(const vectorstring argvs); // 显示就绪队列 void showResourcesListCmd(const vectorstring argvs); // 显示资源情况 void timeOutCmd(const vectorstring argvs); // 时间片切换(调度) void quitCmd(const vectorstring argvs); // 退出Cmd void showHelpCmd(const vectorstring argvs); // 显示帮助信息(自启) void showProcessTable(const vectorstring argvs); // 显示进程表 void showOneProcess(const vectorstring argvs); // 显示某个进程情况类设计图小模块Cmd 命令处理模块init 进程自启动模块创建新进程模块释放进程模块请求资源模块释放资源模块调度程序模块测试验证输入模块界面优化与测试待处理注释 key:tododeltest后期改进把容器换成链式指针数据结构把多级队列封装成类可快速拓展根据进程的 Type 进行优先级墙长调度去除臃肿的升降级代码优化 STL 容器的使用增加 PPID 父进程 ID已知 BUG 日志释放资源高优先级抢占升级撤销进程循环 free resources 逻辑init 进程释放资源是出现 BUG版本可演示界面一般存在明显 BUG version1效果截图♻️ 资源大小688KB➡️资源下载https://download.csdn.net/download/s1t16/87415924注更多内容可关注微信公众号【神仙别闹】如当前文章或代码侵犯了您的权益请私信作者删除
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2476212.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!