1 / 35
文档名称:

《操作系统》综合实训项目设计-基于多队列反馈的进程调度.docx

格式:docx   大小:269KB   页数:35页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《操作系统》综合实训项目设计-基于多队列反馈的进程调度.docx

上传人:3346389411 2017/7/7 文件大小:269 KB

下载得到文件列表

《操作系统》综合实训项目设计-基于多队列反馈的进程调度.docx

文档介绍

文档介绍:《操作系统》综合实训项目设计文档
【大纲】
(不用打印,提交电子稿即可!)
基本信息
项目名称:***姓名、学号、完成日期
项目名称:基于时间片的多队列反馈的进程管理系统
完成日期:
实验内容与目的
实验内容:编写程序完成单处理器系统的进程调度,要求采用基于时间片多队列反馈式调度策略调度策略。
具体内容:

(新)、就绪、运行、阻塞和完成5个状态。
、进程调度、进程阻塞、进程唤醒和进程撤销5个原语。

实验目的:
,明确进程与程序区别。
、创建和调度等方法。
主要设计思路和流程图
设计思路:
1定义数据结构




1.)在第一就绪队列里的进程被调度运行,进程状态由等待变为运行,设置时间片计数器,每次运行加1,时间片满后,该进程出队列,进入下一级别的就绪队列。若是在最后一级别的队列,则在该队列中进行时间片轮转调度
2.)运行进程若是被阻塞的话,该进程出就绪队列,进入阻塞队列,状态变为阻塞态
3.)若是唤醒被阻塞进程,则阻塞进程根据其时间片计数器计入相应的就绪队列
4.)撤销进程,该进程直接出就绪队列
主要数据结构及其说明
typedef struct Node
{
char name[20];
char state;//进程所处的状态,N新建,W等待,B阻塞,R运行,F结束
int round;//时间片计数器
int time;//运行时间
struct Node *next;
}LinkQueueNode,*PCB;//定义PCB
typedef struct
{
LinkQueueNode *front;
LinkQueueNode *rear;
}LinkQueue;//定义队列
void initQueue(LinkQueue *Q)//队列的初始化函数
void Initializa()//初始化所有队列
void RunPrintf()//打印运行队列
void BlockPrintf()//打印阻塞队列
void ReadyPrintf(LinkQueue q)//打印就绪队列
void putout()//输出函数
void EnterQueue(LinkQueue *Q,PCB *p)//进程插入队列函数
int DeleteQueue(LinkQueue *Q,PCB *p)//进程出队列
void TransferRun(LinkQueue *q1,LinkQueue *q2,PCB q)//进程出就绪队列,入运行队列
void Transfer(LinkQueue *q1,LinkQueue *q2,PCB q)
//进程唤醒或阻塞时队列转换的函数
int MultiDiapatch()
//调度函数,若此队列运行的进程时间片满,则进入下一级队列
int run()//模拟运行
void block()//模拟阻塞
void wake()//模拟唤醒
int Createprocess(LinkQueue *Q)//进程的创建
void meanu()//菜单函数
程序运行时的初值和运行结果