实验内容:编写一个单处理机下的进程调度程序,模仿操作系统对进程的调度。
要求:能够创建指定数量的进程,每个进程由一个进程控制块表示。
实现先来先服务调度算法:进程到达时间可由进程创建时间表示。
实现短作业优先调度算法:可指定进程要求的运行时间。
(说明:对不可剥夺的短作业优先算法,当作业运行时间相等时,优先调度进程号小的进程执行;
对可剥夺式的短作业优先算法,即选最短剩余时间的进程进行运行,在剩余时间相同的情况下,选择到达时间早的进程进行运行)实现时间片轮转调度算法:可指定生成时间片大小。
(说明:新进程到来时插入到就绪队列的队尾,当进程P运行完一个时间片时,若同时有进程Q到达,则先在就绪队列队尾插入新到达的进程Q,之后再插入进程P)实现动态优先级调度算法:可指定进程的初始优先级(优先级与优先数成反比,优先级最高为0),优先级改变遵循下列原则:进程在就绪队列中每停留一个时间片,优先级加1,进程每运行一个时间片,优先级减3。
(说明:本算法在优先级相同的情况下,选择到达时间早的进程进行运行)测试用例格式如下:输入:调度算法   进程号/到达时间/运行时间/优先级/时间片输出:调度顺序/进程号/开始运行时间/结束运行时间/优先级其中调度算法选项为:1----先来先服务,2----短作业优先,3----最短剩余时间优先,4----时间片轮转,5----动态优先级
2023/3/15 17:29:21 2KB 进程调度
1
动态设置进程优先级,并设有延时函数while(head!=NULL){ Output(&head); DeleteQueue(&head,&curr); curr.runtime--; curr.privilege++; if(curr.runtime!=0) { InsertQueue(&head,curr); } }}
2023/3/6 14:17:40 30KB 动态优先级调度算法
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡