您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页实验三进程(作业)的调度

实验三进程(作业)的调度

来源:好走旅游网
计算机学院 201200824302 秦向红 操作系统实验报告

实验三 进程(作业)调度

一.实验目的

加深理解并模拟实现进程(作业)调度算法。

1)熟悉常用的进程调度算法,如FCFS、SPF、FPF、高响应比优先、时间片轮转; 2)结合所学的数据结构及编程知识,选择一种进程调度算法予以实现。

二.实验属性

该实验为设计性实验。

三.实验仪器设备及器材

普通PC386以上微机

四.实验设计

在这个实验中我选择了时间片轮转算法 算法的实现: oid RoundRobin() {

struct PCB *processes, *pt; //pt作为临时节点来创建链表

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\ printf(\"输入进程名:\"); scanf(\"%s\

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

第 1 页

计算机学院 201200824302 秦向红 操作系统实验报告

scanf(\"%d\ p->p_runTime = 0; p->p_state = 'W'; p->next = NULL; pt->next = p; pt = p;

printf(\"\\n\\n\"); }

getchar(); //接受回车

//processes作为头结点来存储链表 processes = processes->next; int cases = 0; while (1) {

++cases;

pt = processes;

printf(\"The execute number: %d\\n\\n\

printf(\"**** 当前正在运行的进程是:%s\\n\ pt->p_state = 'R';

printf(\"qname state super ndtime runtime\\n\"); printf(\"%s\%c\%d\%d\%d\\\n\\n\pt->p_name, pt->p_state, pt->p_priority, pt->p_needTime, pt->p_runTime);

pt->p_state = 'W'; pt->p_runTime++; pt->p_priority--;

printf(\"**** 当前就绪状态的队列为:\\n\\n\"); pt = pt->next; while (pt != NULL) {

printf(\"qname state super ndtime runtime\\n\");

printf(\"%s\%c\%d\%d\%d\\\n\\n\pt->p_name, pt->p_state, pt->p_priority, pt->p_needTime, pt->p_runTime);

pt = pt->next; }

//检测是否运行时间等于需要时间,是的话从队列里面删除,不是的话加到队列最尾部

pt = processes;

第 2 页

计算机学院 201200824302 秦向红 操作系统实验报告

if (pt->p_needTime == pt->p_runTime) {

pt->p_state = 'C'; pt = processes->next; processes = pt; } else {

if (pt ->next != NULL) {

//寻找最后一个节点

while (pt->next != NULL) pt = pt->next;

struct PCB* ptem;//临时节点用来帮助把头结点插到尾部 ptem = processes->next; pt->next = processes; processes->next = NULL; processes = ptem; } }

pt = processes; if (pt == NULL) break; getchar(); } }

五.实验结果

a. 进程创建:A、B、C、D、E:

第 3 页

计算机学院 201200824302 秦向红 操作系统实验报告

b. 第一个状态:

c. 第三个状态:

第 4 页

计算机学院 201200824302 秦向红 操作系统实验报告

d. 第四个状态:

e. 第五个状态

第 5 页

计算机学院 201200824302 秦向红 操作系统实验报告

......

f. 第十八个状态,结束:

第 6 页

计算机学院 201200824302 秦向红 操作系统实验报告

六. 实验心得

通过本次试验,我又进一步对于进程(作业)调度算法的深奥性有了进一步的了解,特别是通过程序对时间片轮转算法的设计与实现,我又进一步对该算法有了深刻的体会。在实验过程中,我对于该算法的原理做了进一步的查阅与研究,做了深刻的算法设计,让我学到了很多新的知识。

第 7 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务