使用优先数法实现操作系统的进程调度

上传人:平*** 文档编号:11926342 上传时间:2017-10-15 格式:DOC 页数:9 大小:259KB
返回 下载 相关 举报
使用优先数法实现操作系统的进程调度_第1页
第1页 / 共9页
使用优先数法实现操作系统的进程调度_第2页
第2页 / 共9页
使用优先数法实现操作系统的进程调度_第3页
第3页 / 共9页
使用优先数法实现操作系统的进程调度_第4页
第4页 / 共9页
使用优先数法实现操作系统的进程调度_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《使用优先数法实现操作系统的进程调度》由会员分享,可在线阅读,更多相关《使用优先数法实现操作系统的进程调度(9页珍藏版)》请在金锄头文库上搜索。

1、操作系统课程设计 使用优先数法实现操作系统的进程调度1操作系统原理课程设计报告课题名称:使用优先数法实现操作系统的进程调度 姓 名: 刘武 班 级: BX1109 学 号: 42 指导老师: 苏庆刚 二一三年 十二 月二十日操作系统课程设计 使用优先数法实现操作系统的进程调度2目 录一、 操作系统原理课程设计的目的与要求 .41.1 目的 .42.2 要求 .4二、简述课程设计内容、主要功能和实现环境 .42.1 课程设计内容 .42.2 主要功能 .52.3 实现环境 .5三、任务的分析、设计、实现和讨论 .53.1 任务的分析 .53.2 任务的设计与实现 .73.3 程序源代码相应注释

2、.83.4 程序的测试 .93.5 设计说明 .10四、 操作系统课程设计小结(收获、不足与建议) .10参考文献 .11操作系统课程设计 使用优先数法实现操作系统的进程调度3一、操作系统原理课程设计的目的与要求1.1 目的进程是操作系统最重要的概念之一,进程调度又是操作系统核心的主要内容。本实习要求学生独立地用高级语言编写和调试一个简单的进程调度程序。调度算法可任意选择或自行设计。任务一采用简单轮转法,任务二采用优先数法等。本课题可以加深对进程调度和各种调度算法的理解。2.2 要求设计一个有 n 个进程并发的进程调度程序。每个进程由一个进程控制块(PCB)表示。进程控制块一般应该包含下述信息

3、:进程名、进程优先数、进程需要运行的时间、占用 CPU 的时间以及进程的状态等,且可按调度算法的不同而增删。调度程序应包含 23 种不同的调度算法,运行时可任意选一种,以利于各种算法的分析比较。算法应能显示或打印各个进程的 PID、状态(运行状态 R、等待状态 W 等)和参数(已运行时间等)的变化情况,便于观察诸进程的调度过程二、简述课程设计内容、主要功能和实现环境2.1 课程设计内容 进程调度是处理机管理的核心内容。本实验要求用 C 语言编写和调试一个简单的进程调度程序。选用优先数法五个进程进行调度。每个进程处于运行R(run)、就绪 W(wait)和完成 F(finish)三种状态之一,并

4、假设起始状态都是就绪状态 W。为了便于处理,程序进程的运行时间以时间片为单位计算。各进程的优先数以及进程需要运行的时间片数,在创建进程时均有、由用户自定义,在进程执行中则由机器进行减运算。通过本实验可以加深理解有关进程控制块、进程队列的概念,并体会和了解优先数调度算法的具体实施办法。2.2 主要功能本程序可选用优先数法对 N 个进程进行调度。每个进程处于运行 R(run)、操作系统课程设计 使用优先数法实现操作系统的进程调度4就绪 W(wait)和完成 F(finish)三种状态之一,并假设起始状态都是就绪状态 W。为了便于处理,程序进程的运行时间以时间片为单位计算,根据优先级来调度进程成,用

5、 cpu 在每个时间片内完成每个进程。2.3 实现环境本次课程设计结合算法的特点,采用 Windows 操作系统平台。开发工具为Microsoft Visual C+6.0。三、任务的分析、设计、实现和讨论3.1 任务的分析本程序可选用优先数法对 N 个进程进行调度。每个进程处于运行 R(run)、就绪 W(wait)和完成 F(finish)三种状态之一,并假设起始状态都是就绪状态 W。为了便于处理,程序进程的运行时间以时间片为单位计算。各进程的优先数以及进程需要运行的时间片数,在创建进程时均有、由用户自定义,在进程执行中则由机器进行减运算。下面介绍优先数调度算法:优先数法。进程就绪链按优先

6、数大小从高到低排列,链首进程首先投入运行。每过一个时间片,运行进程所需运行的时间片数减 1,说明它已运行了一个时间片,优先数也减 1,理由是该进程如果在一个时间片中完成不了,优先级应该降低一级,占用 cpu 的时间加 1,接着比较现行进程和就绪链链首进程的优先数,如果仍是现行进程高或者相同,就让现行进程继续进行,否则,调度就绪链链首进程投入运行。原运行进程再按其优先数大小插入就绪链,且改变它们对应的进程状态,直至所有进程都运行完各自的时间片数。进程控制块 PCB 结构如下:图 3-1 PCB 结构进程控制块链结构如下:进程 ID链指针优先数占用 CPU 时间片数进程所需时间片数进程状态操作系统

7、课程设计 使用优先数法实现操作系统的进程调度5TAILRUN1RHEAD3W5W2W图 3-2 进程控制块链结构其中:RUN当前运行进程指针;HEAD进程就绪链链首指针;TAID进程就绪链链尾指针。操作系统课程设计 使用优先数法实现操作系统的进程调度63.2 任务的设计与实现开始进入 p r i o r i t y生成并按优先数大小排列进程控制块链初始化进程 。 由链表形式存 P C B, 返回头指针 , 链首运行进程时间片数减 1 ,优先数减 3进程时间片数为 0 优先数 链首进程否撤销该进程是从链首取进程投入运行进程队列为空结束运行进程退出 ,按优先数插入进程链否是否图 3-3 算法流程图

8、输入进程个数输入进程时间片数调用 P C B 创建函数调用 p r t 函数 , 打印链表调用优先数调度算法函数 , 进行进程的运行图 3-4 程序运行流程图操作系统课程设计 使用优先数法实现操作系统的进程调度7本组程序主要用了 4 个函数:void init(),void insert(),prisch(),void print()。算法主要是比较优先数算法。我们的程序是没有手动输入的,里面的优先数和进程需要时间片都是随机产生的,然后有 init()函数来利用数组的特点,调用数组元素,对优先数进行比较,然后选出优先数最大的进程,状态为 R,剩下的进程继续比较调用insert()函数,同时产生

9、等待队列,内容放在数组成员 next 里面。然后prisch()函数在循环中调用数组进行模拟进程运行,运行一次需要时间片减一,cup 使用时间片加一,优先数减一,判断需要的时间片是否为 0,为 0,进程状态变成 F,否则与等待队列的进程比较优先数,再次调用 insert()函数,生成新的等待队列。直至等待队列为 0,循环结束。程序中每改变进程状态,都会在屏幕上输出。如下图所示。本次程序在编写的过程中没遇到什么较大的困难,在同学的互相帮助下,还是挺圆满的完成了本次课设。3.3 程序源代码相应注释PCB:typedef struct nodechar name10; /进程标志符int prio;

10、 /进程运行优先数Int oriprio; /进程初始优先数int alltime; /运行所需全部时间int cputime; /进程占用 cpu 时间int needtime; /进程到完成还要的时间char state; /进程的状态struct node *next; /链指针PCB;PCB *finish,*ready,*tail,*run; /队列指针int N,j,k, m;/进程数等待队列正在运行进程名进程需要运行的时间(随机产生)下一个就绪 id进程优先数,运行一次优先数-1 进程的状态:W-就绪R-运行F-完成进程占用 cpu 时间,运行一次+1操作系统课程设计 使用优先数

11、法实现操作系统的进程调度8主函数:void create1(char alg) /优先数创建初始 PCB 信息insert1(PCB *q) /优先数的算法插入算法void priority(char alg) /优先数调度算法3.4 程序的测试下图主要说明该程序算法的主要操作界面以及相关组列所代表的对象,以及相关的人员信息等。图 3-5 程序运行截图操作系统课程设计 使用优先数法实现操作系统的进程调度9图 3-6 程序运行可能出现的错误3.5 设计说明(1)进程的调度采用优先数调度算法。(2)采用动态优先数法确定进程的优先级别。(3)设计三个链队列,分别用来表示运行队列、就绪队列和完成队列。

12、(4)用户输入进程标志符以及进程所需时间,申请空间存放进程 PCB 信息四、操作系统课程设计小结(收获、不足与建议)本次课程设计的题目是进程调度优先数法。在本组的工作任务分配上,我被分在了 PPT 这一组,即参与 PPT 的制作。在组长抽完题目后,我们认真探讨了课设如何进行。我认真浏览了实验报告指导,对所要完成的实验有了大概的了解,回去后有详细的看了报告指导,为了完成实验,我先把课本第三章处理机调度与死锁看了看。常用的调度算法有:先进先出法,短进程优先法,时间片轮转法,优先级调度法,短作业优先调度算法,最高相应比优先调度。在多任务系统中,进程调度是 CPU 管理的一项核心工作。根据调度模式的不同,多任务系统有两种类型,即非抢占式和抢占式。其中,优先数法是非抢占式调度策略,进程调度算操作系统课程设计 使用优先数法实现操作系统的进程调度10法是系统效率的关键,它确定了系统对资源,特别是对 CPU 资源的分配策略,因而直接决定着系统最本质的性能指标,如相应速度和吞吐量等。在设计程序的时候,遇到很多问题,我们从网上寻求参考的程序进

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号