About this Assignment
In this project, you will write code that emulates how operating systems manage interaction between files and memory. The code you are writing will be functions that provide interaction between the code you have seen in the chapters Memory Management & Operating Systems and File Management Systems. As the functionality you are developing is file management related, you are required to develop your code as methods in the file management class. Upon completion of this project you will be able to:
- Describe how operating systems manage files in memory
- Write simple codes to emulate basic functionalities of operating systems
Prompt
In this project, assume that files are stored on the hard disk using linked storage allocation. Your task is to write a code that:
- Collects information about all the fragments of the file from the hard disc in order to calculate the total required space needed for the file in memory
- Calculates the space required to store the file in memory (For simplicity, you can assume that this space equals only to the total size of the file. Do not consider other related metadata)
- Allocates space in memory for the file. If needed, you can use the code you wrote in Assignment 1: Solving Memory Management Problems to liberate space in memory
Use the following example as a use case to build your code:
Total Memory size = 20 Kbyte
Page size = 1 Kbyte
Initial memory state
Note that all processes are in sleep state at the end of their respective time intervals in the previous table. Your program should not be limited to the previous use case and you are required to test it against different other use cases.
Here is the information related to the file:
- File size = 8Kbyte
- Disk bloc size= 1 Kbyte
- File initially allocated the following disk blocs: 8, 12, 1, 28, 11, 12, 4, 5
- File required to be transferred to the memory in time interval 12
- File required to stay in memory up to interval 16