操作系统课程设计进程调度

发布 2022-10-05 13:11:28 阅读 1098

批处理系统的作业调度模拟。

一、课程设计目的。

1、加深对作业概念的了解;

2、深入了解批处理系统如何组织作业、管理作业和调度作业;

3、巩固相关的理论知识;

二、课程设计预备知识。

1、作业控制块的概念和结构;

2、作业的创建;

3、作业的调度算法;

4、c语言的相关知识。

三、课程设计内容要求。

1、编写程序完成批处理系统中的作业块的建立、初始化和调度;

2、要求采用响应比高优先的作业调度算法、短作业优先算法;

四、具体要求。

1、首先确定作业控制块的内容;

2、要求建立两个算法(调度)的子函数,并输出已分配作业的作业名;

3、要求在主函数中创建jcb内容,并输出已创建的作业信息;

4、要求设计菜单:可供用户进行选择,分别执行不同的调度;

5、尽量使用c语言中的window函数来实现;

源**:#include ""

typedef struct jcb

char name[4];

int length;

int printer;

int tape;

int runtime;

int waittime;

struct jcb *next;

jcb;jcb *head;

int tape,printer;

long memory;

shedule( )

float w,k;

jcb *p,*q,*s,*t;

dop=head;

s=null;

q=null;

k=0;while(p!=null)

if(p->length<=memory&&p->tape<=tape&&p->printer<=printer)

w=(float)(p->waittime)/p->runtime;

if(q==null||w>k)

k=w;q=p;

t=s;s=p;

p=p->next;

if(q!=null)

if(t==null)

head=head->next;

elset->next=q->next;

memory=memory-q->length;

tape=tape-q->tape;

printer=printer-q->printer;

printf("selects:%s",q->name);

while(q!=null);

inital()

int w,k;

jcb *p,*q,*s,*t;

dop=head;

s=null;

q=null;

k=0;while(p!=null)

if(p->length<=memory&&p->tape<=tape&&p->printer<=printer)

w=1/(p->runtime);

if(q==null||w>k)

k=w;q=p;

t=s;s=p;

p=p->next;

if(q!=null)

if(t==null)

head=head->next;

elset->next=q->next;

memory=memory-q->length;

tape=tape-q->tape;

printer=printer-q->printer;

printf("selects:%s",q->name);

while(q!=null);

main( )

int i;

int x ,n;

char name[4];

int size,tcount,pcount,wtime,rtime;

jcb *p;

memory=65536;

tape=4;

printer=2;

head=null;

printf(" please inputs the quantity of jcb...n");

scanf("%d",&n);

printfn");

for(i=0;iname,name);

p->length=size;

p->printer=pcount;

p->tape=tcount;

p->runtime=rtime;

p->waittime=wtime;

p->next=head;

head=p;}

printfn"

[1]_the response compares first the algorithm"

[2]_short work first algorithm"

n"please chose [1]or[2]..n");

scanf("%d",&x);

switch (x){

case 1:shedule();

printfn");

break;

case 2:inital();

printfn");

break;

default:printf(" error..please try again!");main();

输入作业名、作业大小、所需磁带机数、打印机数、等待时间、运行时间。

s1 400 2 1 1 4

s2 256 2 1 3 1

运行结果:采用高相应比算法调度的结果:为s2

采用高相应比算法调度的结果:为s1

please press any key to continue…

第二次执行程序:

输入作业名、作业大小、所需磁带机数、打印机数、等待时间、运行时间。

s1 226 1 1 3 5

s2 600 3 1 3 3

运行结果:采用短作业优先调度算法的执行结果:s2

采用短作业优先调度算法的执行结果:s1

please press any key to continue…

进程调度算法操作系统课程设计

操作系统原理。课程设计报告。题目 进程调度算法。班级 软件09 姓名 李宗仁 指导老师 张老师 进程调度算法。一 实验目的。通过优先权法与轮转调度算法的模拟加深对进程概念和进程调度过程的理解,掌握进程状态之间的切换,同时掌握进程调度算法的实现方法和技巧。二 实验内容。1 用c语言或c 语言来实现对n...

操作系统课程设计之进程调度

一 成绩评定表。二 任务书。三 计目的意义 设计内容 四 计方案 软硬件环境,开发工具或语言选择及思路 五 程序功能模块设计 程序功能模块划分及层次等 六 程序总控流程图。七 数据结构设计。八 程序 结构 函数调用关系或类层次关系 九 程序主要 分析。十 测试数据及测试结果。十一 设计过程中遇到的问...

操作系统模拟进程课程设计

本科实验课程报告。2016 至2017学年第 1 学期 课程名称 计算机组成原理。专业名称 计算机科学与技术 行政班级1410081 学号 141006125 姓名黄梦阳。指导教师李玉玲。报告时间 2016 年 12 月 4 日。实验一。实验地点实验日期成绩 1 实验目的。1 熟悉硬软件环境。2 学...