进程调度算法的设计.doc

进程调度算法的设计.doc

ID:61336986

大小:372.50 KB

页数:17页

时间:2021-01-25

进程调度算法的设计.doc_第1页
进程调度算法的设计.doc_第2页
进程调度算法的设计.doc_第3页
进程调度算法的设计.doc_第4页
进程调度算法的设计.doc_第5页
资源描述:

《进程调度算法的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《网络操作系统》课程设计报告题目进程调度算法设计姓名___凌乐乐______学号________同组者___徐守保______专业指导教师陈卫成绩网络工程系2014年12月26日操作系统课程设计任务书学生姓名凌乐乐徐守保学号专业班级网络工程1班设计题目进程调度算法的设计内容概要:①设计进程控制块PCB表结构,适用于多级队列反馈调度算法。②建立进程就绪队列,编制入链子程序。③编制多级队列反馈调度算法文献资料:《计算机操作系统》《网络操作系统》《C语言》设计要求: ①本程序用多级队列反馈调度算法对五个进程进行调度,每个进程可有三个状态,并假设初始状态为就绪状态。②

2、为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的优先数或轮转时间数以及进程需运行的时间片数的初始值均由用户给定。③在优先数算法中,优先数的值为50与运行时间的差值,即P_TIME-process->needtime。进程每执行一次,优先数减3,CPU时间片数加1,进程还需要的时间片数减1。在轮转算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了2个单位),这时,CPU时间片数加2,进程还需要的时间片数减2,并排列到就绪队列的尾上。④对于遇到优先数一致的情况,采用FIFO策略解决。目录一.设计目的二.设计内容1.设计要求2

3、.设计技术参数三.设计过程1.实现功能2.设计思路3.算法和流程图四.源程序五.操作界面截图六.设计总结七.个人遇到的困难与获得的主要成果(分人写)正文一、设计目的:通过课程设计,加深对操作系统各资源管理模块的理解,掌握操作系统的基本原理及功能,具有初步分析实际操作系统、设计、构造和开发现代操作系统的基本能力。二、设计内容:进程调度算法的设计1.设计要求:①设计进程控制块PCB表结构,适用于多级队列反馈调度算法。②建立进程就绪队列,编制入链子程序。③编制多级队列反馈调度算法开发环境:VC++6.02.设计技术参数:①本程序用两种算法对五个进程进行调度,每个进程

4、可有三个状态,并假设初始状态为就绪状态。②为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的优先数或轮转时间数以及进程需运行的时间片数的初始值均由用户给定。③在优先数算法中,优先数的值为50与运行时间的差值,即P_TIME-process->needtime。进程每执行一次,优先数减3,CPU时间片数加1,进程还需要的时间片数减1。在轮转算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了2个单位),这时,CPU时间片数加2,进程还需要的时间片数减2,并排列到就绪队列的尾上。④对于遇到优先数一致的情况,采用FIFO策略解决。

5、一、设计过程1.实现功能通过操作者输入选择0、1、2(输入非法,则报错并显示可重新输入)来确定要进行的操作。选择0表示退出程序。选择1,进入进程就绪队列的创建,创建完5个进程后通过优先级调度算法对5个进程进行调度并显示结果。选择2,也是进入进程就绪队列的创建,创建完5个进程后通过时间片轮转调度算法对5个进程进行调度并显示结果。2.设计思路优先级算法调度的设计分析:给每一个进程确定一个优先数,优先数的值为50与运行时间的差值,即P_TIME-process->needtime。处理器调度每次选择就绪进程中优先数最大者,让它占有处理器运行。接下来,进程每执行一次,

6、优先数减3,CPU时间片数加1,进程还需要的时间片数减1。对于优先数的插入算法,每一个进来都按序排放,再需要插入时就只需按序查找,就能找到确定位置,查找时需要用到两个指针,一个是前去指针,一个为当前指针,方便数据的插入。具体算法如下:priority_insert(PCB*q){PCB*p1,*s,*prior;intn;s=q;/*待插入的PCB指针*/p1=ready;/*就绪队列头指针*/prior=p1;/*prior做p1的前驱指针*/n=1;while((p1!=NULL)&&n)/*根据优先数确定插入位置*/{if(p1->prio>=s->pr

7、io){prior=p1;p1=p1->next;}elsen=0;}if(prior!=p1)/*如果条件成立说明插入在prior与p1之间*/{prior->next=s;s->next=p1;}else{s->next=p1;/*否则插入在就绪队列的头*/ready=s;}}轮转法调度的设计分析:在轮转算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了2个单位),这时,CPU时间片数加2,进程还需要的时间片数减2,并排列到就绪队列的尾上。新的进程到来时也是直接插到就绪队列的队尾,具体算法如下:roundrun_insert(PCB

8、*p2){tail->next=p2;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。