This website requires JavaScript.
bb16abdc0d
refactor: supplemental page table helper functions follow code style
Themis Demetriades
2024-12-01 23:30:50 +00:00
8e278b349a
Merge branch 'page-swap-helpers' into 'virtual-memory'
Demetriades, Themis
2024-12-01 21:47:30 +00:00
9d35beb2e4
Merge branch 'virtual-memory' into 'page-swap-helpers'
Demetriades, Themis
2024-12-01 21:44:17 +00:00
7ce512305e
fix: remove DVM flag when compiling outside of vm directory
Themis Demetriades
2024-12-01 00:41:09 +00:00
775b73a3e9
Merge branch 'ethan-stack-growth' into 'virtual-memory'
Demetriades, Themis
2024-11-30 23:21:33 +00:00
d8edc6d3fe
Merge branch 'virtual-memory' into 'ethan-stack-growth'
ethan-stack-growth
Demetriades, Themis
2024-11-30 23:21:16 +00:00
5682974f9d
Merge branch 'vm/supplemental-page-table' into 'master'
Demetriades, Themis
2024-11-30 23:01:04 +00:00
6f85d7642d
feat: implement clock (second-chance) page eviction algorithm
vm/supplemental-page-table
Themis Demetriades
2024-11-30 22:40:13 +00:00
6218b5e80d
fix: invert result of file_compare for shared_file_less
Gleb Koval
2024-11-30 11:49:19 +00:00
94adc11f03
Feat: implement page_get_swap and page_set_swap functions
EDiasAlberto
2024-11-30 03:21:34 +00:00
dca773addc
Update Exception To Debug Shared files, w/ G
sBubshait
2024-11-30 03:00:17 +00:00
40c553d68b
Merge stack growth functions
EDiasAlberto
2024-11-30 01:54:28 +00:00
0b08893aaf
Update page_load to create and use the shared read-only pages of executables, w/ G
sBubshait
2024-11-30 01:54:10 +00:00
f4910bdefb
Initialised shared_files global hash table, w/ G
sBubshait
2024-11-30 01:23:33 +00:00
ba72345f96
Add data structures for shared executable files along with helper methods for them, w/ G
sBubshait
2024-11-30 01:15:50 +00:00
13de832586
Refactor stack growth code to remove messy conditions
EDiasAlberto
2024-11-29 23:52:05 +00:00
5c661c2e24
Feat: pointer validation checks string across multiple pages and handle kernel page faults
EDiasAlberto
2024-11-29 23:49:49 +00:00
5f40d83e66
Implement MMU-based user memory validation
EDiasAlberto
2024-11-29 23:03:31 +00:00
149bb42889
feat: implement clock (second-chance) page eviction algorithm
Themis Demetriades
2024-11-29 19:30:47 +00:00
8047c65227
Update syscall handling of invalid pointers by preloading pages using the helper try_fetch_page
vm/lazy-loading
sBubshait
2024-11-29 18:55:28 +00:00
d047a3c242
Update Userprog Makefile to include vm files
sBubshait
2024-11-29 18:49:26 +00:00
c8b93c57ee
Fix: Update writability of the last page after loading as a workaround to calculating the offset, w/ G
sBubshait
2024-11-29 15:45:44 +00:00
92d0b68243
Fix: Avoid closing the file after loading segments to be able to lazily load from file without opening, w/ G
sBubshait
2024-11-29 14:32:55 +00:00
801fd7d310
Implement page fault for lazy loading executables, w/ G
sBubshait
2024-11-28 20:03:50 +00:00
df20e0fdfe
Update load_segment to load only the metadata of the pages to the SPT, w/ G
sBubshait
2024-11-28 18:35:49 +00:00
97e6e0fb1e
Add SPT Helper Functions: Insert, Get, Cleanup w/ G
sBubshait
2024-11-28 18:18:41 +00:00
14fc96febf
Implement Supplemental Page Table (SPT) per thread along with structure for its entries, w/ G
sBubshait
2024-11-28 17:54:15 +00:00
4f84a83611
Refactor: abstract new page allocation to one general function and make helper functions static
EDiasAlberto
2024-11-27 19:41:22 +00:00
c74a8c55aa
Implement stack growth for system calls and add stack pointer tracking to thread
EDiasAlberto
2024-11-27 19:21:43 +00:00
c670c29e47
update stack growth header to fit virtual memory naming format
EDiasAlberto
2024-11-27 18:57:20 +00:00
1e6b90da0d
Implement skeleton for swapping frames into disk
Themis Demetriades
2024-11-26 18:59:46 +00:00
ea2725f606
feat: implement frame table without thread safety
vm/frame-table
Themis Demetriades
2024-11-26 15:17:11 +00:00
af7f2ba873
Fix: Magic number in stackgrowth.c
EDiasAlberto
2024-11-26 04:54:00 +00:00
3ef5264b6e
feat: allow stack to grow for process up to 8MB in size
EDiasAlberto
2024-11-26 04:43:25 +00:00
605050e38d
Merge branch 'code-review-2-changes' into 'master'
Demetriades, Themis
2024-11-24 16:52:48 +00:00
6225a2eb8b
fix: ignore failing tests for now
Gleb Koval
2024-11-24 16:13:29 +00:00
aedb72246b
fix: do not acquire filesys_lock for tell and seek
handle-unchecked-malloc-thread
Gleb Koval
2024-11-24 15:41:18 +00:00
e1f0258f8e
fix: handle malloc result in init_process_result
Gleb Koval
2024-11-24 15:09:32 +00:00
eed4ce5130
Merge branch 'single-exit-status' into 'master'
Task_2_-_User_Programs
Saleh Bubshait
2024-11-15 18:08:25 +00:00
8567434231
Use a single exit_status instead of two
Gleb Koval
2024-11-15 17:20:51 +00:00
e76712d3fd
Merge branch 'task2/thread-init-bug-fix' into 'master'
Gleb Koval
2024-11-15 17:17:14 +00:00
8f82f9d747
Fix Bug in fd_counter initialisation when USERPROG is not defined
sBubshait
2024-11-15 16:57:16 +00:00
9ee29ac40a
Merge branch 'child-results-hash-table' into 'master'
Saleh Bubshait
2024-11-15 16:48:41 +00:00
2566948a32
Implement hash table for child process results
Gleb Koval
2024-11-15 16:37:42 +00:00
222aeff90f
Merge branch 'task2/refactoring/saleh' into 'master'
Gleb Koval
2024-11-15 16:41:12 +00:00
ea3b3594ea
Update fd_hash to use the fd itself as the hash value for performance, w/ G & E
task2/refactoring/saleh
system-calls-fd-hashing
sBubshait
2024-11-15 15:53:01 +00:00
6b1dbdd34f
Update thread and syscall to use local fd counter instead global one, preventing overflow
sBubshait
2024-11-15 15:48:56 +00:00
7daf4fb079
Refactor process_exit to add more comments for readability
sBubshait
2024-11-15 15:35:07 +00:00
a7f1d519da
Refactor process_wait to add more comments and improve readability
sBubshait
2024-11-15 15:09:24 +00:00
0f1bce2e88
Refactor process_init_stack to add asserts and comments
sBubshait
2024-11-15 14:52:21 +00:00
f4c900e56c
Refactor process.c for comments, clarity and readability
sBubshait
2024-11-15 14:37:38 +00:00
82d45880f7
Update validate_user_pointer to start from the beginning of the page rather than the given ptr
sBubshait
2024-11-15 13:49:58 +00:00
1c757ecdfe
Update syscall to add more helpful comments for clarity and readability
sBubshait
2024-11-15 13:44:21 +00:00
6a1d10a19b
Refactor synch to follow PintOS curly braces indentation style in if statements
sBubshait
2024-11-15 13:28:55 +00:00
0e50603eef
Merge branch 'stack-init-overflowfix' into 'master'
Demetriades, Themis
2024-11-15 13:41:41 +00:00
7947ac78e8
Remove args-ovf user program binary, replacing with source for testing
Themis Demetriades
2024-11-15 13:40:16 +00:00
4b0d0a51f0
Merge branch 'stack-init-overflowfix' into 'master'
Demetriades, Themis
2024-11-15 13:38:35 +00:00
eff0837fdc
Update stack initialization code to handle all possible overflows and implement a user program to test this
Themis Demetriades
2024-11-15 13:35:58 +00:00
9b82947beb
Merge branch 'stack-init-memfix' into 'master'
Demetriades, Themis
2024-11-14 21:06:20 +00:00
5e2e7199f2
Fix memory leak in start_process
Themis Demetriades
2024-11-14 21:03:55 +00:00
bbe41e178d
Merge branch 'stack-init-optimize' into 'master'
Demetriades, Themis
2024-11-14 16:06:22 +00:00
e4036c715f
Refactor start_process to hold file system lock for less time
Themis Demetriades
2024-11-14 16:05:15 +00:00
3a46e0f73a
Update user proc stack initialization comments to be more helpful
Themis Demetriades
2024-11-14 15:54:34 +00:00
8821851459
Refactor process_execute to remove use of 'goto'
Themis Demetriades
2024-11-14 14:42:26 +00:00
1a2ff35231
Refactor process_execute to pass process start data as a local reference rather than perform memory allocation on the heap
Themis Demetriades
2024-11-14 14:32:48 +00:00
149b0a9d87
Remove filesys CI for gitlab
remove-filesys-ci
Gleb Koval
2024-11-14 03:25:33 +00:00
79b3b8fda7
Merge branch 'userprog-oom' into 'master'
Saleh Bubshait
2024-11-13 22:09:11 +00:00
f5e498e0a9
explicit thread_exit () when process_start () fails
Gleb Koval
2024-11-13 21:58:41 +00:00
e1489e5244
Fix Bug: Free all entries in the fd hashtable when the process exits, (Saleh, Ethan)
themis/userprog-multi-oom
Themis Demetriades
2024-11-13 21:57:41 +00:00
785f1a8d62
Fix child_results loop accessing after free()
Themis Demetriades
2024-11-13 21:52:38 +00:00
d02b956221
Merge branch 'system-calls' into 'userprog-oom'
Gleb Koval
2024-11-13 19:20:19 +00:00
1368fa144a
Add debugging messages for probing multi-oom test case
Themis Demetriades
2024-11-13 18:57:02 +00:00
927c376d02
Merge branch 'task2/system-calls/saleh' into 'system-calls'
system-calls
Saleh Bubshait
2024-11-13 18:51:51 +00:00
fa2fb4a711
Refactor system call comments for accuracy and grammar
task2/system-calls/saleh
sBubshait
2024-11-13 18:48:23 +00:00
31ea215805
Refactor validate_user_string to remove unnecessary variable to track length of str
sBubshait
2024-11-13 18:30:24 +00:00
e7cb16b301
Fix child_results loop accessing next after free()
Gleb Koval
2024-11-13 18:29:05 +00:00
9549ca28e5
Refactor syscall: Use EXIT_FAILURE instead of magic numbers & close files on failure
sBubshait
2024-11-13 18:18:41 +00:00
b1c5819469
Avoid masking the struct syscall_arguments using typedef for consistency
sBubshait
2024-11-13 18:06:51 +00:00
287130ca7b
Update syscall.c to use syscall_exit on failure instead of calling thread_exit directly
sBubshait
2024-11-13 18:02:08 +00:00
446c50ea29
Remove superfluous process_exit () in start_process
Themis Demetriades
2024-11-13 17:58:34 +00:00
4f586bb4da
Fix Bug: Free all entries in the fd hashtable when the process exits, w/ E
sBubshait
2024-11-13 17:42:25 +00:00
be68d81cf6
Fix memory leak in start_process due to not freeing proc_start_data when success in initializing stack
Themis Demetriades
2024-11-13 17:21:38 +00:00
d890c2353e
Add constant MAX_SYSCALL_ARGS to avoid magic numbers [Gleb]
sBubshait
2024-11-13 17:15:56 +00:00
eb4f23c290
Add validate_user_string helper function to validate that a string is fully conatined within user vm
sBubshait
2024-11-13 17:11:37 +00:00
26de38cdba
Update validate_user_pointer to check if the memory block is mapped into a physical address
sBubshait
2024-11-13 16:39:45 +00:00
6e59e8c9f3
Update validate_user_pointer to be a void function
sBubshait
2024-11-13 16:22:16 +00:00
30e49846b5
Add more tests for system calls to deal with bad buffers given to read and write
sBubshait
2024-11-13 16:21:12 +00:00
005791edd2
Synchronise process_execute return with child process load
Gleb Koval
2024-11-13 11:01:20 +00:00
8bcd0a467c
Tidy up a69b9c808e
userprog-syn-write
Gleb Koval
2024-11-12 21:35:41 +00:00
dd979f34c8
Fix syn-read, syn-write, and always free elements from donors_list
Gleb Koval
2024-11-12 21:30:23 +00:00
ca9d23edf9
Always release filesys_lock when checking if file is valid in process_execute
Gleb Koval
2024-11-12 20:07:51 +00:00
d878dbc132
Fix bug in userprog-merge where file writes were denied in the wrong thread
Themis Demetriades
2024-11-12 16:22:32 +00:00
b0400693ae
Update process_execute to acquire lock when checking if file exists
Themis Demetriades
2024-11-12 16:12:24 +00:00
3418425f20
Don't acquire filesys lock when calling exec
Themis Demetriades
2024-11-12 16:08:27 +00:00
987a71ec40
Fix rox checking and make filesys_lock global
rox-check-fix
EDiasAlberto
2024-11-12 16:00:19 +00:00
59e7a64f8e
Only check user pages rather than all bytes in-between, for known-size pointers
user-memory
Gleb Koval
2024-11-12 15:48:22 +00:00
cf4bf90cbb
Implement user pointer checking for C strings
Gleb Koval
2024-11-12 15:34:45 +00:00
9a6abab95e
Check access to user memory using page fault method (via get_user and put_user).
Gleb Koval
2024-11-08 01:23:45 +00:00
44f6a85163
Add get_user and put_user provided by spec.
Gleb Koval
2024-11-08 01:21:20 +00:00
83e044cf68
Let kernel handle its own page faults
Gleb Koval
2024-11-08 01:18:17 +00:00