|
|
4dd6b6e928
|
fix: do not leak when inserting the same page twice, just update
|
2024-12-05 19:38:27 +00:00 |
|
|
|
0f1f7b9a6f
|
refactor: extract init_pages
|
2024-12-05 19:35:39 +00:00 |
|
Themis Demetriades
|
d03e253046
|
feat: implement synchronisation to protecting access to PTEs of SPTs during eviction
|
2024-12-05 16:51:15 +00:00 |
|
sBubshait
|
c12cd95093
|
Fix issues with merging, duplicate references and definition of VM
|
2024-12-05 02:27:48 +00:00 |
|
sBubshait
|
f13fd435cd
|
Merge remote-tracking branch 'origin/vm/page-swap-synch' into vm/virtual-memory/saleh
# Conflicts:
# .gitlab-ci.yml
# src/Makefile.build
# src/threads/thread.c
# src/userprog/exception.c
# src/userprog/process.c
# src/vm/frame.c
# src/vm/page.c
# src/vm/page.h
# src/vm/stackgrowth.c
# src/vm/stackgrowth.h
|
2024-12-05 02:21:53 +00:00 |
|
EDiasAlberto
|
ac31fb1e1e
|
feat: set accessed bit to allocated frames in page_load and get_usr_kpage
|
2024-12-05 01:41:23 +00:00 |
|
sBubshait
|
26a2d40325
|
Implement implicitly unmapping all mmapped files when a process exits. Refactor to reduce duplication
|
2024-12-04 22:00:59 +00:00 |
|
Themis Demetriades
|
1e236a5c47
|
Merge branch 'vm/lazy-loading' into vm/page-swap-synch
|
2024-12-04 19:11:37 +00:00 |
|
sBubshait
|
ecbb4e74a5
|
Implement the unmap system call, writing back to the file if a page is dirty before removing from SPT
|
2024-12-04 19:07:28 +00:00 |
|
sBubshait
|
02b79d1934
|
Update mmap to add temporarily page_set_swap until swap is implemented
|
2024-12-04 18:13:07 +00:00 |
|
sBubshait
|
857cae3578
|
Update mmap to add a get helper function to find a mmap entry from its mapping
|
2024-12-04 18:08:05 +00:00 |
|
sBubshait
|
941e1e067a
|
Update SPT page entry to change type from EXECUTABLE to PAGE_FILE to capture mmaps in addition to executables
|
2024-12-04 17:51:30 +00:00 |
|
sBubshait
|
72fa0c1bbb
|
Fix Bug: Initialise the mmap table for the newly created thread rather than the current thread
|
2024-12-04 17:41:14 +00:00 |
|
Themis Demetriades
|
4bf6914cfa
|
feat: incorporate lazy-loading data & helpers into supplemental page table
|
2024-12-04 16:45:36 +00:00 |
|
Themis Demetriades
|
fb73d694bf
|
fix: frame allocation now invalidates the victim process page directory, not the caller's
|
2024-12-04 16:41:13 +00:00 |
|
sBubshait
|
6b0f708d8f
|
Update mmap to add an insert helper function to allocate and add new mmap entries to the hash table
|
2024-12-04 15:26:00 +00:00 |
|
sBubshait
|
a2f46f3b72
|
Add a mmap destroy function to cleanup all mmap hash table entries upon thread exit
|
2024-12-04 15:14:02 +00:00 |
|
sBubshait
|
1ce09a49a1
|
Add helper functions to initialise the memory-mapped files table and counter
|
2024-12-04 15:08:43 +00:00 |
|
Themis Demetriades
|
1b73e415d7
|
fix: invalidate PTEs of evicted pages before eviction occurs to prevent modificationof pages mid-eviction
|
2024-12-04 15:02:49 +00:00 |
|
sBubshait
|
acc768e177
|
Add mmap module in vm defining mmap_entry structure and some helper functions
|
2024-12-04 13:01:01 +00:00 |
|
Themis Demetriades
|
08eafcf7ef
|
feat: implement page swapping
|
2024-12-03 16:53:47 +00:00 |
|
Themis Demetriades
|
df7d847978
|
fix: remove stack fault checks for page faults outside user non-present addresses
|
2024-12-02 21:07:17 +00:00 |
|
Themis Demetriades
|
6adf2e743b
|
refactor: dynamic stack growth functions to follow code style
|
2024-12-02 19:50:40 +00:00 |
|
Themis Demetriades
|
bb16abdc0d
|
refactor: supplemental page table helper functions follow code style
|
2024-12-01 23:30:50 +00:00 |
|
Demetriades, Themis
|
9d35beb2e4
|
Merge branch 'virtual-memory' into 'page-swap-helpers'
# Conflicts:
# src/vm/frame.c
# src/vm/page.c
|
2024-12-01 21:44:17 +00:00 |
|
Demetriades, Themis
|
d8edc6d3fe
|
Merge branch 'virtual-memory' into 'ethan-stack-growth'
# Conflicts:
# src/Makefile.build
|
2024-11-30 23:21:16 +00:00 |
|
Themis Demetriades
|
6f85d7642d
|
feat: implement clock (second-chance) page eviction algorithm
|
2024-11-30 22:40:13 +00:00 |
|
EDiasAlberto
|
94adc11f03
|
Feat: implement page_get_swap and page_set_swap functions
|
2024-11-30 03:21:34 +00:00 |
|
EDiasAlberto
|
40c553d68b
|
Merge stack growth functions
|
2024-11-30 01:54:28 +00:00 |
|
EDiasAlberto
|
13de832586
|
Refactor stack growth code to remove messy conditions
|
2024-11-29 23:52:05 +00:00 |
|
Themis Demetriades
|
149bb42889
|
feat: implement clock (second-chance) page eviction algorithm
|
2024-11-29 19:30:47 +00:00 |
|
sBubshait
|
92d0b68243
|
Fix: Avoid closing the file after loading segments to be able to lazily load from file without opening, w/ G
|
2024-11-29 14:32:55 +00:00 |
|
sBubshait
|
801fd7d310
|
Implement page fault for lazy loading executables, w/ G
|
2024-11-28 20:03:50 +00:00 |
|
sBubshait
|
97e6e0fb1e
|
Add SPT Helper Functions: Insert, Get, Cleanup w/ G
|
2024-11-28 18:18:52 +00:00 |
|
sBubshait
|
14fc96febf
|
Implement Supplemental Page Table (SPT) per thread along with structure for its entries, w/ G
|
2024-11-28 17:54:15 +00:00 |
|
EDiasAlberto
|
4f84a83611
|
Refactor: abstract new page allocation to one general function and make helper functions static
|
2024-11-27 19:41:22 +00:00 |
|
EDiasAlberto
|
c670c29e47
|
update stack growth header to fit virtual memory naming format
|
2024-11-27 18:57:20 +00:00 |
|
Themis Demetriades
|
1e6b90da0d
|
Implement skeleton for swapping frames into disk
|
2024-11-26 18:59:46 +00:00 |
|
Themis Demetriades
|
ea2725f606
|
feat: implement frame table without thread safety
|
2024-11-26 15:17:11 +00:00 |
|
EDiasAlberto
|
af7f2ba873
|
Fix: Magic number in stackgrowth.c
|
2024-11-26 04:54:00 +00:00 |
|
EDiasAlberto
|
3ef5264b6e
|
feat: allow stack to grow for process up to 8MB in size
|
2024-11-26 04:43:25 +00:00 |
|
LabTS
|
8724a2641e
|
provided code
|
2024-10-01 23:37:39 +01:00 |
|