Skip to content
This repository has been archived by the owner on Sep 11, 2020. It is now read-only.

Spring 2018 Operating Systems - Assignments (Elevator Scheduling, Memory Management and File Management) | 操作系统课程项目(电梯调度,内存管理,文件管理)

Renovamen/Operating-Systems

Repository files navigation

Operating Systems

操作系统课程项目。

Assignment 1 - Elevator Scheduling

某一层楼20层,有五部互联的电梯。基于线程思想,编写一个电梯调度程序,程序中需包含以下功能:

  • 每个电梯能选择前往比当前楼层高或低的楼层;
  • 每个电梯设有警报键,能控制该电梯工作或不工作;
  • 每个电梯设有开关门键;
  • 能够显示每个电梯的所在楼层、运行状态;
  • 五部电梯门口的按钮相互联结;
  • 所有电梯初始状态都在第一层。每个电梯如果没有被请求,应在原地保持不动。

Assignment 2 - Memory Management

请求调页模拟。

假设每个页面可存放10条指令,分配给一个作业的内存块为4。模拟一个作业的执行过程,该作业有320条指令,即它的地址空间为32页,目前所有页还没有调入内存。

模拟过程:

  • 在模拟过程中,如果所访问指令在内存中,则显示其物理地址,并转到下一条指令;如果没有在内存中,则发生缺页,此时需要记录缺页次数,并将其调入内存。如果4个内存块中已装入作业,则需进行页面置换。
  • 320条随机指令:
    • 地址形成规则:50%的指令是顺序执行的,25%均匀分布在前地址部分,25%均匀分布在后地址部分;
    • 随机指令产生规则:
      1. 在[0, 319]条指令之间,随机选取一个起始执行指令,序号为m;
      2. 顺序执行下一条指令(m+1);
      3. 通过随机数,跳转到前地址部分[0, m-1]中的某个指令处,序号为m1;
      4. 顺序执行下一条指令(m1+1);
      5. 通过随机数,跳转到后地址部分[m1+2, 319]中的某个指令处,序号为m2;
      6. 顺序执行下一条指令(m2+1);
      7. 重复步骤1-7,直到执行完320条指令。
  • 根据用户的选择采用FIFO或LRU算法进行页面置换,所有320条指令执行完成后,计算并显示作业执行过程中发生的缺页率;

Assignment 3 - File Management

在内存中开辟一个空间作为文件存储器,在其上实现一个简单的文件系统。退出这个系统时,需要将该文件系统的内容保存到磁盘上,以便下次可以将其恢复到内存中来。

About

Spring 2018 Operating Systems - Assignments (Elevator Scheduling, Memory Management and File Management) | 操作系统课程项目(电梯调度,内存管理,文件管理)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published