操作系统课程设计-存储与设备(2)

2019-01-27 17:14

河北大学2008级操作系统学年论文(课程设计)

块号=字号*字长+位号

2.2.2主存回收策略

根据页表归还存储空间时,可以根据归还块的块号推算出在位示图中的位置: 字号=[块号/位示图中字长] 位号=块号mod位示图中字长 然后把这一位的“1”清成“0”,表示该块成为空闲块了。

最后回收页表所占用空间 。

2.2.3 主存的模拟

采用数组来模拟主存的用户区,每个数组元素占用一个字节。 实验中主存大小为512个字节,每个主存块16个字节 。

2.2.4 用户接口

主存使用情况示意图:已分配主存用红色表示,用紫色表示未分配,黄色表示在运行的进程对应指令存放的位置。

2.3设备管理的实现方法和原理

设备管理主要包括设备的分配和回收。设备的分配应用先来先服务策略,设备回收后,要注意唤醒等待设备的进程。

3

河北大学2008级操作系统学年论文(课程设计)

2.3.1 设备的模拟

模拟系统中有A、B、C三种独占型设备,A设备3个,B设备2个,C设备1个。

2.3.2 数据结构

因为模拟系统比较小,因此只要设备表设计合理既可。 private DeviceTable[] table=new DeviceTable[3]; private void Init() {

table[0]=new DeviceTable(DeviceType.a, 3); table[1]=new DeviceTable(DeviceType.b, 2); table[2]=new DeviceTable(DeviceType.c, 1);

}

2.3.3 设备分配

设备分配实行先来先服务策略。

2.3.4设备的回收

回收设备后,要注意唤醒等待设备的进程。

2.3.5用户接口

屏幕显示要求包括:每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。

4

河北大学2008级操作系统学年论文(课程设计)

3 系统实现

3.1存储管理

3.1.1全局变量与初始化

private char[,] RamUnit = new char[32, 16]; //用数组模拟内存 private int[,] Wst = new int[4, 8]; //位示图 private int UnuseRam; public memory() {

Init(); }

private void Init() //初始化,主存的存储单元全为空闲(未占用) {

UnuseRam = 32;

for (int i = 0; i < 4; i++) {

for (int j = 0; j < 8; j++) {

Wst[i, j] = 0; } } }

3.1.2位示图的模拟(起初都为0)

第0字 第1字 第2字 第3字 0位 1位 2位 3位 4位 5位 6位 7位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.1.3地址映射过程

系统为每个进程建立一张页表,用于记录进程逻辑页面与内存物理页面之间的对应关系。地址空间有多少页,该页表里就登记多少行,且按逻辑页的顺序排列。页式存储管理采用动态重定位,即在程序的执行过程中完成地址转换。

5

河北大学2008级操作系统学年论文(课程设计)

3.1.4主存空间的分配

开始 查看空闲块是否够用 是否 进行内存的分配,返回页表的地址(内存的第几块) 结束 6

河北大学2008级操作系统学年论文(课程设计)

3.1.3 主存空间的回收

开始 根据归还块的块号推算出在位示图中的位置 把该位的“1”清成“0”,表示该块成为空闲块了 回收页表所占用空间 结束 3.1.4屏幕显示实现存储管理

7


操作系统课程设计-存储与设备(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011年全国硕士研究生入学统一考试考研数学一真题及答案

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

马上注册会员

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