衡阳师范学院。
工科课程设计 -《操作系统》
学号: 07190132 07190120 07190108 07190107
姓名: 王果刘芳麟何超英高超。
班级: 0701
指导教师: 陈琼。
日期: 2009 年 12 月。
目录。一、概述 3
1、设计目的 3
2、开发环境 3
3、任务分配 3
二、需求分析 4
1、可变分区存储管理之最优适应分配算法的概念: 4
2、关于最优适应分配算法的一些基本原理: 4
三、数据结构设计 8
四、算法的实现 9
1、源程序清单 13
2、测试用例 13
3、程序截图 13
五、总结 21
心得与体会: 21
六、参考文献 23
1)了解多道程序系统中,多个进程并发执行的内存资源分配。
2)模拟可变分区存储管理算法实现分区管理的最优适应分配算法。
3)通过实现最优算法来进一步了解动态分区模式的优缺点。
4)掌握最优适应分配算法,深刻了解各进程在内存中的具体分配策略。
1. pc机。
2. dos;windows环境。
3. visual c++6.0 for windows
克服固定分区中的主存资源的浪费,有利于多道程序设计,提高主存资源的利用率。
分区存储管理是给内存中的进程划分适当大小的存储区,以连续存储各进程的程序和数据,使各进程能并发地执行。最优适应分配算法扫描整个未分配区表或链表,从空闲区中挑选一个能满足用户进程要求的最小分区进行分配。
三、数据结构设计:
1(1)内存块。
struct space定义内存空间结构体。
long startaddress;
long length;
struct space *next;
space *pbc
2)作业块。
struct work定义进程结构体。
char name[20];
long startaddress;
long length;
struct work *next;
work *s;
2.设计流程图。
四、算法的实现。
1.程序清单。
#include <>
#include<>
#include <>
struct space定义内存空间结构体。
long startaddress;
long length;
struct space *next;
space *pbc申明结构体指针。
struct work定义进程结构体。
char name[20];
long startaddress;
long length;
struct work *next;
work *s申明结构体指针。
void callback(work *r申明callback()函数原型。
void display(space *pbc申明display()函数原型。
void display(work *s);
void allocate内存分配函数实现。
work *q,*w;
q=new work申请分配用于存放work类型的数据的内存空间。
cout<<"请输入进程名和占用空间大小:"
if(q->length<=0判断输入进程的合法性。
w=s;while(w->next!=null进程链不为空。
if(w->next==null进程名不存在,继续进行内存分配。
else找到第一个满足要求的空闲块。
q->startaddress=p->next->startaddress将该空闲块的起始地址赋给所输入的进程。
q->next=s->next
s->next=q将所输入的进程插入work链首。
操作系统课程设计
课程设计 河北大学工商学院。装。订。线。操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专 操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专业计算机类 学号 姓名。指导教师。年 6 月 24 日。设备管理 2 2.1设计任务2 2.2设计要求...
操作系统课程设计
银行家算法模拟。系别 班级 组员 银行家算法模拟。1.课程设计目的。通过本次课程设计,加深对最经典的避免死锁的银行家算法的理解,掌握死锁形成必要条件 安全状态等概念的理解,通过用c语言编程模拟该算法,并在windows平台上实现,更好地掌握操作系统的原理及实现方法。2.任务及要求。设n为系统进程的个...
操作系统课程设计
学生实习实训报告。实习类型 操作系统课程设计 学号 0901110005 学生姓名 田兴杰 指导教师 曹春梅 专业班级 信息安全技术0901班 院 部 电子信息系 2011年 1 月 7日。实习实训成绩评定表。目录。目录3 摘要4关键字4 1.1虚拟机简介5 1.1.1 一般意义的虚拟机5 1.1....