操作系统结课实验报告(8)

2019-04-23 12:39

以输入两个负数作为结束。

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 页 第


操作系统结课实验报告(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人防施工方案带图

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: