diff options
-rw-r--r-- | report.md | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/report.md b/report.md new file mode 100644 index 0000000..83c893f --- /dev/null +++ b/report.md | |||
@@ -0,0 +1,45 @@ | |||
1 | # UPEM / System programming / Project: Memory paging simulator | ||
2 | |||
3 | This file document explains the motivation behind implementation choices that have been made during the development of this paging simulator. | ||
4 | |||
5 | |||
6 | ## Language choice | ||
7 | |||
8 | This program has been implemented in Python. | ||
9 | This language choice has been approved by Sylvain Cherrier on 2018-03-17. | ||
10 | |||
11 | Python has been chosen for its conciseness, expressiveness, object and inheritance support and its various libraries easing the development of the interactive command line interface and swappable algorithms. | ||
12 | |||
13 | The simplicity of this language enabled the developers to focus on the different paging strategies and their algorithmic value, freeing them from string management in the context of a simulator. | ||
14 | |||
15 | Of course, a real paging system implementation would have been made in a lower level programming language, or even been made at the hardware level. | ||
16 | |||
17 | |||
18 | ## Architecture | ||
19 | |||
20 | The different paging algorithms all satisfy an implicit interface in the simulator. | ||
21 | |||
22 | Possibility is offered to the user to select a paging algorithm of their choice. | ||
23 | |||
24 | |||
25 | ## Page replacement algorithms | ||
26 | |||
27 | ### Available strategies | ||
28 | |||
29 | The following paging algorithms have been implemented and shortly described in the attached man pae: | ||
30 | |||
31 | * FIFO (clock-variant) | ||
32 | * random | ||
33 | * LRU | ||
34 | * second chance | ||
35 | |||
36 | The following algorithms have NOT been implemented, but can easily be added: | ||
37 | |||
38 | * NRU | ||
39 | * NFU | ||
40 | * aging | ||
41 | * LDF | ||
42 | |||
43 | ### Observations | ||
44 | |||
45 | No useful conclusion regarding the efficiency of each algorithm could have been drawn from the use of the manually, user-operated simulator. Real-world in-context use is required. | ||