Commit Graph

231 Commits

Author SHA1 Message Date
Themis Demetriades
b64434fb9d Move definition of maximum file name length from <syscall> to file.h 2024-11-08 15:41:35 +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
sBubshait
5bbe7a03c0 Add in syscall hash helper functions for open_file struct: fd_hash and fd_less, w/ E 2024-11-08 15:12:08 +00:00
sBubshait
b112824a64 Implement the exec system call through process_execute, w/ E 2024-11-08 14:41:27 +00:00
EDiasAlberto
dca9d8f5a3 Implement syscall for file removal w/ S. 2024-11-08 14:35:23 +00:00
EDiasAlberto
a8676f2e09 Implement syscall for file creation, with relevant locks w/ S. 2024-11-08 14:34:08 +00:00
sBubshait
26e38be761 Update validate_user_pointer to check if the ptr is mapped to a physical memory address, w/ E 2024-11-08 14:21:16 +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
d95894085b Implement syscall_exec via process_execute 2024-11-08 09:15:22 +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
Demetriades, Themis
ed09e0b08e Merge branch 'system-calls' into 'master'
Add support for some basic system calls and args handling correctly.

See merge request lab2425_autumn/pintos_22!29
2024-11-07 19:36:29 +00:00
sBubshait
39018419cd Fix Bug in Process.c to print the exit statement in process_exit instead of exit syscall to handle unexpected/bad exits 2024-11-07 12:15:29 +00:00
sBubshait
6a3cf67d33 Fix Bug in process.c initialising a char to NULL 2024-11-07 11:55:26 +00:00
sBubshait
2bfde66d22 Merge remote-tracking branch 'origin/user-programs-stdout' into system-calls 2024-11-07 11:45:36 +00:00
Themis Demetriades
273fb48b31 Fix stack initialization to pass stack addreses (rather than thread addresses) for the arguments and only pass name a single time 2024-11-07 00:40:52 +00:00
Themis Demetriades
26ae7ac02e Fix bug in stack creation which would count one extra argument for argc 2024-11-06 23:57:48 +00:00
Themis Demetriades
1ca9d09512 Update exit () syscall to print correct termination message 2024-11-06 23:01:10 +00:00
Themis Demetriades
b2764cfa0c Revert setup_stack pointer decrement 'hack' faking stack initialization 2024-11-06 22:46:11 +00:00
Themis Demetriades
4020a140d2 Fix removal of 'timer.h' include needed for calling timer_sleep in process module 2024-11-06 22:36:43 +00:00
Demetriades, Themis
87dd84a9b9 Merge branch 'user-programs' into 'user-programs-stdout'
Merge basic system calls with stack set-up infrastructure

See merge request lab2425_autumn/pintos_22!27
2024-11-06 22:21:28 +00:00
Demetriades, Themis
014642c789 Merge branch 'user-programs-stdout' into 'user-programs'
# Conflicts:
#   src/userprog/process.c
2024-11-06 22:20:48 +00:00
Dias Alberto, Ethan
dfa42b9d25 Merge branch 'user-programs' into 'system-calls'
Implement fake stack and temporary timer change

See merge request lab2425_autumn/pintos_22!26
2024-11-06 16:57:10 +00:00
Dias Alberto, Ethan
1a4afc9ec7 Merge branch 'system-calls' into 'user-programs'
# Conflicts:
#   src/userprog/process.c

Fix conflict in differing placeholder process_wait implementations
2024-11-06 16:56:43 +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
Dias Alberto, Ethan
f685086d05 Merge branch 'refactor-semaphore' into 'master'
Refactor synch.c to remove code duplication in lock release

See merge request lab2425_autumn/pintos_22!23
2024-11-06 16:42:26 +00:00
Dias Alberto, Ethan
2fefdef605 Merge branch 'user-programs-temporary-fix' into 'user-programs'
Temporary fixes for process waiting and stack setup to allow simple user programs to run

See merge request lab2425_autumn/pintos_22!24
2024-11-06 16:41:49 +00:00
sBubshait
fcb7e9e441 Update setup_stack to temporarily fake set-up for a stack to prevent page faults in no arg user programs 2024-11-06 15:48:27 +00:00
sBubshait
ab716de0a6 Update process_wait to temporarily sleep for 1 second to allow user programs to run 2024-11-06 15:46:47 +00:00
sBubshait
91cef4d650 Refactor lock release and sema up to remove unnecessary code 2024-11-06 15:36:56 +00:00
Themis Demetriades
b0c1923d44 Update stack argument initialization behaviour to terminate creation of process on failing memory allocations 2024-11-06 12:28:58 +00:00
sBubshait
5aac37d167 Add temporary fixes to process_wait and setup stack, w/ E 2024-11-05 23:28:17 +00:00
sBubshait
02fff62ca2 Refactor syscall.c to follow PintOS styling, w/ E 2024-11-05 23:24:41 +00:00
EDiasAlberto
f4290c31f3 Implement syscall_read for console input w/ S. 2024-11-05 23:20:18 +00:00
sBubshait
01933cb5de Implement the write system call, w/ E 2024-11-05 23:07:07 +00:00
EDiasAlberto
b3e23eb1cc Implement system call wait w/ S. 2024-11-05 22:48:35 +00:00
EDiasAlberto
421f2c1206 Refactor function names and includes in syscall.c to avoid conflicts w/ S. 2024-11-05 22:46:21 +00:00
sBubshait
e9c4061531 Implement the exit system call, w/ E 2024-11-05 22:38:45 +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
b4c41b0a6a Remove superfluous include in process.c 2024-11-04 12:57:29 +00:00
Themis Demetriades
2a890d5bd2 Reformat calculation of padding size in stack set-up to increase clarity 2024-11-04 12:54:18 +00:00
Themis Demetriades
6c6ce77824 Implement complete stack initialization for user processes, without accounting for overflow 2024-11-04 01:11:19 +00:00
EDiasAlberto
f8e529e877 Add UNUSED tag to system call function skeletons w/ S. 2024-11-04 01:02:04 +00:00
EDiasAlberto
2a9ab5ec97 fix merge conflicts 2024-11-04 01:00:33 +00:00
EDiasAlberto
4c27aa0203 Complete syscall lookup table, and syscall stubs and skeletons w/ S. 2024-11-04 00:57:19 +00:00
sBubshait
5e2342fad7 Update syscall to make syscall_number an unsigned integer instead of an int 2024-11-04 00:49:47 +00:00