欢迎来到天天文库
浏览记录
ID:47494012
大小:101.51 KB
页数:15页
时间:2020-01-12
《操作系统课程设计报告-主存空间的分配与回收》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、操作系统课程设计报告学院:计算机科学与技术学院专业:软件工程班级:软件***班姓名****学号********实验组***实验时间指导教师*****成绩实验项目名称主存空间的分配与回收实验目的通过该课程设计使我们理解在不同的存储管理方式下,如何实现主存空间的分配与回收。使学生初步具有研究、设计、编制和调试操作系统模块的能力实验内容及要求设计要求:1.设计基于空闲区说明表的可变分区分配与回收算法;2.或设计基于空闲区链表的可变分区分配与回收算法;3.画出以上算法流程图;4.编程实现算法功能;5.编写课程设计说明书。工作量要求:完成以上设计要求中的所有算法功能。实验
2、环境硬件环境:Windows7系统软件环境:VC++6.0开发工具总体设计本次课程设计中主要是模拟主存分配与回收,考虑到一个进程的五个状态,初始,就绪,等待,执行,终止五个状态,所以决定从一个进程的运行过程进行模拟,总体流程大致是首先创建一个进程即填写PCB信息,然后将进程送到后备集合,然后从后备集合从取出一个进程进行是分配。如果能分配,就将其送入就绪集合,然后从就绪集合中取出一个进程运行一个时间片(即一秒钟),接着将该进程送入就绪集合,如果运行时间减为零,就不送入就绪集合中。考虑到实际的需要,我添加了一个挂起状态,还添加了一个撤销进程函数,一个强制回收函数。在
3、本次设计中用多线程模拟多进程,所以各个共享表都应该设置为线程安全的。程序框图及流程图程序框图:程序流程图:主要源代码及注释#include#include#include#defineOK1#defineERROR0typedefintStatus;typedefstructnode//定义一个空闲区说明表结构{intnum;//分区序号longstart;//起始地址longlength;//分区大小intstate;//分区状态chartag[20];//作业名称}job;typedefstructN
4、ode//线性表的双向链表存储结构{jobdata;structNode*prior;//前趋指针structNode*next;//后继指针}Node,*LinkList;LinkListfirst;//头结点LinkListend;//尾结点intflag;//记录要删除的分区序号StatusInitblock()//开创带头结点的内存空间链表{first=(LinkList)malloc(sizeof(Node));end=(LinkList)malloc(sizeof(Node));first->prior=NULL;first->next=end;en
5、d->prior=first;end->next=NULL;end->data.num=1;end->data.start=0;end->data.length=600;end->data.state=0;strcpy(end->data.tag,"无作业");returnOK;}voidsort()//分区序号重新排序{Node*p=first->next,*q;q=p->next;for(;p!=NULL;p=p->next){for(q=p->next;q;q=q->next){if(p->data.num>=q->data.num){q->data.nu
6、m+=1;}}}}//显示主存分配情况voidshow(){intflag=0;//用来记录分区序号Node*p=first;p->data.num=0;p->data.start=0;p->data.length=0;p->data.state=1;strcpy(p->data.tag,"");sort();printf("tt》主存空间分配情况《");printf("**********************************************************");printf("分区序号t作业名tt起始地址
7、t分区大小t分区状态");p=p->next;while(p){printf("%dtt%stt%dtt%d",p->data.num,p->data.tag,p->data.start,p->data.length);if(p->data.state==0)printf("tt空闲");elseprintf("tt已分配");p=p->next;}printf("**********************************************************");}//首次适应算法Sta
8、tusFirst_fit
此文档下载收益归作者所有