Task 1
On a fictitious computer of 32 bits, paging memory management system is used to manage its main memory (physical memory), 1G in size. In this computer, all the main memory can be used for user processes (i.e., ignoring the memory requirement for the operating system). A program requires an array of 512 elements, and each element requires 4M memory. To run this program, 2G memory space is thus needed for the array:
4M×512 = 22×220 ×29 =2×230=2G
For this assignment, we use this measure system:
1K=210=1024,
1M=1K×1K=210×210=220, and
1G=1K×1M=210×220=230
Explain how the computer system accommodating the 2G memory requirement by only using 1G physical memory. Assume that the page size is 4M, and so is the page frame size (This extraordinarily big size is chosen to make the calculation easier in this assignment task).
1. Explain what logic memory addresses are, what physical memory addresses are, and the relationship between them.
2. What are pages, page frames, page faults, and a page table?
3. In this computer system, how many bits are used for page numbers, and how many bits are used for the addresses inside of a page? What is the maximum number of pages? (Hint: the sum of the bits used for the page numbers and the bits used for the addresses inside of a page should be 32).
4. What is the minimum number of page faults incurred for the program to access each element of the array at least once? What situation makes the access of an element of the array longest in terms of time, and what situation makes the access of an element of the array shortest in terms of time?
Task 2
You are given 4 hard disks, 1 Terabyte each, to build a RAID system. You should use all the 4 disks. Please explain your choice of the RAID level and the size of your RAID disk (the virtual disk presented by the RAID) under each of the 2 restrictions listed below:
- the maximum possible RAID disk size, or
- the best possible read/write performance.
Advanced Level Tasks
Task 1
Write a program with the programming language of your choice and on the platform of your choice to mimic the possible page faults incurred in Task 1, Intermediate Level Tasks. Assume that you are given only 32 page frames for the array of this program (process, when in execution), and the 32 page frames are for the array only. Page replacement is done by the least recently used (LRU) policy. Each array element is visited twice by the using the 2 different manners (in different runs) listed below:
- Consecutive visit: the first visit to an element is immediately followed by the second visit to the element, and
- Random visit: a random delay between the first visit to an element and the second visit to the element.
Please report your program logic and the experiment outcomes:
- How many page faults, in average, with the consecutive visit manner?
- How many page faults, in average, with the random visit manner?