1.3.1 实现过程总结
1.3.2 程序安装使用手册 使用平台:VC++6.0
运行程序后根据提示信息输入作业相关数据。
1.4 结果分析与总结
1.4.1 结果分析 课内:
16 页 第
课外:
短作业算法只考虑到了作业的长度,不能适用于大部分情况;高响应比算法根据等待时间和执行时间的比值,兼顾了作业大小,能够比较公平的执行作业。 1.4.2 总结与建议
经过这次实验使我对作业的调度过程以及算法有了深刻的认识,作业调度是否合理需要考虑到方方面面,作业大小和响应比都只是其中的一部分,寻找做到真正有效率而且公平的利用资源的算法十分重要。
17 页 第
1.5 参考资料
实验指导书和课本
/********************************************************/
2 实验二 单处理机系统的进程调度
2.1 题目分析
2.1.1 设计目的
(1) 加深对进程概念的理解,明确进程和程序的区别。 (2) 深入了解系统如何组织进程,创建进程。 (3) 进一步认识如何实现处理机调度。 2.1.2 设计内容
编写程序完成单处理机系统的进程调度,要求采用时间片轮转调度算法。实验具体包括:首先确定进程控制块的内容和组织方式;然后完成进程创建原语和进程调度原语;最后编写主函数对所做工作进行测试。
2.1.3 相关知识概述
定义进程控制块结构用结构体实现,了解进程调度的算法本质。采取了时间片轮转法来实现对进程的控制,体统定义时间片,时间片一到,当前进程结束,调用另一个进程。
18 页 第
进程的概念:进程是程序的一次执行。进程的组织方式:利用进程控制块PCB记录各个进程执行时的情况。进程控制块包含标志信息,说明信息,现场信息和管理信息。进程的创建是申请进程控制块,申请资源,填写进程控制块,挂入就绪队列。 进程的调度:时间片轮转调度算法。
2.2 实验设计
2.2.1 基本设计思路
(1)申请进程控制块。进程控制块的数量是有限的,如果没有空闲进程控制块,则进程不能创建,如果申请成功才可以执行第二步。 (2)申请资源。除了进程控制块外,还需要有必要的资源才能创建进程,如果申请资源不成功,则不能创建进程,并且归还己申请的进程控制块;如果申请成功,则执行第三步, 实验无法申请资源,所以模拟程序忽略了申请资源这一步。
(3)填写进程控制块。将该进程信息写入进程控制块内,实验中只有进程标识符、进程状态可以填写,每个进程现场信息中的寄存器内容由于没有具体数据而使用进程(模拟进程创建时,需输入进程标识符字,进程标识符本应系统建立,并且是唯一的,输入时注意不要冲突),刚刚创建的进程应该为就绪态,然后转去执行第四步。 (4) 挂入就绪队列。如果原来就绪队列不为空,则将该进程控制块挂入就绪队列尾部, 并修改就绪队列尾部指针;如果原来就绪队列为空,则将就绪队列的头指针、尾指针均指向该进程控制块,进程创
19 页 第
建完成。
2.2.2 主要数据结构描述 第一,进程控制块结构 struct {
int name;//进程标志符 int status; //进程状态
int ax,bx,cx,dx;//进程现场信息,通用寄存器内容 int pc; //进程现场信息,程序计数器内容 int psw;//进程现场信息,程序状态寄存器内容 int next;//下一个进程控制块的位置 int time;//所需运行时间 int finished;
}pcbarea[n];//模拟进程控制块区域的数组 第二,进程队列 struct {
int head; int tail;
}ready;//定义就绪队列的头指针 head和尾指针 tail int pfree; //定义指向空闲进程控制块队列的指针
20 页 第
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库操作系统结课实验报告(4)在线全文阅读。
相关推荐: