当前位置:   article > 正文

最高优先权优先调度算法C语言,操作系统原理高优先权调度算法.doc

最高优先调度算法c语言

操作系统原理高优先权调度算法

《操作系统原理》

课 程 设 计 报 告 书

题 目: 高优先权调度算法

学 号:

学生姓名:

专 业:

指导教师:

5月30日

目 录

1 功能描述1

2 系统设计1

2.1总体设计1

2.2详细设计1

2.3程序运行流程图1

3 系统实现2

3.1程序代码3

4 系统测试与分析7

4.1程序运行开始界面见图2和图37

4.2高优先权程序正常运行8

教师评分表13

1 功能描述

先权是指在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能。高优先权优先调度算法可以使紧迫型作业进入系统后能得到优先处理。此算法常被用于批处理系统,作为作业调度算法,也作为多种操作系统中的进程调度算法,还可用于实时系统。该算法用于作业调度时,系统将从后备队列中选择若干个优先权最高的作业装入内存。当用于进程调度时,该算法是把处理机分配给就绪队列中优先权最高的进程。

2 系统设计

2.1总体设计

验内容利用C语言来实现对N个进程采用动态优先权优先算法的进程调度。优先数改变的原则:进程每运行一个时间片,优先数减1。

2.2详细设计

在运行界面里输入进程名称,进程优先级和进程时间;

每运行一个时间单位,作业的优先权级数减一;

在运行出的用户界面中显示初始作业名,作业状态,优先权级数,需要服务的时间,已经运行的时间;

每次调度前后显示作业队列;

2.3程序运行流程图

程序运行流程图见流程图1

3 系统实现

用c++编写的高优先权调度算法算法。

3.1程序代码

程序源代码如下:

#include

#include

struct PCB{

char p_name[20];

int p_priority;

int p_needTime;

int p_runTime;

char p_state;

struct PCB* next;

};

void HighPriority();

void RoundRobin();

void Information();

char Choice();

struct PCB* SortList(PCB* HL);

int main()

{

Information();

char choice = Choice();

switch(choice)

{

case '1':

system("cls");

HighPriority();

break;

default:

break;

}

system("pause");

return 0;

}

void Information()

{

printf(" 按回车键进入演示程序");

getchar();

system("cls");

}

char Choice()

{

printf("\n\n");

printf(" 1.演示最高优先数优先算法。");

printf(" 按1继续:");

char ch = getchar();

return ch;

system("cls");

}

void HighPriority()

{

struct PCB *processes, *pt;

//pt作为临时节点来创建链表,使用for语句,限制进程数为5个

processes = pt = (struct PCB*)malloc(sizeof(struct PCB));

for (int i = 0; i != 5; ++i)

{

struct PCB *p = (struct PCB*)malloc(sizeof(struct PCB));

printf("进程号No.%d:\n", i);

printf("输入进程名:");

scanf("%s", p->p_na

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/460164
推荐阅读
  

闽ICP备14008679号