- 31
- 0
- 约9千字
- 约 13页
- 2017-08-25 发布于河北
- 举报
1短作业优先算法实现进程调度.doc
短作业优先算法实现进程调度
一、设计思路及算法描述
(1) 设计思路
进程调度是操作系统的一个基本功能,调度算法的效率直接影响到系统性能。短作业优先调度算法最有利于短作业与短进程的调度。本系统可以模拟操作系统中的短作业优先调度。系统提供一个全局变量“systemTime”,可有效地控制进程的到达时间与完成时间。系统中同时提供三种创建进程的方法:1、系统默认创建五个进程,这五个进程的到达时间与服务时间参考了《计算机操作系统》P76页的表格,这种方法具有一定的参考性,能让用户快速了解本系统;2、系统随机生成进程的到达时间与服务时间,由用户控制进程的数量,这个方法可较真实的模拟实际操作系统中的进程调度;3、系统提供用户接口让用户输入进程的数量,同时控制进程的到达时间与服务时间。以上任一模块完成后,系统可以立即对本次进程调度的性能进行分析,同时输出各个进程的周转时间与带权周转时间,以及平均周转时间与平均带权周转时间。
经过系统分析阶段可以将系统分为三个层次:1、数据结构层;2、进程控制层;3、系统逻辑层。系统中的所有功能实质上都基于某中数据结构,数据结构的优劣将直接决定系统成败。进程的各种基本操作可以在数据结构的基础上很快设计出来。
以下是系统三个层次的详细分析:
①数据结构层,是本系统中的最底层。由于每次调度进程都要遍历就绪队列,因此系统中选用灵活的双向链表作为就绪队列的基本数据结构。为了系统的灵活性以及日后的可维护性,本系统将数据结构层与进程控制层的耦合性降低了。双向链表中的定义中提供一个指向进程控制信息的指针。一个完整的进程控制块如下图所示:
数据结构层提供基本的插入、删除操作,以及链表的初始化、销毁等工作。这些工作要进程控制层提供有效的控制方法以及合理的管理内存。
②进程控制层提供进程控制的一些基本操作,以及进程调度算法。这一层要完成以下工作:向就绪队列中添加一个进程、使用进程调度算法为进程分配处理机、进程获得处理机之后应完成的操作、系统调度的性能分析以及进程的删除。
③系统逻辑层为用户提供三种生成成进程的方法,并调用进程控制层函数完成系统的运行。同时,系统还要提供UI即用户接口使用户能翻遍的使用本系统。
(2) 算法描述
系统在为进程分配处理机之前首先要扫描就绪队列,选出一个估计运行时间最短的进程,并将处理机分配给它。系统根据当前的系统时间即“systemTime”分两种情况选择进程并分配处理机:1、若系统中有已到达的进程(进程的到达时间小于系统时间)则为服务时间最短的分配处理机;2、若系统中的进程都还未到达(所有进程的到达时间都大于系统时间)则选择到达时间最短进程并等到系统时间大于等于这一时间的时候再为这个进程分配处理机。进程完成后都会马上计算并输出他的周转时间与带权周转时间,为系统性能分析提供有效及时的资料。
二、我完成的部分
我完成了系统总体设计。我还编码实现了系统的数据结构层、进程控制层、系统逻辑层,三个层次。
三、代码及注释
#includeiostream.h
#includestdlib.h
#includemalloc.h
#includewindows.h
#includetime.h
#includeconio.h
int systemTime=0;
typedef struct PCB
{
int arriveTime;
int serviceTime;
int finishTime;
int turn_roundTime;
float power_turn_roundTime;
}PCB;
typedef struct LNode
{
int data;
PCB* pcb;
struct LNode* next;
struct LNode* previous;
}LNode;
/****************************数据结构部分************************/
struct LNode* initList();
//初始化线性表。
bool destroyList(struct LNode* l);
//销毁就线性表。
bool insFirst(struct LNode* l,struct LNode* s);
//使用头插法向线性表中插入一个结点。
bool listDelete(LNode* l,LNode* delNode);
//删除线性表中的一个结点,delNode指向该节点。
bool makeNode(struct LNode** node,int e,PCB* p);
/*生成就线性表上的一个结点。需要将一个LNode类型的
指针的地址作为参数传入,指针的值为NULL,函数完成后指针
指向一块新的内存区域;这块内存区域的P
原创力文档

文档评论(0)