操作系统课程设计说明书 --基于Linux的模拟进程调度算法的实现.docx

上传人:lao****ou 文档编号:1115796 上传时间:2024-11-19 格式:DOCX 页数:15 大小:151.41KB
下载 相关 举报
操作系统课程设计说明书 --基于Linux的模拟进程调度算法的实现.docx_第1页
第1页 / 共15页
操作系统课程设计说明书 --基于Linux的模拟进程调度算法的实现.docx_第2页
第2页 / 共15页
操作系统课程设计说明书 --基于Linux的模拟进程调度算法的实现.docx_第3页
第3页 / 共15页
操作系统课程设计说明书 --基于Linux的模拟进程调度算法的实现.docx_第4页
第4页 / 共15页
操作系统课程设计说明书 --基于Linux的模拟进程调度算法的实现.docx_第5页
第5页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《操作系统课程设计说明书 --基于Linux的模拟进程调度算法的实现.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计说明书 --基于Linux的模拟进程调度算法的实现.docx(15页珍藏版)》请在第一文库网上搜索。

1、操作系统课程设计说明书学院、系:软件学院专业:软件工程设计题目:基于1ini1X的模拟进程调度算法的实现1需求分析题目:基于1inux的模拟进程调度算法的实现设计内容:1 .创建进程:手动创建几个进程,或者随即创建几个进程,都在界面上完成;要求包括进程的名称(不能重复)、创建时间、执行时间等。在此因为某时刻仅一个进程在运行,需要申请的资源都能申请到。2 .完成先来先服务、最短作业优先以及最高响应比优先调度算法。设计要求:要求在屏幕上输出各进程不同调度算法的演示过程以及对周转时间以及平均周转时间和平均带权周转时间进行计算,并对比各算法的优劣。设计目的:进程是操作系统中最重要的概念,也是学习现代操

2、作系统的关键。通过本次课程设计,要求理解进程的实质和进程管理的机制。掌握进程调度的工作流程以及进程调度的算法。2 总体设计图一(功能模块)为了实现进程调度模拟器这一程序,我们主要设计了进程管理,进程调度与进程调度模拟这三个主要功能模块。在进程管理模块下,又有添加进程与删除进程两个功能模块;在进程调度与进程调度模拟模块下,均有先来先服务,最短作业优先,与最高响应比优先三个功能模块。程序流程图:图二(程序流程图)表结构设计:为了实现进程调度模拟器这一程序,我们在程序中主要使用了表这一结构。表一名称类型备注序号Tnt主键进程名称Varchar不可重复创建时间Int无运行时间Int无表二名称类型备注序

3、号Int主键进程名称Varchar不可重复创建时间Int无开始时间Int无运行时间Int无结束时间Int无周转时间Int无带权周转时间Int无表三名称类型备注序号Tnt主键进程名称Varchar不可重复剩余时间Int无周转时间Int无进程状态Varchar无3 .详细设计这次课程设计中,石宏伟负责设计添加进程模块,贺心同负责设计删除进程,宋玉雪负责算法设计,我负责进程模拟以及将我们每个人设计的模块组合成完整的程序。核心代码:MainWindOw:MainWindOW(QWidget*parent):QMainWindow(parent),ui(newUi:MainWindow),thread(

4、NU11)ui-setupUi(this):ui-iptExecutionTime-setVa1idator(newQIntVa1idator(0,99,this);ui-iptCreationTime-setVa1idator(newQIntVa1idator(O,99,this);ui-statusBar-showMessage(“就绪进程数:O);popMenu=newQMenu(ui-1stProcesses);actiOnDe1eteCurrentRow=newQACtiOn(删除当前选中行,this);action1nsertOneNewRow=newQAetion(在当前行前插入

5、一行“,this);actiOnAppenc1OneNewRow=newQAction(在所有行后新增一行“,this);connect(actionDe1eteCurrentRow,SIGNA1(triggered(),this,S1OT(onDe1eteCurrentRowc1ickedO);connect(actionInsertOneNewRow,SIGNA1(triggeredO),this,S1OT(on_InsertOneNewRow,c1icked();connect(actiOnAppendOneNewRow,SIGNA1(triggeredO),this,S1OT(onAp

6、pendOneNewRowc1icked();MainWindow:MainWindowOde1eteui;voidMainWindow:onbtnAddNew_c1icked()intnewRowId=ui-1stProcesses-rowCountO;QStringProcessName=ui-iptProcessName-textO,CreationTime=ui-iptCreationTime-textO,ExecutionTime=ui-iptExecutionTime-text();if(ProcessName.isEmpty()CreationTime.isEmpty()Exec

7、utionTime.isEmptyO)QMeSSageBox:CritiCa1(Ihis,错误,有元素为空!”);return;for(inti=0;i!=newRowId;+i)QTab1eWidge111em*item=ui-1stProcesses-item(i,O);if(item!=NU11&item-textO=ProcessName)QMessageBox:IcriticaKthis,错误,”进程名重复!);return;ui-1stProcesses-insertRow(newRowId);ui-1stProcesses-setItem(newRowId,O,newQTab1e

8、Widge111em(ProcessName);ui-1stProcesses-setItem(newRowId,1,newQTab1eWidgetItem(CreationTime);ui-1stProcesses-setItern(newRowId,2,newQTab1eWidgetItem(ExecutionTime);Ui-statusBar-showMessage(QString(就绪进程数:).append(O+newRowId+1);voidMainWindow:on_tabWidget_currentChanged(intindex)if(index=O)ui-statusBa

9、r-showMessage(QString(,就绪进程数:).append(QString:number(ui-1stProcesses-rowCountO);return;QWidget*tab=index=1?ui-tab2:ui-tab_3;QTab1eWidget*tab1eWidget=index=1?ui-1stExecuting:ui-1stSchedu1ing;tab1eWidget-c1earContentsO;tab1eWidget-setRowCount(ui-1stProcesses-rowCountO);if(ui-1stProcesses-rowCountO!=O)

10、for(introw=O;row!=ui-1stProcesses-rowCountO;+row)for(intco1=O;co1!=3;+co1)(QTab1eWidgetItem*item=ui-1stProcesses-item(row,co1);if(item=NU11Iitem-text().isEmpty()tab-setEnab1ed(fa1se);return;)tab-setEnab1ed(true);e1setab-setEnab1ed(fa1se);)if(index=2)1stSchedu1ing_resetO;voidMainWindow:on_1stProcesse

11、s_customContextMenuRequested(constQPoinI&)Q1istSe1ectedRange=ui-1stProcesses-se1ectedRanges();popMenu-addActionCactionDe1eteCurrentRow);popMenu-addAction(action1IisertOneNewRow);popMenu-addAction(actiOnAppendOneNewRow);if(se1ectedRange.sizeO!=1)actionDe1eteCurrentRow-setEnab1ed(fa1se);actionInsertOn

12、eNewRow-setEnab1ed(fa1se);e1seactionDe1eteCurrentRow-setEnab1ed(true);actionInsertOneNewRow-setEnab1ed(se1ectedRange0.bottomRow()se1ectedRange0.topRow();popMenu-exec(QCursor:posO);voidMainWindow:onDe1eteCurrentRowc1icked()Q1istSe1ectedRange=ui-1stProcesses-se1ectedRangesO;introw=Se1ectedRange0.topRo

13、w(),count=Se1ectedRange0.bottomRow()-row+1;whi1e(count一)ui-1stProcesses-removeRow(row);ui-statusBar-showMessage(QString(,就绪进程数:z,).append(QString:number(ui-1stProcesses-rowCountO);voidMainWindow:on_InsertOneNewRowc1ickedOui-1stProcesses-insertRow(ui-1stProcesses-se1ectedRanges()0.topRow();ui-statusB

14、ar-showMessage(QString(,就绪进程数:).append(QString:number(ui-1stProcesses-rowCountO);voidMainWindow:onAppendOneNewRowc1icked()ui-1stProcesses-insertRow(ui-1stProcesses-rowCountO);ui-statusBar-showMessage(QStringC就绪进程数:z,).append(QString:number(ui-1stProcesses-rowCountO);voidMainWindow:on_1StProcessesemChanged(QTab1eWidge111em*currentItern)if(current1tem-textO.isEmptyO)return;if(currentItem-co1umn()=O)introwCount=ui-1stProcesses-rowCount();for(inti=0;i!=rowCount;+i)(QTab

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服