如果以前大家有自己写过的最好,不要从网上down了,因为很多都有重复,编程语言不限,力求简单,有意者请把程序发到[email protected]并在本页上注明,马上给分,不够可以再加,谢谢大家了!!!1、 基于交换的内存管理实现
[问题描述] 设计思想 基于交换的内存 管理实现,当内容过多而内存容纳不了时,一部分内容被交换到外存。
[基本要求]
1. 内存管理
(1)系统初始化(在外存空间开辟),初始空间为256K
内存分配和回收为每个进程分配、回收空间(可以以API函数的形式提供给用户以显示使用)
(2)内存管理:包括进程的管理,空闲区的管理
(3) 空闲分区表
采用动态分区分配
空闲分区链
分配算法: 首次适应算法(或最佳适应算法)
(3) 交换:当有新进程产生,要求分配内存,而内存已被用尽时,发生交换
(4) 被替换进程的选择:若内存中存在多个等待进程(内存使用者),则将其优先级与内存时间相加,所得结果最大的进程,被选中并移出内存。
实现: 简单交换:移出一个进程的交换 复杂交换:移出多个进程的交换2、模拟内存管理
[问题描述] 在任一OS下,模拟实现一个简单的内存管理系统
[基本要求](在任一OS下)动态申请一较大的内存空间,来模拟实存页式内存空间管理:首先假定页长为64B,建立相应的内存页表;然后假定一个由多个进程的进出组成的时间序列,据此建立各进程页表,并在此过程中对内存页表作相应修改。
3、模拟UNIX文件系统(可2 人一组)
[问题描述]
在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的 模拟UNIX(linux)文件系统 。
[基本要求]
1.在现有机器硬盘上开辟20M的硬盘空间,作为设定的硬盘空间。
2.编写一管理程序对此空间进行管理,以模拟UNIX(linux)文件系统,具体要求如下:
(1) 要求盘块大小1k
正规文件
(2) i 结点文件类型 目录文件
(共1byte) 块设备
管道文件
。物理地址(索引表)
共有13个表项,每表项2byte
。文件长度 4byte
。联结计数 1byte
(3)0号块 超级块 栈长度50或100
空闲盘块的管理:成组链接 ( UNIX)
位示图法 (Linux)
(4)每建一个目录,分配4个物理块
文件名 14byte
(5)目录项信息
i 结点号 2byte(6)结构: 0#: 超级块
1#-20#号为 i 结点区
20#-30#号为根目录区
(7)功能: 1、初始化
2、建立文件(需给出文件名,文件长度)
3、建立子目录
4、打开文件(显示文件所占的盘块)
5、删除文件
6、删除目录
7、显示目录(即显示目录下的信息,包括文件、子目录等)
8、显示整个系统信息
0#超级快1#磁盘索引结点……..
21#31#…….4、[问题描述] 设计一个请求页式存储管理方案,为简单起见。页面淘汰算法采用 FIFO页面淘汰算法,并且在淘汰一页时,只将该页在页表中修改状态位。而不再判断它是否被改写过,也不将它写回到辅存。[基本要求]
页面尺寸1K,输入进程大小(例如5300bytes),对页表进行初始化,
页表结构:
页 号 物理块号 状态位
0 2 True (在主存)
1 1
2 False (在辅存)
3 0
4 False (在辅存)
5 False (在辅存)系统为进程分配3 个物理块(页框),块号分别为0、1、2,页框管理表(空闲块表):
物理块号 是否空闲
0 true
1 true
2 true任意输入一个需要访问的指令地址流(例如:3635、3642、1140、0087、1700、5200、4355,输入负数结束),打印页表情况。
每访问一个地址时,首先要计算该地址所在的页的页号,然后查页表,判断该页是否在主存——如果该页已在主存,则打印页表情况;如果该页不在主存且页框未满(查空闲块表,找到空闲块),则调入该页并修改页表,打印页表情况;如果该页不在主存且页框已满,则按 FIFO页面淘汰算法淘汰一页后调入所需的页,修改页表,打印页表情况; 5、在任一OS下,分别利用共享内存 、管道,消息队列来实现进程间通信 。
[问题描述] 设计思想 基于交换的内存 管理实现,当内容过多而内存容纳不了时,一部分内容被交换到外存。
[基本要求]
1. 内存管理
(1)系统初始化(在外存空间开辟),初始空间为256K
内存分配和回收为每个进程分配、回收空间(可以以API函数的形式提供给用户以显示使用)
(2)内存管理:包括进程的管理,空闲区的管理
(3) 空闲分区表
采用动态分区分配
空闲分区链
分配算法: 首次适应算法(或最佳适应算法)
(3) 交换:当有新进程产生,要求分配内存,而内存已被用尽时,发生交换
(4) 被替换进程的选择:若内存中存在多个等待进程(内存使用者),则将其优先级与内存时间相加,所得结果最大的进程,被选中并移出内存。
实现: 简单交换:移出一个进程的交换 复杂交换:移出多个进程的交换2、模拟内存管理
[问题描述] 在任一OS下,模拟实现一个简单的内存管理系统
[基本要求](在任一OS下)动态申请一较大的内存空间,来模拟实存页式内存空间管理:首先假定页长为64B,建立相应的内存页表;然后假定一个由多个进程的进出组成的时间序列,据此建立各进程页表,并在此过程中对内存页表作相应修改。
3、模拟UNIX文件系统(可2 人一组)
[问题描述]
在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的 模拟UNIX(linux)文件系统 。
[基本要求]
1.在现有机器硬盘上开辟20M的硬盘空间,作为设定的硬盘空间。
2.编写一管理程序对此空间进行管理,以模拟UNIX(linux)文件系统,具体要求如下:
(1) 要求盘块大小1k
正规文件
(2) i 结点文件类型 目录文件
(共1byte) 块设备
管道文件
。物理地址(索引表)
共有13个表项,每表项2byte
。文件长度 4byte
。联结计数 1byte
(3)0号块 超级块 栈长度50或100
空闲盘块的管理:成组链接 ( UNIX)
位示图法 (Linux)
(4)每建一个目录,分配4个物理块
文件名 14byte
(5)目录项信息
i 结点号 2byte(6)结构: 0#: 超级块
1#-20#号为 i 结点区
20#-30#号为根目录区
(7)功能: 1、初始化
2、建立文件(需给出文件名,文件长度)
3、建立子目录
4、打开文件(显示文件所占的盘块)
5、删除文件
6、删除目录
7、显示目录(即显示目录下的信息,包括文件、子目录等)
8、显示整个系统信息
0#超级快1#磁盘索引结点……..
21#31#…….4、[问题描述] 设计一个请求页式存储管理方案,为简单起见。页面淘汰算法采用 FIFO页面淘汰算法,并且在淘汰一页时,只将该页在页表中修改状态位。而不再判断它是否被改写过,也不将它写回到辅存。[基本要求]
页面尺寸1K,输入进程大小(例如5300bytes),对页表进行初始化,
页表结构:
页 号 物理块号 状态位
0 2 True (在主存)
1 1
2 False (在辅存)
3 0
4 False (在辅存)
5 False (在辅存)系统为进程分配3 个物理块(页框),块号分别为0、1、2,页框管理表(空闲块表):
物理块号 是否空闲
0 true
1 true
2 true任意输入一个需要访问的指令地址流(例如:3635、3642、1140、0087、1700、5200、4355,输入负数结束),打印页表情况。
每访问一个地址时,首先要计算该地址所在的页的页号,然后查页表,判断该页是否在主存——如果该页已在主存,则打印页表情况;如果该页不在主存且页框未满(查空闲块表,找到空闲块),则调入该页并修改页表,打印页表情况;如果该页不在主存且页框已满,则按 FIFO页面淘汰算法淘汰一页后调入所需的页,修改页表,打印页表情况; 5、在任一OS下,分别利用共享内存 、管道,消息队列来实现进程间通信 。
你给我发个邮件,[email protected],我给你打个包,都发过去。
不过不知道适合不适合你。
[email protected]