操作系统进程调度算法模拟

木子 2024-11-06 07:19:52
最佳回答
这是主要算法:你可以参考一下public class privilegeprocess { public static void main(string[] args) { myqueue myqueue = new myqueue();//声明队列 pcb[] pcb = {new pcb(001,8,1),new pcb(002,7,9),new pcb(003,3,8),new pcb(004,1,7),new pcb(005,7,4)}; pcb para = new pcb(); for(int i=0;i<pcb.length;i++){//初始化后首先执行一次排序,这里使用的是选择排序,优先级高的先入队 for(int j=i;j<pcb.length;j++){ if(pcb[i].privilege < pcb[j].privilege){ para = pcb[i]; pcb[i] = pcb[j]; pcb[j] = para; } } } system.out.println("初次入队后各进程的顺序:"); for(int i=0;i<pcb.length;i++){ system.out.println("初次入队后 # processname : " + pcb[i].name + " totaltime : " + pcb[i].totaltime + " privilege :" + pcb[i].privilege); } system.out.println(); myqueue.start(pcb); }}class myqueue { int index = 0; pcb[] pc = new pcb[5]; pcb[] pc1 = new pcb[4]; pcb temp = new pcb(); public void enqueue(pcb process){//入队算法 if(index==5){ system.out.println("out of bounds !"); return; } pc[index] = process; index++; } public pcb dequeue(){//出队算法 if(index==0) return **; for(int i=0;i<pc1.length;i++){ pc1[i] = pc[i+1]; } index--; temp = pc[0]; for(int i=0;i<pc1.length;i++){ pc[i] = pc1[i]; } return temp; } public void start(pcb[] pc){//显示进程表算法 while(pc[0].**notfin**h==true||pc[1].**notfin**h==true||pc[2].**notfin**h==true||pc[3].**notfin**h==true||pc[4].**notfin**h==true){ //*注意:||运算符,所有表达式都为false结果才为false,否则为true for(int i=0;i<pc.length;i++){ pc[i].run(th**); } system.out.println(); for(int i=0;i<pc.length;i++){//所有进程每执行完一次时间片长度的运行就重新按优先级排列一次 for(int j=i;j<pc.length;j++){ if(pc[i].privilege < pc[j].privilege){ temp = pc[i]; pc[i] = pc[j]; pc[j] = temp; } } } } } }class pcb {//声明进程类 int name,totaltime,runtime,privilege; boolean **notfin**h; public pcb(){ } public pcb(int name, int totaltime, int privilege){ th**.name = name;//进程名 th**.totaltime = totaltime;//总时间 th**.privilege = privilege;//优先级别 th**.runtime = 2;//时间片,这里设值为2 th**.**notfin**h = true;//是否执行完毕 system.out.println("初始值: processname : " + name + " totaltime : " + totaltime + " privilege :" + privilege ); system.out.println(); } public void run (myqueue mq){//进程的基于时间片的执行算法 if(totaltime>1){ totaltime-=runtime;//在总时间大于1的时候,总时间=总时间-时间片 privilege--; system.out.println(" processname : " + name + " remaintime : " + totaltime + " privilege :" + privilege ); }else if(totaltime==1){ totaltime--;//在总时间为1时,执行时间为1 privilege--; system.out.println(" processname : " + name + " remaintime : " + totaltime + " privilege :" + privilege ); }else{ **notfin**h = false;//总时间为0,将**notfin**h标记置为false } if(**notfin**h==true){ mq.dequeue(); mq.enqueue(th**); } }} 20210311
汇率兑换计算器

类似问答
  • 操作系统银行家算法题目:
    • 2024-11-06 09:12:28
    • 提问者: 未知
    可以得到满足,因为request(0,4,2,0)<**aiable(1,5,2,0)即请求的小于可用的,所以可以得到满足希望我的回答对你有所帮助
  • 逆势操作系统的应用法则
    • 2024-11-06 09:39:55
    • 提问者: 未知
    1.cdp指标利用昨日的行情预测今日的股价走势,供当天盘中的短线操作。即用昨日的波动来将今日的未来行情做一个高低等级的划分,研判的关键是开盘价在cdp五个数值的哪个位置。2.如果开盘价在nh与nl之间,表示今日行情可能呈小幅震荡,可以在nl的价位买进,而在nh的价位卖出;或在nh的价位卖出...
  • 区块链数字钱包系统操作流程介绍
    • 2024-11-06 09:16:00
    • 提问者: 未知
    1第一步:准备编译环境。代码都是需要编译的,因此需要准备编译环境和工具,您需要下载mingw(仿linux环境编译工具)、qtcreator和对应的sdk,下载boost1.5.0(需要依赖库)、openssl、伯克利db、miniupnp;配置好系统环境变量,qt环境,使用mingw编译boost库(这个需要编译大概2个小时),openssl、伯克利db、miniupnp等文件,编译命令在ltc...
  • 泰康人寿mss系统手机版操作方法
    • 2024-11-06 21:57:38
    • 提问者: 未知
    泰康mss系统2.0登录,泰康人寿mss系统手机版操作方法,泰康人寿mss系统是2013年泰康人寿专为保险代理人开发的新型操作系统,最新版本系统已经升级到泰康人寿mss系统2.0。...
  • 模拟炒股怎么操作啊?
    • 2024-11-06 22:44:04
    • 提问者: 未知
    回答: 模拟炒股就是一些证券网站推出的让散户学习或比赛的软件。和我们正常的交易一样,它也是根据行情实时走向定价的。可以说跟我们的正常行情没什么区别。一般注册后,系统会自动给你虚拟的金额,一般是 10w 左右,然后你就可以委托买卖了。委托买卖的方式也一样。欢迎·模拟·体验:富国环球·投资
  • 刑事模拟法庭审判流程
    • 2024-11-06 06:11:16
    • 提问者: 未知
    开始法庭辩论,公诉人,被告人或双方当事人及其代理人会轮流发表对自己有利的对案件的处理意见,针锋相对,是整个审理中...3.华星公司 股东大会决议,证实39名股东(无原告姜光先...
  • 在操作系统中,进程的最基本的特征是( )。
    • 2024-11-06 20:18:18
    • 提问者: 未知
    进程的最基本的特征是:动态性和并发性。1、并发性并发性是进程的另一个重要特征,同时也是os的重要特征。引入进程的目的正是为了使其程序能和其它建立了进程的程序并发...
  • 外汇模拟交易怎么操作
    • 2024-11-06 20:19:14
    • 提问者: 未知
    你好,外汇市场目前流行交易软件mt4,支持外汇模拟交易,可以通过开立模拟账户进行操作,手机也可以下载该软件进行模拟交易,具体操作说明可以参考mt4使用说明书,祝你投资愉快!!!望采纳!
  • 哪些证券公司有模拟交易系统?
    • 2024-11-06 12:07:26
    • 提问者: 未知
    去开心网开一个账户 里面有模拟股市 可以模拟买卖沪深股市股票
  • 模拟操作总结 1、模拟股票投资需要实现的目的 2、模拟操作投资组合股票选取的理由 3、模拟操作成绩(结果)
    • 2024-11-06 01:55:48
    • 提问者: 未知
    根据三个问题来回答就可以了。1 确定你模拟的目的 例如练手 学习知识。运用学到的知识进行模拟操作减少实盘操作带来的风险。2 组合操作的理由是不把有限的资金放到一个投资...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。