如果以前大家有自己写过的最好,不要从网上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下,分别利用共享内存 、管道,消息队列来实现进程间通信 。