处理机调度算法实验

一:处理机调度算法的实现

操作系统实验嘛,今学期刚做过~附上代码:

#include "stdi订.h"

#include

#include

#define getpch(type) (type*)malloc(sizeof(type))

#define NULL 0

struct pcb { /* 定义进程控制块PCB */

char name[10];

char state;

int super;

int ntime;

int rtime;

struct pcb* link;

}*ready=NULL,*p;

typedef struct pcb PCB;

void sort() /* 建立对进程进行优先级排列函数*/

{

PCB *first, *second;

int insert=0;

if((ready==NULL)||((p->super)>(ready->super))) /*优先级最大者,插入队首*/

{

p->link=ready;

ready=p;

}

else /* 进程比较优先级,插入适当的位置中*/

{

first=ready;

second=first->link;

while(second!=NULL)

{

if((p->super)>(second->super)) /*若插入进程比当前进程优先数大,*/

{ /*插入到当前进程前面*/

p->link=second;

first->link=p;

second=NULL;

insert=1;

}

else /* 插入进程优先数最低,则插入到队尾*/

{

first=first->link;

second=second->link;

}

}

if(insert==0) first->link=p;

}

}

void input() /* 建立进程控制块函数*/

{

int i,num;

system("cls"); /*清屏*/

printf("\n 请输入进程数: ");

scanf("%d",&num);

for(i=1;i<=num;i++)

{

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

p=getpch(PCB);

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

scanf("%s",p->name);

printf("\n 输入进程优先数:");

scanf("%d",&p->super);

printf("\n 输入进程运行时间:");

scanf("%d",&p->nt......余下全文>>

二:操作系统:实验四 处理机调度实验

实验四 处理机调度实验

一、单项选择题(共5题,每题10分,共50分)

1、在分时操作系统中,进程调度经常采用__C__算法。

A.先来先服务 B.最高优先权

C.时间片轮转 D.随机

2、下述的作用调度算法中,__D__调度算法是与作业估计的计算时间有关的。

A. 先来先服务 B.均衡

C.时间片轮转 D.响应比高者优先

3、一种既有利于短作业又兼顾长作业的作业调度算法是__D__算法。

A. 先来先服务 B.均衡

C.时间片轮转 D.响应比高者优先

4、用户通过终端使用计算机系统控制作业执行的方向称为_B___方式。

A.自动 B.联机俯C.脱机 D.假脱机

5、分时系统中的终端用户是使用_D___以交互方式请求系统联机服务的。

A.作业操作语言 B.程序设计语言

C.预输入命令 D.操作控制命令

二、填空题(共4题,每题5分,共20分)

1、在_先来先服务算法___调度算法中,按照进程进入就绪队列的先后次序来分配处理机。

2、进程调度算法采用等时间片轮转法时,时间片过大,就会使轮转法转化为_先来先服务调度算法___调度算法。

3、进程的调度方式有两种,一种是_剥夺式___,另一种是__非剥夺式__。

4、若使当前运行进程总是优先级最高的进程,应选择__可剥夺最高优先级优先__进程调度算法。

三、 简答题(共2题,每题15分,共30分) 1、设计作业调度程序时应该遵循哪些原则。

设计作业调度程序时,既要考虑用户的要求又要有利于系统效率的提高,故设计时应遵循的原则有:(1)公平性。对用户公平且使用户满意。(2)资源使用效率。尽可能使系统资源都处于忙碌状态,提高资源的利用率。(3)吞吐量。在单位时间内为尽可能多的作业服务,保证计算机系统的吞吐能力。

2、作业调度与进程调度之间的区别和关系是怎么样的。

作业调度是从输人井中选择作业装人主存储器;进程调度是从就绪进程队列中选择一个就绪进程,让它占用处理器。

作业调度选中一个作业后,按该作业的作业控制说明书中第一个作业步的要求创建该作业的第一个进程,进程状态为就绪并将其列人就绪队列中。然后,当进程调度选中该进程时则该进程就可占用处理器运行,该作业也就开始执行。每当一个作业步完成后,系统就根据下一个作业步的要求创建进程,直到作业执行结束。

所以,一个作业要执行的话必须经过两级调度,第一级为作业调度,第二级为进程调度。只有被作业调度选中的作业才有可能去占用处理器;只有被进程调度选中后作业进程才能真正地占用处理器。作业调度与进程调度相互配合才能保证作业的执行。

三:要设计一个按优先数调度算法实现处理机调度的程序,运行是成功了,但调度序列的结果怎么都显示不出来。

我也是醉了啊啊啊

四:操作系统中处理机调度算法有哪几种?

baike.baidu.com/...aglist懒得码字,lz自己看…… 查看原帖>>

五:求一个操作系统处理机调度先来先服务算法的代码,急,要C++的

题目要自己动手解决才比较好

扫一扫手机访问

发表评论