Commit Graph

  • 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