欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    CPU-Scheduling-代码.docx

    • 资源ID:990208       资源大小:142.69KB        全文页数:36页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    CPU-Scheduling-代码.docx

    实验报告实验要求设计一个按优先权调度算法实现处理机调度和动态内存分配的程序。本次实验采用优先权与时间片方法相结合的调度,即根据优先级选出的进程会运行时间片个时间。粗略设计一、设计O粗略要点a.显示正在运行的进程b.显示就绪队列(可以载入六道进程)c.显示挂起队列,以及手动挂起按钮(或根据某种算法实现的自动挂起);显示解挂按钮(或根据某种算法实现自动解挂)d.显示手动添加进程的按钮,点击进入手动添加进程界面:显示随机添加进程按钮e.显示等待队列(预备队列),新添加的进程会首先进入这个队列f.显示程序运行以及暂停的按钮二、逻辑分析以及类设计O逻辑分析a.根据进程的状态,所有新生成的进程都应该进入等待队列b.根据位于等待队列的先后顺序,选取前几位到就绪队列,直到就绪队列已满c.如果没有空闲的内存空间,怎表示就绪队列已满d.正在运行的进程结束时,必须马上重新根据调度算法选取下一个进程进行运行e.要求运行时间过长超过预期的进程应该被挂起,进入挂起队列f.解挂的进程应该进入等待队列,并位于排头g.等待中的进程应该提升其优先级,运行过的进程应该适当降低优先级,完成变动应该重新根据调度算法进行排序或选取运行h.所有活动的进程(包括挂起的)不能同名以便区分O粗略类设计常量接口用于保存程序中表示各种重要的常量表示进程状态O所有新生成进程状态默认值1 就绪表示可以参与调度算法的筛选2 等待不能参与筛选3 正在运行的进程4 被挂起的进程5 终止的进程要求运行时间已经为注:等待队列中即为后备进程有关优先级最低优先级6 最高优先级最大道数时间片默认数要求时间的最大期望模拟每次运行耗费时间饥饿上界目前设置为与最大优先级相同有关内存.初始位置未进入内存/单要求内存最大值.内存大小由于掌握进程所有的信息,本次实验将其视作进程本身处理- 进程名,为生成的顺序,- 进程要求运行的时间- 优先级这是有一定范围限制的- 进程状态默认为见- 处于内存中的位置,初始为- 占内存的空间()这是构造函数各种各样的和函数不论有没有必要,都写起来O当为时,返回()将逻辑意义上的状态转化为描述()返回的描述信息这是的工厂类,用于生成各式各样的记录的个数(,)这个函数会对参数进行各种限制,直到输入值满足要求才会生成返回一个0()随机生成要求数目的链表UU(C)将链表转化为二维数组,方便界面列表显示O这里返回已经生成的的个数- 内存,大小为0使用号内存()使用到号内存()释放号内存()释放到号内存()如果号内存被使用则返回()如果到号内存含有被使用的段则返回- >()内存自检返PI可用段,每一个返回数组对象中,川;这是总控制类,用于各种的调度与控制我觉得此处应该使用线程,但是自己还不熟这方面的知识- <>所有新生成的由这个队列接受,大小不限- <>这里储存的是就绪的进程,最大容量为,且一直维持满态O这里是挂起的进程,从这里取出的进程会放到等待队列排头,遵循先进先出原则- 正在运行的进程- 内存组件- <1>内存空闲空间辅助变量,用于标记当前进入内存的所分配的位置各种方法()插入等待队列,成功返回,下同O插到等待队列队头()插入就绪队列()插入挂起队列()经过调度算法调度,状态为的进程会运行,直到完结一个时间或者要求运行时间为;时间为时会不归还就绪队列(此方法还有待考虑),否则将归还就绪队列()根据优先级的调度算法,调度处于就绪队列的进程,返回优先级高的进程,不改变位于就绪队列的顺序;并把选取的从就绪队列中剔除,下同()根据所要求时间的调度算法,返回要求时间短的进程,不改变位于就绪队列的顺序()根据处于就绪队列的顺序的调度算法,返回排头的进程,同时位置进入就绪队列末尾位置()用于填满就绪队列,保持其道数为()获取等待队列的()将中断正在运行的进程,改变状态,将其挂起,从就绪队列中剔除,添入挂起队列()释放被挂起的O每次运行增长O优先级最低进程的优先级,直到(饥饿上界)()对于每次运行的进程,会降低它的优先级O()返回正在运行的信息()针对运行后状态的恢复<>()获取最近的内存空闲状况(O)初始化等待队列O判断是否有符合要求的空闲空间界面类负责对的管控与显示,并将输入信息传到类,输出类传出的信息直接将程序组装在里O显示正在等待的()显示就绪的()显示正在运行的a.这里是程序运行任务详细设计及有关代码一、组件类所要求的时间优先级状态)O()O()()7)O()()()()(f)()f)O(9()7)O(9O(<)这种设计是有问题的,如果不调用状态就不会变为)O(IVIO(:(”错误的状态”)',"',;()(”已建立工厂”);)(,)这里用来判断参数是否合法!(>)(><)(<)(U成功生成了一个");(,);)("非法的请求时间!,)("非法的优先级!");(“要求时间不能非正整数!");*这是随机生成的个数*返回一个链表<>()O<>();0;(;<)0;0;(C);*返回已经生成的的数目()*(O)();(;<(););()0;()0;()0;0();()0;()0;()(;*被使用过则返回()(;*使用主存()()0;*释放主存();*使用从开始的空间为的主存(,)(;<)0;*释放从开始的空间为的主存(,)(;<)0;*检查从开始的是否被使用或含有被使用的对象*可用的则返回1(,)(;<)()2 *自动检索主存,返向可用空间段*每一个返回数组对象中,口口;*<>()<><>();(;<)()(;<)()/),;0;)()0;(,);(,);(,);<><>();0;(;<();)(“第”组空闲空间"""()""()二、逻辑控制类类<><><>/辅助私有量<><>();()();<>();0();0();0;)*这个方法写来暂时做测试用()O(前期自我组装测试方法(O)(»)<>()<>()<>()()()0;0;("成功插入等待队列”);插入等待队列)()0;()插到等待队列(U成功插入等待队列队头”);()(这个方法有问题,关于正在运行的进程回复到就绪队列时内存重复分配针对从返同的归队()0;0;("成功插入就绪队列。插入就绪队列针对从队列来的设计的方法()0;(0)(0;(),();)0;("成功插入就绪队列”)插入就绪队列/()("插入失败,可能找不到空闲空间”);(”没有正在等待的进程。");()0;(:)()<);(;<();)(U第”组空闲空间”"("()""()()(OO)()(O;释放内存空间,这是对挂起进程的内存回收()0;("成功插入挂起队列。插入挂起队列)O(0;0;(0);(;<0();)0;)();0;<>()0;()按照优先级的调度算法O;(:)()<(»/)O;*暂时废弃(0)(0;(:)()>()0;(<)0;(""0"!");()0;(>)0;(''"0"!");()(每次运行后,根据进程的存活状态进行处理(00)();0;O;O;(O);(»(),()对死亡进程的内存PI收0;0;0;(对挂起的处理(),();0;(0);这是测试代码(0)();();()(0;0;三、界面类类内含运行任务类附,完成界面效果图O;O;O;O(*);O(*);O;(O(*),O(*);O;(O(*),O(*),O(*);O;(,'u,O(*)O(*),O(*);(O)O;(O)(O(*)O(*()O(*),O(*),O(*();)O;(O);(O);(O);(,);O;O;)()(”错误操作,任务未建立”);()(0;0;0;()(0)0;0;)()(00(0;);*用来同一格式的制表"%"%",UWVVU(“u),()*(),(),()OO;O;(,);O;(,);O;(,);O;(hWWWWWm);("”),,);3);(",);(uWWWWWu);O;O;("WWWWW'*);0;(“随机生成“);(uWWWWWn);0;0;(,),",);("n);0;(,);(,);O;(uu);O;O;("n);(u);O;O;(,);O;O;(,);(u);O;O;(u);O;O;O;(,'n);(,);,);,,);(,);(,);O;(,);(,);O;O;(,'",fr);O;(,);(,n);(");O;("W");(',");O;(O);O;(""),);(,);O;(O),);O;);(u);3);O;(,"u,);O;(O),);(,);O;);(u);O;(,);(u);O;O;(O),);O;O;O;(,);O;,O;O;(),”上面是内存概览”,);0;(,);("");(,);O;O;O;()3);O;(“用你鼠标去探索吧,干吧得!”)0;0(,);0;(3,);0;0;0(,);0(,);()(,);()(,);0(,);(0);(0);(0);(0);(0);0(00);(00)(0),);)()O(OO)(O),);)()(“哈,问题被找到了“);0(00)(0),);)()(“哈,问题被找到了”);0(000000)(“!“);(0)(,!u);(0)(',!,);)(0)(00);(“显示正常”);(“太强劲,缓存延迟”);(O);(>)(O);O;)()(”输入的数据不符合要求”);)0;0;(0)0;0;(0;)(O)在初始化就绪数组的同时开始运行0;(0;0;0;0;0;0;)()(“运行时错误!”);()()00)()0每次数据变动都要巾:新、"小保持就绪队列充满的状态0;()(0;0;0;0;0;0;()(“运行时错误!”);)运行结束时清空显示0;0;0;O(O;)O(/O;)O(9)实验结果一、截图二、结论经过测试,所有预先设计的功能均可正常运行!

    注意事项

    本文(CPU-Scheduling-代码.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开