分页存储管理算法VB程序演示.docx

上传人:b****5 文档编号:7370578 上传时间:2023-01-23 格式:DOCX 页数:12 大小:108.94KB
下载 相关 举报
分页存储管理算法VB程序演示.docx_第1页
第1页 / 共12页
分页存储管理算法VB程序演示.docx_第2页
第2页 / 共12页
分页存储管理算法VB程序演示.docx_第3页
第3页 / 共12页
分页存储管理算法VB程序演示.docx_第4页
第4页 / 共12页
分页存储管理算法VB程序演示.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

分页存储管理算法VB程序演示.docx

《分页存储管理算法VB程序演示.docx》由会员分享,可在线阅读,更多相关《分页存储管理算法VB程序演示.docx(12页珍藏版)》请在冰豆网上搜索。

分页存储管理算法VB程序演示.docx

分页存储管理算法VB程序演示

计算机与信息工程学院计算机科学与技术专业02级

《操作系统原理》课程设计

 

课题名称:

分页存储管理算法VB程序演示

姓名:

高远

班级:

计算机02-13班

学号:

26

 

课程设计起止时间:

2005.1.3—2005.1.8

指导教师:

杨兆楠成绩:

课程设计任务书

《操作系统原理》课程设计任务书(同学填写)

设计题目:

分页存储管理算法VB程序演示

任务下达时间:

2005-1-3

任务完成时间:

2005-1-7

指导教师:

杨兆楠

指导教师评语(教师填写)

一、所得结果:

 

二、存在问题:

 

成绩

评阅人

一设计说明

这个程序是由VisualBasic6.0所编,它主要演示了关于分页存储管理中的随机分页的过程,程序可演示4个作业的分配,但总长度不可打于64,它可以显示作业号、页表长度、作业长度、状态(空项、已分配)。

通过点击按键“我有作业要分配”来激活分配。

程序共由两个表格、一个按键组成。

关于不同的作业运用了不同的颜色,可以让读者看出这个页分配给了哪个作业。

“空项”表示该作业还不存在,“已分配”表示该作业已分配完了,对照作业号上的颜色,可以看出哪几页是被分配给该作业的。

二、详细设计:

1)主要系统函数说明:

2)流程图:

N

Y

N

3)程序代码:

全局变量声明:

Publicp1AsInteger

Publicp2AsInteger

Publicp3AsInteger

Publicp4AsInteger

Publicp5AsInteger

Publicp6AsInteger

Publicp7AsInteger

Publicp8AsInteger

Publicp9AsInteger

Publicp10AsInteger

Publicp11AsInteger

Publicp12AsInteger

Publicp13AsInteger

Publicp14AsInteger

Publicp15AsInteger

Publicp16AsInteger

PubliccoloraAsSingle'颜色值

DimmAsInteger'作业信号量

DimsssyyyAsInteger

DimssyyAsString'剩余页信号量1

DimyAsInteger

PublicnnnAsInteger'剩余页信号量2

窗体声明:

PrivateSubCommand1_Click()

DimnAsInteger

DimnnAsInteger

DimacountAsInteger

DimrrrrAsInteger

m=m+1

'剩余字节数的显示

Ifsssyyy=0Theny=64

ssyy=y

MsgBox("可分配的剩余字节数为"+ssyy)

'作业分配激活

n=InputBox("请求分配的字节大小(0~64)","作业分配")

nnn=n+nnn

nn=n\4

'单次分配大小限定,超过则退出

Ifn>64Then

MsgBox("对不起你要求分配的字节数太大")

End

EndIf

'总分配大小限定,超出则退出

Ifnnn>64Then

MsgBox("对不起容量不够")

nnn=nnn-n

End

EndIf

'作业表

IfnMod4<>0Then

nn=nn+1

EndIf

Ifaa=0Then

IfLabel15.Caption="空项"Then

Label8.Caption=nn

Label12.Caption=n

Label15.Caption="已分配"

aa=1

GoToh

EndIf

EndIf

Ifaaa=0Then

IfLabel16.Caption="空项"Then

Label13.Caption=n

Label10.Caption=nn

Label16.Caption="已分配"

aaa=1

GoToh

EndIf

EndIf

Ifaaaa=0Then

IfLabel17.Caption="空项"Then

Label11.Caption=nn

Label14.Caption=n

Label17.Caption="已分配"

aaaa=1

GoToh

EndIf

EndIf

Ifaaaaa=0Then

IfLabel20.Caption="空项"Then

Label18.Caption=nn

Label19.Caption=n

Label20.Caption="已分配"

aaaaa=1

GoToh

EndIf

EndIf

'页面变换表+存储分块表

h:

acount=nn

GoToa

a:

Ifacount<>0Then

rrrr=Rnd()*15

SelectCaserrrr

Case0

Ifp1<>1Then

Callp

Picture1.BackColor=colora

p1=1

acount=acount-1

GoToa:

EndIf

Case1

Ifp2<>1Then

Callp

Picture2.BackColor=colora

p2=1

acount=acount-1

GoToa:

EndIf

Case2

Ifp3<>1Then

Callp

Picture3.BackColor=colora

p3=1

acount=acount-1

GoToa:

EndIf

Case3

Ifp4<>1Then

Callp

Picture4.BackColor=colora

p4=1

acount=acount-1

GoToa:

EndIf

Case4

Ifp5<>1Then

Callp

Picture5.BackColor=colora

p5=1

acount=acount-1

GoToa:

EndIf

Case5

Ifp6<>1Then

Callp

Picture6.BackColor=colora

p6=1

acount=acount-1

GoToa:

EndIf

Case6

Ifp7<>1Then

Callp

Picture6.BackColor=colora

p7=1

acount=acount-1

GoToa:

EndIf

Case7

Ifp8<>1Then

Callp

Picture7.BackColor=colora

p8=1

acount=acount-1

GoToa:

EndIf

Case8

Ifp9<>1Then

Callp

Picture8.BackColor=colora

p9=1

acount=acount-1

GoToa

EndIf

Case9

Ifp10<>1Then

Callp

Picture9.BackColor=colora

p10=1

acount=acount-1

GoToa

EndIf

Case10

Ifp11<>1Then

Callp

Picture10.BackColor=colora

p11=1

acount=acount-1

GoToa:

EndIf

Case11

Ifp12<>1Then

Callp

Picture11.BackColor=colora

p12=1

acount=acount-1

GoToa

EndIf

Case12

Ifp13<>1Then

Callp

Picture12.BackColor=colora

p13=1

acount=acount-1

GoToa

EndIf

Case13

Ifp14<>1Then

Callp

Picture13.BackColor=colora

p14=1

acount=acount-1

GoToa:

EndIf

Case14

Ifp15<>1Then

Callp

Picture14.BackColor=colora

p15=1

acount=acount-1

GoToa

EndIf

Case15

Ifp16<>1Then

Callp

Picture15.BackColor=colora

p16=1

acount=acount-1

GoToa

EndIf

EndSelect

Ifacount<>0Then

GoToa:

EndIf

EndIf

EndSub

'颜色分配子程序

PublicSubp()

Ifm=1Then

colora=&HFF80FF

ElseIfm=2Then

colora=&HFFFF00

ElseIfm=3Then

colora=&H80FF80

ElseIfm=4Then

colora=&HFF00FF

EndIf

y=y-4

sssyyy=1

EndSub

4)关键语句注释:

见程序代码粗斜体字

三、运行结果:

四、分析结果:

连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销。

如果允许将一个进程直接分散地装入到许多不相邻的分区中,则无须再进行“紧凑”。

基于这一思想而产生了离散分配方式。

如果离散分配的基本单位是页,则称为分页存储管理方式。

(1)作业表(JT)整个系统一张表。

每个作业在作业表中对应一个表目,包括该作业的页表始址、页表长度和状态信息。

当该作业调度程序调度到某个作业时,如果存储要求可以得到满足,就在此表上进行登记。

当作业轮到处理时,就在此表把也表始址和页表长度送到状态控制寄存器中。

(2)存储分块表(MBT)整个系统一张表。

该表中每一表目对应一个存储块,记录了该块的状态:

已分配或空闲。

(3)页表变换表(PMT)每个作业一张表。

页面变换表,用于该作业的地址变换,该作业有多少页面就有多少表目,表目内记录对应的存储块号。

分页存储管理仍然存在如下严重缺点:

1.采用动态地址变换会增加计算机成本和降低处理机的速度

2.各种表格要占用一定容量的主存空间,而且还要花费一部分处理机时间来建立和管理这些表格

3.虽然说碎片消除了,但每个作业的最后一页一般都有不能充分利用的空白区。

例如,页面大小为4KB,作业需要3KB,则为其分配一个物理存储块,但有1KB空间被浪费了。

4.存储扩充问题仍未得到解决。

当没有足够的可用空间能装下整个作业地址空间时,该作业还是无法运行的。

五、参考文献

《操作系统教程》2004版西北工业大学出版社

《VisualBasic程序设计教程(第二版)》刘炳文清华大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1