当前位置:文档之家› 操作系统课程设计六种算法

操作系统课程设计六种算法

操作系统课程设计六种算法
操作系统课程设计六种算法

《计算机操作系统》

学号:1367003270

班级:软技4班

姓名:张靖伟

目录

1 实验:进程调度算法——时间片轮转算法

2 实验:银行家算法

3 实验:分区分配算法——和

4 实验:页面置换算法——和

5 实验:磁盘调度算法——和

1实验:进程调度算法——时间片轮转算法1.实验设计说明

用时间片轮转算法模拟单处理机调度。

(1)建立一个进程控制块来代表。包括:进程名、到达时间、运行时间和进程后的状态。

进程状态分为就绪(R)和删除(C)。

(2)为每个进程任意确定一个要求运行时间和到达时间。

(3)按照进程到达的先后顺序排成一个队列。再设一个指针指向队首和队尾。(4)执行处理机调度时,开始选择对首的第一个进程运行。

(5)执行: a)输出当前运行进程的名字;

b)运行时间减去时间片的大小。

(6)进程执行一次后,若该进程的剩余运行时间为零,则删除队首,并将该进程的状态置为C;若不为空,则将向后找位置插入。继续在运行队首的进程。

(7)若进程队列不空,则重复上述的(5)和(6)步骤直到所有进程都运行完为止。

2.实验代码

/*****************时间片轮转调度算法*******************/

<>

<>

<>

N 10

0;

;

/*进程控制块定义*/

{

[N]; /*进程名*/

; /*服务时间*/

; /*到达时间*/

; /*进程状态*/

**连接指针*/

};

*后备队列定义*/

{

*,*;

};

*就绪队列定义*/

{

*,*;

};

*()/*创建*/

{

s[N];

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

("");

("请输入进程服务时间(/秒):\n");

t;

("");

*(*)(());

(>);

>;

("请输入进程到达时间(/秒):\n");

("");

>;

>'R';

>;

();

p;

}

*(*p)/*复制一个进程*/

{

()

;

*(*)(());

(>>);

>;

>>;

>>;

>>;

s;

}

*(**)/*得到队列中下一个进程*/ {

*>;

()

;

((>>))

>;

>;

}

(**S)/*释放申请的空间*/

{

*>>;

(p)

{

(>);

>;

}

>>;

();

(S);

}

*(*)/*创建后备队列*/

{

*();

(>)

>;

>>;

>;

;

}

(*s1)/*判断运行是否结束*/ {

(11->)

;

(s1->1->)

(s1->>'C')

;

;

*1->;

(1->(>'C'))

>;

(1->)

;

}

*(*s)/*在中运行*/ {

(>)

{

;

;

}

("\\t">);

>>;

;

(>><=0)

{

*>;

>>'C';

("\n">>);

>>;

(p);

(>)

{

>;

;

;

}

;

}

*>;

>>;

(>)

{

>;

;

}

>;

;

}

(**2**c)/*创建就绪队列*/ {

0;

(2->)

()

{

(c)

{

2->;

>;

2->;

1;

}

2->2->;

1;

}

(2->2->)

{

{

(2->>)

(0<2->>);

*;

1;

}

(c)

{

2->>;

2->;

}

}

{

(c)

{

(>)

{

;

1;

}

2->>;

2->;

}

}

()

{

2->>;

}

1;

}

()

{

*1=(*)(());

1->1->;

*2=(*)(());

2->2->;

;

0;

;

{

("要创建进程吗():");

((())'y''Y')

{

1(1);

;

}

('n''N')

;

1;

}(1);

*(1->);

*;

2->2->(1->);

("时刻\t进程名\t状态\n");

相关主题
文本预览
相关文档 最新文档