操作系统课程项目。
某一层楼20层,有五部互联的电梯。基于线程思想,编写一个电梯调度程序,程序中需包含以下功能:
- 每个电梯能选择前往比当前楼层高或低的楼层;
- 每个电梯设有警报键,能控制该电梯工作或不工作;
- 每个电梯设有开关门键;
- 能够显示每个电梯的所在楼层、运行状态;
- 五部电梯门口的按钮相互联结;
- 所有电梯初始状态都在第一层。每个电梯如果没有被请求,应在原地保持不动。
请求调页模拟。
假设每个页面可存放10条指令,分配给一个作业的内存块为4。模拟一个作业的执行过程,该作业有320条指令,即它的地址空间为32页,目前所有页还没有调入内存。
模拟过程:
- 在模拟过程中,如果所访问指令在内存中,则显示其物理地址,并转到下一条指令;如果没有在内存中,则发生缺页,此时需要记录缺页次数,并将其调入内存。如果4个内存块中已装入作业,则需进行页面置换。
- 320条随机指令:
- 地址形成规则:50%的指令是顺序执行的,25%均匀分布在前地址部分,25%均匀分布在后地址部分;
- 随机指令产生规则:
- 在[0, 319]条指令之间,随机选取一个起始执行指令,序号为m;
- 顺序执行下一条指令(m+1);
- 通过随机数,跳转到前地址部分[0, m-1]中的某个指令处,序号为m1;
- 顺序执行下一条指令(m1+1);
- 通过随机数,跳转到后地址部分[m1+2, 319]中的某个指令处,序号为m2;
- 顺序执行下一条指令(m2+1);
- 重复步骤1-7,直到执行完320条指令。
- 根据用户的选择采用FIFO或LRU算法进行页面置换,所有320条指令执行完成后,计算并显示作业执行过程中发生的缺页率;
在内存中开辟一个空间作为文件存储器,在其上实现一个简单的文件系统。退出这个系统时,需要将该文件系统的内容保存到磁盘上,以便下次可以将其恢复到内存中来。