以输入两个负数作为结束。
2.4 结果分析与总结
/****************课内:时间片轮转调度算法****************/
/*****************课外:优先数调度算法*****************/
36 页 第
2.4.1 结果分析
课内:首先输入进程编号和时间片大小,输入了3个进程,然后按输入顺序依次输出了每个进程的标识符(即编号),进程状态,寄存器内容以及还需要运行的时间(执行一轮时间减去5个单位)。最后显示了还需要运行的进程的数目。实验结果体现了一轮时间片轮转调度算法的执行过程。
课外:输入进程编号和进程优先级,输入了4个进程,优先级大的先执行,优先级一样的按照输入次序执行。 2.4.2 总结与建议
总结:本次试验要求对进程调度有深刻的理解。最重要的是进程的定义,进程队列以及进程的调度函数。为了体现时间片轮转调度算法的实质,在输入进程编号时要求同时输入进程所需的时间片大小。并加入了很多的计数变量来直观体现过程。
建议:时间片轮转算法还可以再多运行几轮直至结束。
2.5 参考资料
实验指导书和课本
/*******************************************************/
37 页 第
3 实验三 虚拟存储管理
3.1 题目分析
3.1.1 设计目的
了解采用可变分区存储管理方式的内存分配回收的实现。 3.1.2 设计内容
编写程序完成可变分区存储管理方式的内存分配回收。实验具体包括:首先确定内存空间分配表;然后采用最优适应算法完成内存空间的分配和回收;最后编写主函数对所做工作进行测试。 3.1.3 相关知识概述
可变分区管理方式预先不将内存划分成几个区域,而将内存除操作系统占用区域外的空间看作一个大的空闲区。当作业要求装入内存时,根据作业需要内存空间的大小査询内存内各个空闲区,当从内存空间中找到一个大于或等于该作业大小的内存空闲区时,选择其中一个空闲区,按作业需求量划出一个分区装入该作业。作业执行完后,它所占的内存分区被收回,成为一个空闲区。如果该空闲区的相邻分区也是空闲区,则需要将相邻空闲区合并成一个空闲区。
3.2 实验设计
3.2.1 基本设计思路
38 页 第
实现可变分区的分配和回收,主要考虑的问题有三个:第一,设计记录内存使用情况的数据表格,用来记录空闲区和作业占用的区域;第二,在设计的数据表格基础上设计内存分配算法;第三,在设计的数据表格基础上设计内存回收算法。
39 页 第
3.2.2 主要数据结构描述 已分配区表的定义:
#define n 10 //假定系统允许的最大作业数量为n struct {
float address; //已分分区起始地址 float length; //已分分区长度,单位为字节 int flag
//已分分区表登记栏标志,\表示空栏目,实验中只支持一个字符的作业名
}used_table[n] //已分分区表 空闲区表的定义:
#define m 10//假定系统允许的空闲区表最大为m struct
{ float address; //空闲区起始地址 float length; //空闲区长度,单位为字节 int flag;
//空闲区表登记栏标志,用\,表示空栏目,用\表示未分配 }free_table[m]; //空闲区表 3.2.3 主要算法描述
在本次实验中,首先建立一张空闲区表,初始状态只有一个空闲
40 页 第
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库操作系统结课实验报告(8)在线全文阅读。
相关推荐: