aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--report.md45
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
3This 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
8This program has been implemented in Python.
9This language choice has been approved by Sylvain Cherrier on 2018-03-17.
10
11Python 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
13The 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
15Of 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
20The different paging algorithms all satisfy an implicit interface in the simulator.
21
22Possibility is offered to the user to select a paging algorithm of their choice.
23
24
25## Page replacement algorithms
26
27### Available strategies
28
29The 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
36The following algorithms have NOT been implemented, but can easily be added:
37
38* NRU
39* NFU
40* aging
41* LDF
42
43### Observations
44
45No 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.