当前位置:文档之家› 存储器管理实验报告

存储器管理实验报告

存储器管理实验报告
存储器管理实验报告

操作系统实验报告

存储器管理

学院电信学院

专业计算机科学与技术

班级14级计科一班

实验题目动态分区分配

实验组别第三组

指导老师曹华

一、实验目的

了解动态分区分配方式中使用的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解。

二、实验内容

用C语言分别实现采用首次适应算法和最佳适应算法的动态分区分配过程alloc()和回收过程free()。其中,空闲分区通过分区链来管理,在进行内存分配时,系统优先使用空闲区低端的空间。

请分别用首次适应算法和最佳适应算法进行内存块的分配和回收,要求每次分配和回收后显示出空闲内存分区链的情况。

三、实验主要仪器设备

软件环境:VC++6编程环境

四、实验原理及设计方案

1.实验原理:

可变分区调度算法有:最先适应分配算法,循环首次适应算法,最佳适应算法,最坏适应算法。

首次适应算法(First-fit):当要分配内存空间时,就查表,在各空闲区中查找满足大小要求的可用块。只要找到第一个足以满足要求的空闲块就停止查找,并把它分配出去;

如果该空闲空间与所需空间大小一样,则从空闲表中取消该项;如果还有剩余,则余下的部分仍留在空闲表中,但应修改区分大小和分区始址。

用户提出内存空间的申请:系统根据申请者的要求,按照一定的分配策略分析内存空间的使用情况,找出能满足请求的空闲区,分给申请者;当程序执行完毕或主动归还内存资源时,系统要收回它所占用的内存空间或它归还的部分内存空间。

最佳适应算法(Best-fit):当要分配内存空间时,就查找空闲表中满足要求的空闲块,并使得剩余块是最小的。然后把它分配出去,若大小恰好合适,则直按分配;若有剩余块,则仍保留该余下的空闲分区,并修改分区大小的起始地址。

内存回收:将释放作业所在内存块的状态改为空闲状态,删除其作业名,设置为空,并判断该空闲块是否与其他空闲块相连,若释放的内存空间与空闲块相连时,则合并为同一个空闲块,同时修改分区大小及起始地址。

每当一个进程被创建时,内存分配程序首先要查找空闲内存分区链,从中寻找一个合适的空闲块进行划分,并修改空闲内存分区链,系统根据回收区的首址,从空闲区链中找到相应的插入点,此时出现如下四种情况:

(1)回收区与插入点的前一个空闲区F1相邻接,此时可将回收区直接与F1合并,并修改F1的大小;

(2)回收区与插入点的后一个空闲分区F2相邻接,此时可将回收区直接与F2合并,并用回收区的首址作为新空闲区的首址,大小为二者之和;

(3)回收区同时与插入点的前后两个空闲分区邻接,此时需将三者合并;

(4)回收区不与任何一个空闲区邻接,此时应建一新的表项

2.主要数据结构的说明

定义一个空闲区说明表结构

structfreearea {

int ID; //分区号

long size; //分区大小

long address; //分区地址

int state; //状态

}ElemType;

线性表的双向链表存储结构

StructDuLNode//double linked list

{

ElemType data;

structDuLNode *prior; //前趋指针

structDuLNode *next; //后继指针

}DuLNode,*DuLinkList;

算法;

首次适应算法:是在分配内存时,从链首开始顺序查找,直到找到一个大小能够满足要求的分区,即进行分配。

最佳适应算法:是在分配内存时,从链首开始顺序查表,查找到链尾,并记录一个大小不小于要求的分区的最小分区,在查找完毕后进行分配。

3.程序流程图

首次适应算法

最佳适应算法

4.实验程序首次适应算法

#include #include #include #include #define N 10000 int n1;//空闲分区的个数int n2;//作业区的个数structkongxian

{

int start; //起址

int end; //结束

int length; //长度

}kongxian[N];

structzuoye

{

int start; //起址

int end; //结束

int length; //长度

}zuoye[N];

int cmp1(const void *a,const void *b)

{

return (*(structkongxian *)a).start-(*(structkongxian *)b).start;

}

int cmp2(const void *a,const void *b)

{

return (*(structzuoye *)a).start-(*(structzuoye *)b).start;

}

voidinit()

{

n1=1; //初始时只有一个空闲区

n2=0; //初始没有作业

kongxian[0].start=0;

kongxian[0].end=1023;

kongxian[0].length=1024;

}

void print1() //打印空闲分区

{

int i;

for(i=0;i

printf("空闲分区ID:%d 起止:%d 结束:%d 长度:%d\n",i,kongxian[i].start,kongxian[i].end,k ongxian[i].length);

}

void print2() //打印作业分区

{

int i;

for(i=0;i

printf("作业分区ID:%d 起止:%d 结束:%d 长度:%d\n",i,zuoye[i].start,zuoye[i].end,zuoye[i] .length);

}

int main()

{

inti,j,t,len,flag,id;

intfront,middle, behind;

int t1,t2;

init();

print1();

printf("输入1装入新作业,输入0回收作业,输入-1结束\n");

while(scanf("%d",&t)!=EOF)

{

if(t==1) //装入新作业

{

printf("请输入作业的占用空间的长度");

scanf("%d",&len);

flag=0;

for(i=0;i

{

if(kongxian[i].length>=len) //首次适应算法

{

flag=1;

break;

}

}

if(!flag)

{

printf("内存分配失败\n");

}

else

{

zuoye[n2].start=kongxian[i].sta

rt;zuoye[n2].end=zuoye[n2].start+l

en; zuoye[n2].length=len;

n2++; //作业数加1

if(kongxian[i].length==len) //该分区全部用于分配,删除该空闲分区

{

for(j=i;j

{

kongxian[j].start=kongxian[j+1].start; kongxian[j].end=kongxian[j+1].end; kongxian[j].length=kongxian[j+1].length;

}

n1--;

}

else //该空闲分区部分用于分配,剩余的留在空闲分区中

{

kongxian[i].start+=len;

kongxian[i].length-=len;

}

}

}

else if(t==0)

{

printf("输入要回收的作业ID ");

scanf("%d",&id);

front=middle=behind=0;

for(i=0;i

{

if(kongxian[i].start>zuoye[id].end)

break;

if(kongxian[i].end==zuoye[id].start) //待回收的作业上面有空闲分区

{

front=1;

t1=i;

}

if(kongxian[i].start>zuoye[id].end)

{

behind=1;

t2=i;

}

}

if(!front&&!behind)

{

kongxian[n1].start=zuoye[id].start;

kongxian[n1].end=zuoye[id].end;

kongxian[n1].length=zuoye[id].length;

n1++;

qsort(kongxian,n1,sizeof(structkong xian),cmp1);

for(j=id;j

{

zuoye[j].start=kongxian[j+1].start;

zuoye[j].end=zuoye[j+1].end; zuoye[j].length=zuoye[j+1].length;

}

n2--;

}

if(front&&behind)

middle=1;

if(front&&!behind)

{

kongxian[t1].end+=zuoye[id].length;

kongxian[t1].length+=zuoye[id].length;

for(j=id;j

{

zuoye[j].start=zuoye[j+1].start;

zuoye[j].end=zuoye[j+1].end;

zuoye[j].length=zuoye[j+1].length;

}

n2--;

}

if(middle)

{

kongxian[t1].end=kongxian[t2].end;

kongxian[t1].length+=(zuoye[id].length+ko ngxian[t2].length);

for(j=t2;j

{

kongxian[j].start=kongxian[j+1].start; kongxian[j].end=kongxian[j+1].end;

kongxian[j].length=kongxian[j+1].length;

}

n1--;

for(j=id;j

{

zuoye[j].start=kongxian[j+1].start;

zuoye[j].end=zuoye[j+1].end;

zuoye[j].length=zuoye[j+1].length;

}

n2--;

}

if(front&&!behind)

{

kongxian[t1].end-=zuoye[id].length;

kongxian[t1].length+=zuoye[id].length;

for(j=id;j

{

zuoye[j].start=zuoye[j+1].start; zuoye[j].end=zuoye[j+1].end; zuoye[j].length=zuoye[j+1].length;

}

n2--;

}

}

else

{

printf("操作结束\n");

break;

}

print1();

print2();

}

return 0;

}

最佳适应算法

#include

#include

#include

#include

structkongkuai

{ intstartaddr;

int size;

int flag;

}kongxq[6]={{10,30,1},{100,60,1},{200,80,1},{3 00,60,1},{400,180,1},{700,200,1}};

int allocate(intjobsize)

{

int i;

int t=0;

for(i=0;i<6;i++)

if(kongxq[i].flag==1&&kongxq[i].size>job size)

{

kongxq[i].startaddr+=jobsize;

kongxq[i].size-=jobsize;

t=1;

returnkongxq[i].startaddr-jobsize;

}

else

if(kongxq[i].flag==1&&kongxq[i].size==jo bsize)

{

kongxq[i].flag=0;

t=1;

returnkongxq[i].startaddr;

}

if(t==0)

return 0;

return 1;

}

void circle()

{

inti,j;

structkongkuai temp;

for(i=0;i<6;i++)

for(j=0;j<6;j++)

if(kongxq[j].size>kongxq[j+1].size)

{

temp.startaddr=kongxq[j].startaddr;

temp.size=kongxq[j].size;

temp.flag=kongxq[j].flag;

kongxq[j].startaddr=kongxq[j+1].startadd r;

kongxq[j].size=kongxq[j+1].size;

kongxq[j].flag=kongxq[j+1].flag;

kongxq[j+1].startaddr=temp.startaddr;

kongxq[j+1].size=temp.size;

kongxq[j+1].flag=temp.flag;

}

for(i=0;i<6;i++)

for(j=0;j<6;j++)

if(kongxq[j].flag==0&&kongxq[j+1].flag== 1)

{

temp.startaddr=kongxq[j].startaddr;

temp.size=kongxq[j].size;

temp.flag=kongxq[j].flag;

kongxq[j].startaddr=kongxq[j+1].startadd r;

kongxq[j].size=kongxq[j+1].size;

kongxq[j].flag=kongxq[j+1].flag;

kongxq[j+1].startaddr=temp.startaddr;

kongxq[j+1].size=temp.size;

kongxq[j+1].flag=temp.flag;

}

}

void callback()

{

int s,len,t1=0,t2=0,t3=0,i,j;

printf("请输入回收区的起始地址:\n");

scanf("%d",&s);

printf("请输入回收区的大小:\n");

scanf("%d",&len);

for(i=0;i<6;i++)

{

if((kongxq[i].startaddr==s+len)&&(kongxq[i].fl ag==1))

{

len+=kongxq[i].size;

t1=1;

for(j=0;j<6;j++)

if((kongxq[j].startaddr+kongxq[j].size==s) &&(kongxq[j].flag==1))

{

kongxq[i].flag=0;

kongxq[j].size=kongxq[j+1].size+len;

t2=1;

break;

}

if(t2==0)

{

kongxq[i].startaddr=s;

kongxq[i].size=len;

break;

}

}

}

if(t1==0)

{

for(i=0;i<6;i++)

{

if((kongxq[i].startaddr+kongxq[i].size==s) &&(kongxq[i].flag==1))

{

kongxq[i].size+=len;

t3=1;

break;

}

if(t3==0)

for(j=0;j<6;j++)

if(kongxq[j].flag==0)

{

kongxq[j].startaddr=s;

kongxq[j].size=len;

kongxq[j].flag=1;

break;

}

}

}

}

void print()

{

int i;

printf("\n 起始地址| 大小|是否空闲\n\n");

for(i=0;i<6;i++)

{

printf(" %3d | %3d | %3d \n",

kongxq[i].startaddr,kongxq[i].size,kongxq [i].flag);

}

printf("\n");

}

main()

{

intjobsize,start;

char end;

printf("\n是否有作业请求空闲区?Y or N:");

while(end=getchar()=='y')

{

printf("初始空闲区状态:\n");

circle();

print();

printf("请输入请求空闲区的作业大小:");

scanf("%d",&jobsize);

start=allocate(jobsize);

circle();

printf("分配后空闲区状态:\n");

print();

if(!start)

printf("没有适合的空闲区大小!\n");

else

printf("作业起始地址: %d\n",start);

printf("作业大小: %d\n",jobsize);

callback();

print();

printf("是否有其他作业的请求? Y or N:");

end=getchar();

}

return 0;

}

五、算法及运行结果及分析

1.运行结果:

首次适应算法

最佳适应算法

2.实验总结:

通过运行内存分配和回收模拟的程序对内存管理理解加深了,在动态分区管理方式中,能灵活地根据作业需要,动态地为之分配内存空间,其中关键是分区分配算法,一旦内存块使用完毕,可以回收给系统以分配给其他的作业使用。

物流与供应链管理上机实验报告

《物流与供应链管理》 实验名称:系统管理 实验目的:了解用友ERP-U8管理软件的系统管理基本操作 实验内容:1.增加操作员;2.建立核算单位帐套;3.对操作员进行授权;4.启用供应链及其相关子系统;5.帐套备份 1.建立部门档案和职员档案、建立供应商分类和供应商档案、建立客户分类和客户档案。 (1)在“企业门户”中,单击“基础信息”,双击“基础档案”︳“部门档案”,打开“部门档案”窗口,按实验资料输入部门信息 (2)建立职员档案。在“企业门户”中,单击“基础信息”,双击“基础档案”︳“职员档案”,打开“职员档案”窗口,按资料录入职员信息。

(3)建立供应商分类和供应商档案。 在“企业门户”中,双击“基础信息”︳“基础档案”︳“供应商分类”,进入“供应商分类”窗口,按实验资料录入供应商分类信息。 在“企业门户”中,单击“基础信息”,双击“基础档案”︳“供应商档案”,打开“供应商档案”窗口。 按实验资料输入供应商信息。

(4)建立客户分类和客户档案。 在“企业门户”中,双击“基础信息”︳“基础档案”︳“客户分类”,进入“客户分类”窗口,按实验资料输入客户分类信息。如图 在“企业门户”中,单击“基础信息”,双击“基础档案”︳“客户档案”,打开“客户档案”窗口。窗口分为左右两部分,左窗口显示已经设置的客户分类,单击鼠标选中某以客户分类,右窗口中显示该分类所有客户的列表。 单击“增加”按钮,打开“增加客户档案”窗口。窗口中包括四个页签,即“基本”,“联系”,“信用”,“其他”。对客户不同的属性分别分类。

按实验资料输入客户信息。 2.设置付款条件。 在“企业门户”中,单击“基础信息”,双击“基础档案”︳“付款条件”,进入“付款条件”窗口。按实验资料输入全部付款条件。 3.建立存货分类、计量单位和存货档案。 (1)存货分类。在“企业门户”中,单击“基础信息”,双击“基础档案”︳“存货分类”,打开“存货分类”窗口。按实验资料输入存货分类信息。

四川大学 操作系统上机实验 实验五 Windows虚拟存储器管理

实验报告 实验名称:Windows虚拟存储器管理 实验时间:2013年5月27日 实验人员:____郑笑凡___(姓名)__1143041243__(学号)____2011____(年级) 实验目的:1、了解Windows 2000/XP的内存管理机制,掌握页式虚拟存储技术。 2、理解内存分配原理,特别是以页面为单位的虚拟内存分配方法。 3、学会使用Windows 2000/XP下内存管理的基本API函数 实验环境:windows xp 实验步骤: 1、下载virtumem.cpp; 2、建立工程,将virtumen.cpp加入; 3、编译工程,观察结果,确信六种状态都出现至少一次,必要时可改程 序,方便观察结果; 4、看懂程序,按要求另写一段小程序; 5、编译,执行,观察结果。 6,总结。 实验陈述: 1、基础知识: pagefile.sys文件的位置在:__安装的系统盘根目录下____________________________________此文件的作用:____实现物理内存的扩展__________________________________________________ 改变此文件大小的方法:右击”我的电脑”,依次选择”属性”—“高级”—“性能选项”— “更改”_______________________________________ 虚拟地址空间中的页面分为:提交页面,保留页面,空闲页面 页面的操作可以分为:保留、提交、回收、释放、加锁 2、编程准备. 页面属性是在结构体MEMORY_BASIC_INFORMATION_的字段AllocationProtect 和字段中Protect体现出来的。 简述VirtualFree,VirtualPtotect,VirtualLock,VirtualUnlock,VirtualQuery的作用:_ VirtualFree:__释放虚存___________________________________________________ VirtualPtotect:_保留虚存_________________________________________________ VirtualLock:___加锁虚存_________________________________________________ VirtualUnlock:_解锁虚存________________________________________________ VirtualQuery:____查询虚存_______________________________________________ 3、编程 1)将virtumem.cpp加入工程,编译,执行。 是否能编译成功?是 请描述运行结果:

虚拟存储器管理 页面置换算法模拟实验

淮海工学院计算机工程学院实验报告书 课程名:《操作系统原理A 》 题目:虚拟存储器管理 页面置换算法模拟实验 班级:软件*** 学号:20**1228** 姓名:****

一、实验目的与要求 1.目的: 请求页式虚存管理是常用的虚拟存储管理方案之一。通过请求页式虚存管理中对页面置换算法的模拟,有助于理解虚拟存储技术的特点,并加深对请求页式虚存管理的页面调度算法的理解。 2.要求: 本实验要求使用C语言编程模拟一个拥有若干个虚页的进程在给定的若干个实页中运行、并在缺页中断发生时分别使用FIFO和LRU算法进行页面置换的情形。其中虚页的个数可以事先给定(例如10个),对这些虚页访问的页地址流(其长度可以事先给定,例如20次虚页访问)可以由程序随机产生,也可以事先保存在文件中。要求程序运行时屏幕能显示出置换过程中的状态信息并输出访问结束时的页面命中率。程序应允许通过为该进程分配不同的实页数,来比较两种置换算法的稳定性。 二、实验说明 1.设计中虚页和实页的表示 本设计利用C语言的结构体来描述虚页和实页的结构。 在虚页结构中,pn代表虚页号,因为共10个虚页,所以pn的取值范围是0—9。pfn代表实 页号,当一虚页未装入实页时,此项值为-1;当该虚页已装入某一实页时,此项值为所装入的实页 的实页号pfn。time项在FIFO算法中不使用,在LRU中用来存放对该虚页的最近访问时间。 在实页结构中中,pn代表虚页号,表示pn所代表的虚页目前正放在此实页中。pfn代表实页号, 取值范围(0—n-1)由动态指派的实页数n所决定。next是一个指向实页结构体的指针,用于多个实页以链表形式组织起来,关于实页链表的组织详见下面第4点。 2.关于缺页次数的统计 为计算命中率,需要统计在20次的虚页访问中命中的次数。为此,程序应设置一个计数器count,来统计虚页命中发生的次数。每当所访问的虚页的pfn项值不为-1,表示此虚页已被装入某实页内,此虚页被命中,count加1。最终命中率=count/20*100%。 3.LRU算法中“最近最久未用”页面的确定

存储管理实验报告

实验三、存储管理 一、实验目的: ? 一个好的计算机系统不仅要有一个足够容量的、存取速度高的、稳定可靠的主存储器,而且要能合理地分配和使用这些存储空间。当用户提出申请存储器空间时,存储管理必须根据申请者的要求,按一定的策略分析主存空间的使用情况,找出足够的空闲区域分配给申请者。当作业撤离或主动归还主存资源时,则存储管理要收回作业占用的主存空间或归还部分主存空间。主存的分配和回收的实现虽与主存储器的管理方式有关的,通过本实验理解在不同的存储管理方式下应怎样实现主存空间的分配和回收。 在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种办法扩充的主存储器称为虚拟存储器。通过本实验理解在分页式存储管理中怎样实现虚拟存储器。 在本实验中,通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。熟悉虚存管理的各种页面淘汰算法通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。 二、实验题目: 设计一个可变式分区分配的存储管理方案。并模拟实现分区的分配和回收过程。 对分区的管理法可以是下面三种算法之一:(任选一种算法实现) 首次适应算法 循环首次适应算法 最佳适应算法 三.实验源程序文件名:cunchuguanli.c

执行文件名:cunchuguanli.exe 四、实验分析: 1)本实验采用可变分区管理,使用首次适应算法实现主存的分配和回收 1、可变分区管理是指在处理作业过程中建立分区,使分区大小正好适合作业的需求,并 且分区个数是可以调整的。当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入,作业等待。随着作业的装入、完成,主存空间被分成许多大大小小的分区,有的分区被作业占用,而有的分区是空闲的。 为了说明那些分区是空闲的,可以用来装入新作业,必须有一张空闲说明表 ? 空闲区说明表格式如下:? 第一栏 第二栏 其中,起址——指出一个空闲区的主存起始地址,长度指出空闲区的大小。 长度——指出从起始地址开始的一个连续空闲的长度。 状态——有两种状态,一种是“未分配”状态,指出对应的由起址指出的某个长度的区域是空闲区;另一种是“空表目”状态,表示表中对应的登记项目是空白(无效),可用来登记新的空闲区(例如,作业完成后,它所占的区域就成了空闲区,应找一个“空表目”栏登记归还区的起址和长度且修改状态)。由于分区的个数不定,所以空闲区说明表中应有适量的状态为“空表目”的登记栏目,否则造成表格“溢出”无法登记。 2、当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区。 有时找到的空闲区可能大于作业需要量,这时应把原来的空闲区变成两部分:一部分分

数据库-职业介绍信息管理系统实验报告

职业介绍信息管理系统小组成员:20124070559

20124070562 1.问题描述 课程设计题目:职业介绍信息管理系统 实现职业分类、职业信息管理(职业号、职业类型号、用人单位、需求人数、已聘人数、备注); 实现用人单位、求职者信息管理,求职者信息设有聘用标志默认值为未聘用; 实现求职者和职业匹配管理(职业号、求职人员编号); 实现费用管理,包括用人单位交费情况、求职人员交费情况; 创建触发器,求职成功时,自动修改相应职业的已聘人数和相应

职工的聘用标志为‘聘用成功’; 另外如果相应职业的已聘人数不得超过需求人数 创建存储过程查询各种职业的需求数和已聘用数; 创建规则限制求职者的性别,必须为‘男’或‘女’; 建立数据库相关表之间的参照完整性约束。 2.需求分析 需求分析中我们结合现实中职业信息管理系统要处理的对象,充分了解原系统工作概况明确用户的要求,然后在此基础上确定新系统的功能。确定系统必须完成哪些工作,也就是对系统提出完整、准确、清晰、具体的要求。需求分析的结果是系统开发的基础。经资料调查发现,职业介绍信息管理系统应具备的职能有:求职者和用人单位的基本信息、收费信息,中介人员信息登记,求职者与用人单位可以发布求职招聘信息,并进行相关信息的匹配。此外,求职者和用人单位都需根据不同的职业类型像中介人员缴纳一定的介绍费。 3.逻辑结构 1)ER图: 职业类型名 单位名称单位编号需求人数已聘人数职业号职业名称 工资 职业类型号 m

2) 根据E-R 图写出关系模型: 用人单位 包含 所属 职业信息 匹配 单位 收费 求职者信息 求职者收费 是否聘用 姓名 性别 电话 电话 中介人编号 1 1 n n m m n 求职者编号 姓名 1 m 缴费情况 费用金额 费用金额 职业分类 n

供应链管理实验报告

重庆交通大学 学生实验报告 实验课程名称《供应链管理》 开课实验室ERP综合实验室(经管117) 学院经管学院年级2015专业班物流3、4班学生姓名李俊杰学号631509050305成绩: 学生姓名李志坚学号631509050310成绩: 学生姓名刘修鹰学号631509050315成绩: 学生姓名冯宇锋学号630509050406成绩: 学生姓名学号成绩: 学生姓名学号成绩: 开课时间2017至2018学年第2学期 总成绩 教师签名

实验报告评分标准 序 号 评分项目教师评阅标准 1实验准备实验目的:□明确□基本明确□不明确实验要求:□明确□基本明确□不明确实验内容:□准确□基本准确□不准确 2实验过程实验基本步骤:□正确□基本正确□不正确数据处理过程:□完整□基本完整□不完整实验结果形式:□规范□基本规范□不规范 3实验结果实验结果结论:□准确□基本准确□不准确实验结果分析:□准确□基本准确□不准确实验总结:□完整□基本完整□不完整 4格式排版排版格式:□规范□基本规范□不规范

一、实验目的和任务 熟悉金蝶ERP软件的帐套管理、用户管理、基础数据录入、供应链管理(采购管理、生产管理和销售管理)等主要功能模块,特别是供应链管理模块的各项功能,理解供应链管理的基本原理和实作。 依据实验指导书《金蝶ERP-K/3模拟实战——财务/供应链/生产制造》,以深圳成越实业有限责任公司供应链实作数据为实例,完成金蝶ERP-K/3的销售管理系统、生产数据系统、物料需求计划系统、采购管理系统、委外管理系统、生产任务系统、仓库管理系统、应付款管理系统、应收款管理系统、存货核算系统、总账系统和报表系统等核心功能模块试验任务。 二、实验环境 多媒体计算机,Windows Server2003操作系统,金蝶ERP-K/3软件,Windows画图软件,Microsoft Office Word2007。 三、实验要求与分工 根据深圳成越实业供应链实作案例。具有数据量庞大、实验工作量大和任务艰巨等特点,涉及的金蝶ERP-K/3功能模块众多,各模块间环环紧

操作系统实验五虚拟存储器管理

操作系统实验 实验五虚拟存储器管理 学号1115102015 姓名方茹 班级11 电子A 华侨大学电子工程系

实验五虚拟存储器管理 实验目的 1、理解虚拟存储器概念。 2、掌握分页式存储管理地址转换盒缺页中断。 实验内容与基本要求 1、模拟分页式存储管理中硬件的地址转换和产生缺页中断。 分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说 明哪些页已在主存,哪些页尚未装入主存。作业执行 时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转 换机构按页号查页表,若该页对应标志为“ 1”,则表示该页 已在主存,这时根据关系式“绝对地址 =块号×块长 +单元号”计算出欲访问的主 存单元地址。如果块长为 2 的幂次,则可把块号作为高地址部分,把单元号作为低 地址部分,两者拼接而成绝对地址。若访问的页对 应标志为“ 0”,则表示该页不在主存,这时硬件发“缺页中断”信号, 有操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后 再重新执行这条指令。设计一个“地址转换”程序来模拟硬件的地址转 换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执 行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主 存时,则输出“ * 该页页号”,表示产生了一次缺页中断。 2、用先进先出页面调度算法处理缺页中断。 FIFO 页面调度算法总是淘汰该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。假定作业被选中时, 把开始的 m 个页面装入主存,则数组的元素可定为m 个。 实验报告内容 1、分页式存储管理和先进先出页面调度算法原理。 分页式存储管理的基本思想是把内存空间分成大小相等、位置固定

南京中医药大学虚拟存储器管理实验

实验三虚拟存储管理 实验性质:验证 建议学时:3 实验目的: 存储管理的主要功能之一是合理的分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换方法。 预习内容: 阅读教材《计算机操作系统》第四章,掌握存储器管理相关概念和原理。 实验内容: (1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成: ①50%的指令是顺序执行的; ②25%的指令是均匀分布在前地址部分; ③25%的指令是均匀分布在后地址部分。 具体的实施方法是: ①在[0,319]的指令地址之间随机选取一起点m; ②顺序执行一条指令,即执行地址为m+1的指令; ③在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’; ④顺序执行一条指令,其地址为m’+1; ⑤在后地址[m’+2,319]中随机选取一条指令并执行; ⑥重复上述步骤,直至执行320次指令。 (2)将指令序列变换成页地址流。 设:①页面大小为1K; ②用户内存容量为10块到32块; ③用户虚存容量为32K; 在用户虚存中,按每页存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为: 第0条~第9条指令为第0页(对应的虚存地址为[0,9]); 第10条~第19条指令为第1页(对应的虚存地址为[10,19]); …… 第310条~第319条指令为第31页(对应的虚存地址为[310,319]); 按以上方式,用户指令可组成32页。 (3)计算并输出下述各种算法在不同的内存容量下的缺页率。 ①先进先出的算法(FIFO); ②最近最少使用算法(LRU); ③最佳淘汰法(OPT):先淘汰最不常用的页地址; ④最少访问页面算法(LFU)。 缺页率=(页面失效次数)/(页地址流长度)= 缺页中断次数/ 320 在本实验中,页地址流的长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。

OS实验指导四——虚拟存储器管理

OS实验指导四——虚拟存储器管理

————————————————————————————————作者:————————————————————————————————日期: 2

《操作系统》实验指导四 开课实验室:A207、A209 2015/11/23 、2015/11/24 实验类型设计 实验项目(四)虚拟存储器管理实验 实验学时 4 一、实验目的 设计一个请求页式存储管理方案,并编写模拟程序实现。 二、设备与环境 1. 硬件设备:PC机一台 2. 软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发 环境,如C \C++\Java 等编程语言环境。 三、实验要求 1) 上机前认真复习页面置换算法,熟悉FIFO算法和LRU页面分配和置换算法的过程; 2) 上机时独立编程、调试程序; 3) 根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行 结果截图)。 四、实验内容 1、问题描述: 设计程序模拟FIFO和LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1, … ,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程,并计算每种算法缺页次数和缺页率。 2、程序具体要求如下: 编写程序用来模拟虚拟页式存储管理中的页面置换 要求: 1)快表页面固定为4块 2)从键盘输入N个页面号 3)输出每次物理块中的页面号和缺页次数,缺页率 4)实现算法选择

3、程序流程图 3、源程序参考: (1)FIFO 算法部分 #include "stdio.h" #define n 12 #define m 4 void main() { int ym[n],i,j,q,mem[m]={0},table[m][n]; char flag,f[n]; printf("请输入页面访问序列\n "); for(i =0;i

用友ERP供应链管理系统实验报告

用友E R P供应链管理系 统实验报告 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】

实训报告 课程名称:用友ERP供应链管理系统实验项目:采购、销售、库存、存货实验时间: 实验班级: 学号: 姓名: 指导教师: 会计学院实验室 二〇一年一月日

实验报告 学院:会计学院专业:班级:2成绩: 姓名:学号:组别: 实验地点:电子商务二实验日期: 第一章供应链基础设置 一、实验目的和要求 系统学习系统管理和基础设置的主要内容与操作方法。要求掌握系统管理中设置操作员,建立账套和设置操作员权限的方法,掌握基础设置的内容和方法,熟悉账套输出和引入的方法。 二、实验内容及步骤 (一)系统管理 1、注册系统管理:执行“开始”/“程序”/“用友ERP-U8”/“系统服务”命令。 2、增加操作员:以系统管理员的身份注册进入系统管理后,执行“权限”/“用户”命令,进入“用户管理”窗口;单击工具栏上的“增加”按钮,打开“增加用户”对话框。 3、建立账套:在“系统管理”窗口中,执行“账套”/“建立”命令,打开“账套信息”对话框,按实验资料录入新建账套的账套信息。 4、设置操作员权限:在“系统管理”窗口中,执行“权限”/“权限”命令,打开“操作员权限”对话框,对权限或角色赋权。 5、启用供应链及其相关子系统:执行“开始”/“程序”/“用友ERP-U8”/“企业应用平台”命令,以账套主管的身份注册进入企业应用平台;打开“基本信息”/“系统启用”对话框,启用相关系统。 6、账套备份:在C盘建立“供应链账套备份”文件夹。 (二)业务基础设置 1、在“企业应用平台”窗口中,在“设置”选项卡中的“基础档案”录入“部门”“职员”“供应商”“客户”“付款条件”“存货”“结算方式”“开户银行”“仓库档案”“收发类别”“采购类型”“销售类型”“费用项目”“发运方式”的档案。

实验四 虚拟存储器管理实验

实验四虚拟存储器管理实验 ◆实验名称:存储器管理实验 ◆仪器、设备:计算机 ◆参考资料:操作系统实验指导书 ◆实验目的: 设计一个请求页式存储管理方案,并编写模拟程序实现。 ◆实验内容: 编写程序用来模拟虚拟页式存储管理中的页面置换 要求: 1.快表页面固定为4块 2.从键盘输入N个页面号 3.输出每次物理块中的页面号和缺页次数,缺页率 ◆实验原理、数据(程序)记录: #define PAGES 4 /* 物理块数*/ #define N 16 /*最多输入的页面号*/ int pages[PAGES][2]; /*page[i][0]保存页面号,page[i][1]保存页面存留时间*/ int queue[N]; /*页面号数组*/ void initialise(void) /*------------初始化:快表和页面号数组++++++++++++++*/ { int i; for(i=0;i

《数据库管理》实验报告模板

实验报告2012-2013学年第2学期 科目名称:数据库管理指导老师:杨名念 班级:信息管理112班学号:11415400202 姓名:张乐 湖南工业大学财经学院

【实验名称】:熟悉SQL Server 2000常用工具的使用 【实验日期】:2013年5月6日 【实验目的】: 1.熟悉SQL Server 2000服务管理器的启动方法。 2.熟悉SQL Server 2000常用工具的使用。 【实验内容及要求】: 1.练习SQL Server 2000服务器的启动方式。 2.打开企业管理器,观察企业管理器的各个组成部分,练习有关的操作。 3.打开查询分析器,观察查询分析器的组成部分,练习有关的操作。 4.练习SQL Server 2000的联机丛书的使用,并使用联机丛书学习自己感兴趣的知识。 5.在企业管理器中新建SQL Server注册。 6.练习SQL Server 2000的数据导入/导出操作。 7.练习使用企业管理器进行“新建数据库”、“附加数据库”等操作。 【实验步骤】:SQL Server 2000的启动方法: 1左键单击开始菜单,从菜单里找到SQL Server2000,双击左键,从子菜单里找到服务管理器,启动服务管理器。 2从开始菜单里启动服务管理器,如上图所示。 实验二:查询分析器的启动方法: 1在程序菜单中选择Microsoft SQL Server

2再选中查询分析器,如上图 3点击查询分析器后,出现连接到SQL Server窗口: 4如下图 5如下图:

实验三:新建数据库表格: 实验四:数据库数据的导入导出:(1)注册远程SQL服务器到本地(2)执行数据的导入导出功能 一。打开企业管理器 (Enterprise Manager) 工具

实验四 虚拟存储器管理

实验四虚拟存储器管理 一、实验目的 1、为了更好的配合《操作系统》有关虚拟存储器管理章节的教学。 2、加深和巩固学生对于请求页式存储管理的了解和掌握。 3、提高学生的上机和编程过程中处理具体问题的能力。 二、实验内容 请求页式存储管理是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 1.通过随机数产生一个指令序列,共320条指令。 指令的地址按下述原则生成: a.50%的指令是顺序执行的。 b.25%的指令是均匀分布在前地址部分。 c.25%的指令是均匀分布在后地址部分。 具体的实施方法是: a.在[0,319]指令地址之间随机选取一起点; b.顺序执行一条指令,即执行地址为m+1的指令; c.在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’; d.顺序执行一条指令,其地址为m’; e.在后地址[m’+2,319]中随机选取一条指令并执行; f.重复上述步骤a~e,直到执行320次指令。 2.将指令序列变换成为页地址流 设: a.页面大小为1K; b.用户内存容量为4到32页; c.用户虚存容量为32K。 在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为: 第0条~第9条指令为第0页,对应虚存地址为[0,9];

第10条~第19条指令为第1页,对应虚存地址为[10,19] . . 第310条~第319条指令为第31页,对应虚存地址为[310,319]。 按以上方式,用户指令可组成32页。 3、输出下述各种算法在不同内存容量下的命中率。 a.先进先出的算法; b.最近最少访问算法; c.最近最不经常使用算法。 其中:命中率=1-页面失效次数/页地址流长度 页地址流长度为320,页面失效次数为每次访问相同指令时,该指令所对应的页不在内存的次数。 三、实验要求 实验课时4学时。要求画出利用各种算法置换时的置换图,并可以分析说明。编程可分 为几个部分完成:指令的分页,算法的选择,算法的实现,命中率的输出。编写程序前可先 阅读Linux源代码页面换入: static int do_swap_page(struct mm_struct * mm, struct vm_area_struct * vma,unsigned long address, pte_t * page_table,swp_entry_t entry,int write_access) { struct page *page = lookup_swap_cache(entry); pte-t pte; if (!pgae){ lock_kernel( ); swapin_readahead(entry); page = read_swap_cache(entry); unlock_kernel( ); if (!page) return -1;

数据库管理系统实验报告含答案汇编

-----好资料学习 xxxx大学《数据库管理系统》课程实验报告 指导教月日班级: _______姓名:实验时间:年 :_______ 师 一、实验目的 1、通过实验,使学生全面了解最新数据库管理系统的基本内容、基本原理。 2、牢固掌握SQL SERVER的功能操作和。语言Transact-SQL 3、紧密联系实际,学会分析,解决实际问题。学生通过小组项目设计,能够运用最新数据库管理系统于管理信息系统、企业资源计划、供应链管理系统、客户关系管理系统、电子商务系统、决策支持系统、智能信息系统中等。 二、实验内容 1.导入实验用示例数据库: f:\教学库.mdf f:\教学库_log.ldf f:\仓库库存.mdf f:\仓库库存_log.ldf 1.1 将数据库导入 在SqlServer 2005 导入已有的数据库(*.mdf)文件,在SQL Server Management Studio里连接上数据库后,选择新建查询,然后执行语句 EXEC sp_attach_db @dbname = '教学库', @filename1 = 'f:\教学库.mdf', @filename2 = 'f:\教学库_log.ldf' go use [教学库] EXEC sp_changedbowner 'sa' go EXEC sp_attach_db @dbname = '仓库库存', @filename1 = 'f:\仓库库存.mdf', 更多精品文档. 学习-----好资料 @filename2 = 'f:\仓库库存_log.ldf' go use [仓库库存] EXEC sp_changedbowner 'sa' go 1.2 可能出现问题

供应链管理实验报告

供应链管理实验报告 协作者:杨无过之国经学号: 指导教师: 实验原理: 1、供应链核心基础与流程架构 2、供应链管理中的采购流程与战略 3、供应链视角下的生产与库存 4、供应链管理基础与流程调节 实验环境: 供应链管理与优化软件 实验内容: 一:订单管理 在现代供应链中,客户向制造商下达订单,制造商接收客户的订单,往往还需要经过审核确认,优先级处理等操作后才能进入后续的操作流程。基于此,本系统把这一系列的操作融合为订单管理。本系统内,零售商在零售商平台录入好订单后,会把订单发送给制造商公司,制造商公司根据自身及零售商情况对零售商订单进行处理。 1.订单接收:接收客户发送来的订单。 2.供货计划:按照制造商自身产能及订单情况对订单生成供货计划,供货计划明细将用于系 统多处。 3.订单处理:根据客户选择订单,对该客户的订单进行处理,对客户信用额度进行相应算法扣 除。客户订单可单个处理也可批量处理。 4.订单跟踪:对制造商已接收的客户订单进行跟踪,跟踪主线为订单状态,跟踪时限为客户订 单产生到交易完成的整个过程;这让用户对订单的处理情况一目了然。 5.配送通知:将制造商处理好的客户订单相关信息(供货计划明细信息)发送给物流公司。 6.订单查询:查询客户订单信息。 7.产能查询:查询产能信息。 二:需求管理 需求管理主要就是根据客户订单、销售预测、独立需求计划、需求变更的总体情况对一段时间(本系统为四周)内的需求与生产做出预测及计划。、 制造商在处理完客户订单后,会结合自身产能及市场情况做出详细准确的需求计划。1、Mds主需求计划:根据客户订单、销售预测单、独立需求计划单、需求变更单的总体情况生成一段固定时间段内(本系统为四周)的需求计划,作为制定主生产计划的依据。 2.mps主生产计划:根据MDS主需求计划环节产生的主需求计划单为依据,结合制造商自身 产能,按产品做出详细的主生产计划 3.mrp主需求运算:主需求运算环节就是需求管理模块的核心,也就是整个制造商管理系统 的核心。它根据主生产计划、产品BOM表作MRP(Material Requirement Planning)运算。 4.需求通知:制造商完成MRP运算后,需要把物料的需求明细发送给物流公司,以便物流公 司按照制造商的需求准备物料。需求通知即实现为制造商传递具体物料需求通知给物流公司。 三:生产管理 制造商做好需求计划,并知会物流公司其一段时间内的详细物料需求,物流公司将正确物料(Right Product)在正确的时间(Right Time),按照正确的数量(Right Quantity)、正确的质量(Right Quality)与正确的状态(Right Status)送到正确的地点( Right Place),制造商就可以开始生产了。

虚拟存储器管理实验报告

淮海工学院计算机科学系实验报告书 课程名:《操作系统》 题目:虚拟存储器管理 页面置换算法模拟实验 班级: 学号: 姓名:

一、实验目的与要求 1.目的: 请求页式虚存管理是常用的虚拟存储管理方案之一。通过请求页式虚存管理中对页面置换算法的模拟,有助于理解虚拟存储技术的特点,并加深对请求页式虚存管理的页面调度算法的理解。 2.要求: 本实验要求使用C语言编程模拟一个拥有若干个虚页的进程在给定的若干个实页中运行、并在缺页中断发生时分别使用FIFO和LRU算法进行页面置换的情形。其中虚页的个数可以事先给定(例如10个),对这些虚页访问的页地址流(其长度可以事先给定,例如20次虚页访问)可以由程序随机产生,也可以事先保存在文件中。要求程序运行时屏幕能显示出置换过程中的状态信息并输出访问结束时的页面命中率。程序应允许通过为该进程分配不同的实页数,来比较两种置换算法的稳定性。 二、实验说明 1.设计中虚页和实页的表示 本设计利用C语言的结构体来描述虚页和实页的结构。 在虚页结构中,pn代表虚页号,因为共10个虚页,所以pn的取值范围是0—9。pfn代表实页号,当一虚页未装入实页时,此项值为-1;当该虚页已装入某一实页时,此项值为所装入的实页的实页号pfn。time项在FIFO算法中不使用,在LRU中用来存放对该虚页的最近访问时间。 在实页结构中中,pn代表虚页号,表示pn所代表的虚页目前正放在此实页中。pfn代表实页号,取值范围(0—n-1)由动态指派的实页数n所决定。next是一个指向实页结构体的指针,用于多个实页以链表形式组织起来,关于实页链表的组织详见下面第4点。 2.关于缺页次数的统计 为计算命中率,需要统计在20次的虚页访问中命中的次数。为此,程序应设置一个计数器count,来统计虚页命中发生的次数。每当所访问的虚页的pfn项值不为-1,表示此虚页已被装入某实页内, 此虚页被命中,count加1。最终命中率=count/20*100%。 3.LRU算法中“最近最久未用”页面的确定 为了能找到“最近最久未用”的虚页面,程序中可引入一个时间计数器countime,每当要访问 一个虚页面时,countime的值加1,然后将所要访问的虚页的time项值设置为增值后的当前

数据库技术与管理实验报告

本科实验报告 课程名称: 实验项目: 实验地点: 专业班级:学号: 学生姓名: 指导教师: 2015年12 月26 日

实验一SQL数据定义功能实验 一、实验目的和要求 1.掌握利用SQL 查询分析器和企业管理器进行数据库及基本表的定义、删除与修改; 2.掌握索引的建立与删除的方法。 (一)建立数据库 通过:开始——程序——SQLsever——企业管理器,打开企业管理器,之后如图在E盘上建立一个学生—课程数据库xskc (二)基本表的定义修改与删除 1定义基本表:通过开始——程序——SQLsever——SQL查询分析器,打开SQL 查询分析器,将建立Student 表的语句输入,并通过检查与执行建立表格

同理,重复以上步骤建立Course表格、SC表格 2修改基本表:同样使用SQL查询分析器对基本表进行修改,即输入相应语句,并点击检查与执行,实现对基本表的修改 (1)向基本表Student 中增加“入学时间”属性列,其属性名为S_entrance,数据类型为日期型 (2)将Sage(年龄)的数据类型改为SMALLINT 型。 (3)按照相同步骤,增加课程名称必须取唯一值的约束条件。 3、删除基本表 4、利用企业管理器向表Student、Course、SC 中输入数据。

(二)索引的建立和删除 1、(1)在基本表Student 的Sname(姓名)列上建立一个聚簇索引,而且Student 中的物理记录将按照Sname 值的升序存放。

、 c. (2)为学生-课程数据库中的Student,Course,SC 三个表建立索引。

用友ERP供应链管理系统实验报告,心得体会

XXXXX大学 实验报告 用友ERP供应链管理系统 实验 学号: 姓名: 年级: 2008级 学院:管理与经济学院 系别:信息管理系 专业:信息管理与信息系统 实验日期: 报告日期: 一、实验目的

通过软件结合教材体验用友ERP供应链管理系统的基本功能,熟练掌握其功能特点及应用方式,提高信息化环境下的业务处理能力。 二、实验要求 总的来说,用友的学习要求我们系统学习系统管理和基础设置的主要内容及操作方法,并掌握采购管理、销售管理、库存管理、存货核算4个子系统的应用方法。 供应链基础设施:要求掌握系统管理中设置操作员、建立帐套和操作员权限的方法;掌握基础设置的内容和方法,熟悉帐套输出引入的方法。 对于采购管理、销售管理、库存管理、存货核算,要求掌握主要其业务的处理流程、处理方法和处理步骤,深入了解各管理系统与供应链系统的其他子系统,与ERP系统中的相关子系统之间的紧密联系和数据传递关系,以便正确处理各系统业务与其相关的其他业务。掌握各种单据的录入、审核、制单等,并生成凭证。 三、实验内容 以用友ERP-U8.72为实验平台,以一个单位(北京中良贸易有限公司)的经济业务贯穿始终,分别学习了采购、销售、库存、存货4个子系统的应用方法。分别概括如下: (1)供应链基础设施:系统管理(账套管理、年度账管理、操作员及其权限的集中管理);业务基础设置;财务基础设置。 (2)采购管理:采购系统初始化;运用采购管理系统对普通采购业务、受托代销业务、直运采购业务、退货业务和暂估业务等进行处理,并及 时采购结算;采购特殊业务。 (3)销售管理:销售系统初始化;运用销售管理系统对普通销售业务、销售退货业务、直运销售业务、分期收款销售业务、零售日报业务等 进行处理;销售帐表统计分析。 (4)库存管理:调拨业务;盘点;其他业务。 (5)存货核算:存货核算的价格及成本处理;单据记账。 (6)期末处理:期末处理的作用及方法等;帐表查询及生成凭证。 三、实验过程中遇到的问题及解决方案

实习五虚拟存储器实验报告

实习五虚拟存储器 一、实习内容 模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。 二、实习目的 在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种办法扩充的主存储器称为虚拟存储器。通过本实习帮助同学理解在分页式存储管理中怎样实现虚拟存储器。 三、实习题目 本实习有三个题,其中第一题必做,第二、第三题中可任选一个。 第一题:模拟分页式存储管理中硬件的地址转换和产生缺页中断。 [提示]: (1) 分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式为: 其中,标志——用来表示对应页是否已经装入主存,标志位=1,则表示该页已经在主存,标志位=0,则表示该页尚未装入主存。 主存块号——用来表示已经装入主存的页所占的块号。 在磁盘上的位置——用来指出作业副本的每一页被存放在磁盘上的位置。 (2) 作业执行时,指令中的逻辑地址指出了参加运算的操作数存放的页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式: 绝对地址=块号 块长+单元号 计算出欲访问的主存单元地址。如果块长为2的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址。按计算出的绝对地址可以取到操作数,完成一条指令的执行。若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,由操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。 (3) 设计一个“地址转换”程序来模拟硬件的地址转换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主存时,则输出“*该页页号”,表示产生了一次缺页中断。该模拟程序的算法如图5-1。 (4) 假定主存的每块长度为128个字节;现有一个共七页的作业,其中第0页至第3

实验二、空间数据库管理及属性编辑实验报告

实验报告 一、实验名称 二、实验目的 三、实验准备 四、实验内容及步骤 五、实验后思考题 班级:资工(基)10901姓名:魏文风 序号:28

实验二、空间数据库管理及属性编辑 一、实验目的 1.利用ArcCatalog管理地理空间数据库,理解Personal Geodatabse空间数据库模型的 有关概念。 2.掌握在ArcMap中编辑属性数据的基本操作。 3.掌握根据GPS数据文件生成矢量图层的方法和过程。 4.理解图层属性表间的连接(Join)或关联(Link)关系。 二、实验准备 预备知识: ArcCatalog 用于组织和管理所有GIS 数据。它包含一组工具用于浏览和查找地理数据、记录和浏览元数据、快速显示数据集及为地理数据定义数据结构。 ArcCatalog 应用模块帮助你组织和管理你所有的GIS 信息,比如地图,数据集,模型,元数据,服务等。它包括了下面的工具: ●浏览和查找地理信息。 ●记录、查看和管理元数据。

●创建、编辑图层和数据库 ●导入和导出geodatabase 结构和设计。 ●在局域网和广域网上搜索和查找的GIS 数据。 ●管理ArcGIS Server。 ArcGIS 具有表达要素、栅格等空间信息的高级地理数据模型,ArcGIS支持基于文件和DBMS(数据库管理系统)的两种数据模型。基于文件的数据模型包括Coverage、Shape文件、Grids、影像、不规则三角网(TIN)等GIS数据集。 Geodatabase 数据模型实现矢量数据和栅格数据的一体化存储,有两种格式,一种是基于Access文件的格式-称为Personal Geodatabase,另一种是基于Oracle或SQL Server等RDBMS关系数据库管理系统的数据模型。 GeoDatabase是geographic database 的简写,Geodatabase 是一种采用标准关系数据库技术来表现地理信息的数据模型。Geodatabase是ArcGIS软件中最主要的数据库模型。 Geodatabase 支持在标准的数据库管理系统(DBMS)表中存储和管理地理信息。 在Geodatabase数据库模型中,可以将图形数据和属性数据同时存储在一个数据表中,每一个图层对应这样一个数据表。 Geodatabase可以表达复杂的地理要素(如,河流网络、电线杆等)。比如:水系可以同时表示线状和面状的水系。 基本概念:要素数据集、要素类 数据准备: 数据文件:National.mdb ,GPS.txt (GPS野外采集数据)。 软件准备: ArcGIS Desktop 9.x ---ArcCatalog

相关主题
文本预览
相关文档 最新文档