Commit Graph

116 Commits

Author SHA1 Message Date
sBubshait
8f82f9d747 Fix Bug in fd_counter initialisation when USERPROG is not defined 2024-11-15 16:57:16 +00:00
2566948a32 Implement hash table for child process results 2024-11-15 16:45:04 +00:00
sBubshait
6b1dbdd34f Update thread and syscall to use local fd counter instead global one, preventing overflow 2024-11-15 15:48:56 +00:00
sBubshait
6a1d10a19b Refactor synch to follow PintOS curly braces indentation style in if statements 2024-11-15 13:51:10 +00:00
dd979f34c8 Fix syn-read, syn-write, and always free elements from donors_list 2024-11-12 21:30:23 +00:00
Themis Demetriades
d878dbc132 Fix bug in userprog-merge where file writes were denied in the wrong thread 2024-11-12 16:22:32 +00:00
Demetriades, Themis
47c3657b65 Merge branch 'process-wait' into 'userprog-merge'
Fix race-condition in process result (memory leak), fix infinite loop in donors_list

See merge request lab2425_autumn/pintos_22!33
2024-11-11 22:24:39 +00:00
EDiasAlberto
98a5818406 add file_deny_write and file_allow_write to process creation and exiting to make executable read-only 2024-11-11 17:55:24 +00:00
18c884234d Fix race-condition in process result (memory leak), fix infinite loop in donors_list 2024-11-11 17:35:49 +00:00
EDiasAlberto
5b1e4b561b merge process-wait 2024-11-11 15:50:21 +00:00
sBubshait
115c650c55 Fix Bug in thread initialisation: only init hash if USERPROG is defined 2024-11-08 19:10:42 +00:00
EDiasAlberto
92e93b8060 Implement syscall for file opening and refactor open_files initialisation in thread.c w/ S. 2024-11-08 15:33:47 +00:00
sBubshait
5bd94894e0 Update thread structure to add a hash table of open files and initialise it, w/ E 2024-11-08 15:13:04 +00:00
6ed1ccd21e Fix process_result locking by acquiring in process_wait as well to prevent freeing memory too early 2024-11-08 10:50:10 +00:00
84fe637c7e Remove process_result lock since it is an invalid solution
TODO : synchronise process_result in another way
2024-11-08 09:16:18 +00:00
fde70dcf59 Implement process_wait. 2024-11-08 03:56:15 +00:00
7349b4e66f Fix typo list_insert -> list_push_back for thread.child_results 2024-11-08 03:55:34 +00:00
ec8547aec9 Implement creation of process results 2024-11-08 03:31:48 +00:00
ddcd59fdf8 Add child and own process result information to struct thread 2024-11-08 03:30:58 +00:00
Dias Alberto, Ethan
5535cbae24 Merge branch 'master' into 'system-calls'
Merge refactor and removal of duplicated code into section-specific branch

See merge request lab2425_autumn/pintos_22!25
2024-11-06 16:45:53 +00:00
sBubshait
91cef4d650 Refactor lock release and sema up to remove unnecessary code 2024-11-06 15:36:56 +00:00
sBubshait
2dccd87a76 Update thread to add exit_status, intialised to -1, into the thread structure, w/ E 2024-11-05 22:38:09 +00:00
Themis Demetriades
4066354f8a Refactor thread_create () to call thread_get_priority in order to retrieve priority 2024-10-25 17:03:18 +01:00
sBubshait
c2414ec54d Add priority_less for comparing threads based on priority and Refactor sema up to use list_max for clarity 2024-10-25 16:04:55 +01:00
sBubshait
30ab3ae861 Update thread_create to only yield CPU to the new thread if necessary 2024-10-25 15:47:19 +01:00
sBubshait
81309dcda9 Refactor sema_up to follow PintOS styling of if statements 2024-10-25 15:44:56 +01:00
6e072a557f Allow priority donation with BSD scheduler.
- Recalculate priority with donations after BSD priority updates
- Remove mlfqs checks from lock_acquire
2024-10-25 14:03:55 +01:00
093c6efd30 Re-sort ready_list when priorities update + PRI_UPDATE_FREQ
- PRI_UPDATE_FREQ is a separate value from TIME_SLICE, they just
  happen to be set the same.
2024-10-25 09:13:27 +01:00
EDiasAlberto
b88baede64 rename recent_cpu update function 2024-10-24 22:45:49 +01:00
EDiasAlberto
7d196ffc57 adjust spacing around brackets to fit styling conventions 2024-10-24 22:30:38 +01:00
EDiasAlberto
39f4edd5e6 remove unnecessary curly brace in thread_tick () 2024-10-24 22:09:28 +01:00
EDiasAlberto
60acc2e58d refactor thread_mlfqs checks in synch.c 2024-10-24 21:46:39 +01:00
EDiasAlberto
a6a0c4ad25 remove empty lines in thread.c 2024-10-24 20:47:30 +01:00
EDiasAlberto
74657bbf9c reorder init_thread for clarity 2024-10-24 20:34:44 +01:00
EDiasAlberto
0b230131f1 refactor thread struct to keep all changes together 2024-10-24 20:17:39 +01:00
EDiasAlberto
49a9284f02 refactor fixed-point.h to match style standards 2024-10-24 20:16:40 +01:00
EDiasAlberto
20be75748c replace thread_mlfqs checks in priority calculations with assertions 2024-10-23 19:57:17 +01:00
EDiasAlberto
d8c843f16a add mlfqs condition checking in synchronisation primitives 2024-10-23 19:37:27 +01:00
EDiasAlberto
1fb101c365 remove repeated comparator and reorder thread_init operations 2024-10-23 18:56:48 +01:00
EDiasAlberto
c357126cc1 fix missing curly brace 2024-10-23 17:51:48 +01:00
Dias Alberto, Ethan
ed11c61f87 Merge branch 'master' into 'BSD-merged', fixing merge conflicts
# Conflicts:
#   src/threads/thread.c
2024-10-23 16:30:24 +00:00
Themis Demetriades
95386971e2 Update lock_release to disable interrupts in critical sections w/ S 2024-10-23 16:45:42 +01:00
sBubshait
4879775d0b Update donate priority to add an assertion that intrrupts are disabled, w/ T 2024-10-23 16:32:40 +01:00
sBubshait
6223846fde Update lock_acquire to disable interrupts to eliminate race-conditions, w/ T 2024-10-23 16:30:38 +01:00
Themis Demetriades
f9d82c92de Update thread_recalculate_priority to disable interrupts preventing race conditions for access to donors and priorities w/ S 2024-10-23 16:16:25 +01:00
Themis Demetriades
5f8dea21be Fix donate_priority to disable interrupts for entire update of possibly-ready donatee's priority 2024-10-23 14:10:48 +01:00
Themis Demetriades
b0074c80f0 Refactor ready_list_reinsert to require being called with interrupts disabled 2024-10-23 13:51:07 +01:00
Themis Demetriades
2cd4da17a4 Refactor donate_priority to only allow for the current thread to donate its priority 2024-10-23 13:42:36 +01:00
Themis Demetriades
a875d5fcb4 Update donate_priority to only attempt to sort position of the donee that isn't waiting for a lock 2024-10-23 13:37:43 +01:00
sBubshait
d82176a2e2 Refactor lock release to follow PintOS indent style and use list functoins, w/ T 2024-10-22 22:52:29 +01:00