From 05216a4ad06e4617838afcd4dc7317a203a3887b Mon Sep 17 00:00:00 2001 From: pacien Date: Tue, 1 May 2018 15:55:45 +0200 Subject: Reformat code --- fifo.py | 5 ++--- lru.py | 21 ++++++++++++++------- mem.py | 4 ++-- myMemory.1 | 2 +- myMemory.py | 5 ++--- pageexception.py | 10 ++++++++-- randomp.py | 6 +++--- readme.md | 4 +--- secondchance.py | 7 +++---- 9 files changed, 36 insertions(+), 28 deletions(-) diff --git a/fifo.py b/fifo.py index c48629f..1881870 100644 --- a/fifo.py +++ b/fifo.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -# UPEM / Programmation système / Projet : Simulation de gestion de mémoire virtuelle -# Pacien TRAN-GIRARD et Adam NAILI +# UPEM / System programming / Project: Memory paging simulator +# Pacien TRAN-GIRARD, Adam NAILI from mem import Memory from pageexception import * @@ -24,4 +24,3 @@ class FifoPaginator: if page in self.mem.virt: self.mem.remove_virt(page) overwritten = self._put_main(page) if overwritten is not None: self.mem.put_virt(overwritten) - diff --git a/lru.py b/lru.py index 3042bba..53b122a 100644 --- a/lru.py +++ b/lru.py @@ -1,15 +1,19 @@ #!/usr/bin/env python3 +# UPEM / System programming / Project: Memory paging simulator +# Pacien TRAN-GIRARD, Adam NAILI + from mem import Memory from pageexception import * + class LruPaginator: def __init__(self, mem): self.mem = mem self._global_counter = 1 - self._check_table = [0 for _ in range(len(mem.main)+len(mem.virt))] + self._check_table = [0 for _ in range(len(mem.main) + len(mem.virt))] self._main_cursor = 0 - + def _update_check_table(self, page): """ >>> lru = LruPaginator(Memory(3,5)) @@ -25,11 +29,11 @@ class LruPaginator: def _check_where_to_replace(self): """ - >>> lru = LruPaginator(Memory(3,5)) + >>> lru = LruPaginator(Memory(3, 5)) >>> lru._check_where_to_replace() >>> print(lru._main_cursor) 0 - >>> lru.mem.main = [3,4,2] + >>> lru.mem.main = [3, 4, 2] >>> lru._check_table = [1, 3, 6, 4, 5, 0, 0, 0] >>> lru._check_where_to_replace() >>> print(lru._main_cursor) @@ -39,8 +43,10 @@ class LruPaginator: if page is None: self._main_cursor = self.mem.main.index(page) return + min = self._check_table[self.mem.main[0]] self._main_cursor = 0 + for page in self.mem.main: if min > self._check_table[page]: min = self._check_table[page] @@ -54,13 +60,14 @@ class LruPaginator: overwritten = self.mem.main[self._main_cursor] self.mem.main[self._main_cursor] = page self._update_check_table(page) - return overwritten - + return overwritten + def load(self, page): if not self.mem.page_in_range(page): raise PageException - if page in self.mem.main: + if page in self.mem.main: self._update_check_table(page) return + if page in self.mem.virt: self.mem.remove_virt(page) overwritten = self._put_main(page) if overwritten is not None: self.mem.put_virt(overwritten) diff --git a/mem.py b/mem.py index c83d69d..cc42eaf 100644 --- a/mem.py +++ b/mem.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -# UPEM / Programmation système / Projet : Simulation de gestion de mémoire virtuelle -# Pacien TRAN-GIRARD et Adam NAILI +# UPEM / System programming / Project: Memory paging simulator +# Pacien TRAN-GIRARD, Adam NAILI class Memory: diff --git a/myMemory.1 b/myMemory.1 index 7ca425a..4de19ab 100644 --- a/myMemory.1 +++ b/myMemory.1 @@ -25,7 +25,7 @@ Selects and replaces a page randomly. .IP secondchance "Second chance" strategy similar to FIFO, but avoiding swapping out pages requested twice while they are in the main memory. .SH COMMANDS -The following commands can be used to interact with the simulator: +The following commands can be used to interact with the simulator: .IP "A number" Requests a page to be loaded in the main memory. .IP `p` diff --git a/myMemory.py b/myMemory.py index f3da2a0..02f6dbe 100755 --- a/myMemory.py +++ b/myMemory.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -# UPEM / Programmation système / Projet : Simulation de gestion de mémoire virtuelle -# Pacien TRAN-GIRARD et Adam NAILI +# UPEM / System programming / Project: Memory paging simulator +# Pacien TRAN-GIRARD, Adam NAILI from mem import Memory from pageexception import * @@ -52,4 +52,3 @@ if __name__ == '__main__': args = argparser.parse_args() assert args.mem_size < args.virtual_size main(args.mem_size, args.virtual_size, paginators[args.algorithm]) - diff --git a/pageexception.py b/pageexception.py index 9a1519d..8c95b95 100644 --- a/pageexception.py +++ b/pageexception.py @@ -1,3 +1,9 @@ +#!/usr/bin/env python3 + +# UPEM / System programming / Project: Memory paging simulator +# Pacien TRAN-GIRARD, Adam NAILI + + class PageException(Exception): - def __init__(self): - super().__init__() + def __init__(self): + super().__init__() diff --git a/randomp.py b/randomp.py index 48e9abf..065b679 100644 --- a/randomp.py +++ b/randomp.py @@ -1,12 +1,13 @@ #!/usr/bin/env python3 -# UPEM / Programmation système / Projet : Simulation de gestion de mémoire virtuelle -# Pacien TRAN-GIRARD et Adam NAILI from random import randint from mem import Memory from pageexception import PageException +# UPEM / System programming / Project: Memory paging simulator +# Pacien TRAN-GIRARD, Adam NAILI + class RandomPaginator: def __init__(self, mem): @@ -32,4 +33,3 @@ class RandomPaginator: if page in self.mem.virt: self.mem.remove_virt(page) overwritten = self._put_main(page) if overwritten is not None: self.mem.put_virt(overwritten) - diff --git a/readme.md b/readme.md index b3c218f..60d19cb 100644 --- a/readme.md +++ b/readme.md @@ -1,5 +1,4 @@ -# UPEM / Programmation système / Projet : Simulation de gestion de mémoire virtuelle - +# UPEM / System programming / Project: Memory paging simulator ## Usage @@ -16,4 +15,3 @@ ## License Project distributed under the terms of the Creative Commons BY-NC-SA 3.0 license. - diff --git a/secondchance.py b/secondchance.py index b0fb1f9..d6617de 100644 --- a/secondchance.py +++ b/secondchance.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -# UPEM / Programmation système / Projet : Simulation de gestion de mémoire virtuelle -# Pacien TRAN-GIRARD et Adam NAILI +# UPEM / System programming / Project: Memory paging simulator +# Pacien TRAN-GIRARD, Adam NAILI from mem import Memory from pageexception import * @@ -25,10 +25,9 @@ class SecondChancePaginator: def load(self, page): if not self.mem.page_in_range(page): raise PageException - if page in self.mem.main: + if page in self.mem.main: self._check_table[page] = 1 return if page in self.mem.virt: self.mem.remove_virt(page) overwritten = self._put_main(page) if overwritten is not None: self.mem.put_virt(overwritten) - -- cgit v1.2.3