Commit Graph

429 Commits

Author SHA1 Message Date
Quentin Legot
8a389ea9d3 Add comments 2023-05-24 22:00:16 +02:00
AmauryBrodu
f9de7f93bc remplacement du lecteur rédacteur par les lock 2023-05-10 12:51:12 +02:00
François Autin
e3654de298 Fixed nobody to run 2023-05-09 23:17:51 +02:00
Quentin Legot
98fe63f487 print exit code when using debug machine, add matmult 2023-05-09 23:16:16 +02:00
François Autin
15a04fb9da
Fixed tests failing because of a too small memory 2023-05-09 20:52:00 +02:00
François Autin
86113da9d3
Fixed missing UserStackSize from default configuration 2023-05-09 19:32:33 +02:00
Quentin Legot
7be0c0accc Add user_stack_size to Machine and use it for threads sp 2023-05-09 17:01:52 +02:00
Quentin Legot
2884d5d479 Fix shutdown test exception 2023-05-07 16:09:45 +02:00
Quentin Legot
c862c42e43 Fix instructions tests 2023-05-07 16:02:48 +02:00
Quentin Legot
5000c28b97 Fix endianness issues particulary with strings 2023-05-07 15:51:38 +02:00
Legot Quentin
e0eb027aea Merge branch 'thread_scheduler' into 'thread_join'
Merge Thread scheduler to thread_join

See merge request simpleos/burritos!16
2023-05-04 22:21:22 +00:00
François Autin
bec0143a40 Added missing current_thread assignment in test_lock_multiple 2023-05-04 23:44:10 +02:00
Quentin Legot
28cd0a9f6e Try to fix double free 2023-05-04 22:58:13 +02:00
Quentin Legot
43f023e0b0 Fix join not working on join.c 2023-05-04 22:19:00 +02:00
Quentin Legot
a211e93905 try to implement join 2023-04-23 15:42:33 +02:00
François Autin
1055e6a0ac
Fixed lock_release behaviour when multiple users of given lock 2023-04-20 15:34:49 +02:00
François Autin
c278236d81
Updated thread_manager module documentation 2023-04-20 15:21:28 +02:00
Rémi Rativel
597ffa753a test lock for multiple threads
Signed-off-by: Rémi Rativel <remi.rativel@etudiant.univ-rennes1.fr>
2023-04-20 15:20:28 +02:00
François Autin
aba2fbc718
Updated lock_release to update lock in objaddr list 2023-04-20 14:50:44 +02:00
Rémi Rativel
c33df28307 Merging
Signed-off-by: Rémi Rativel <remi.rativel@etudiant.univ-rennes1.fr>
2023-04-20 14:43:15 +02:00
François Autin
bb1d2383bb Simplified Rc<RefCell<Thread>> 2023-04-20 11:31:25 +02:00
François Autin
780ed4b461
📝 Added module documentation for thread_manager 2023-04-20 00:05:37 +02:00
François Autin
5c66577989
Cleanup of clippy warnings 2023-04-19 23:38:58 +02:00
François Autin
fe519555cc
Removed thread_to_be_destroyed field and associated methods
This used to exist in NachOS' source code as memory management is manual in C++.
Here, simply dropping the Thread from the thread list allows the borrow checker to
automatically destroy the thread.
2023-04-19 23:33:37 +02:00
François Autin
8b13cc6ef6
♻️ Clean-up of some nasty nesting in sem_v and sem_p 2023-04-19 23:24:51 +02:00
François Autin
5734e02b30
♻️ Refactored lock_acquire 2023-04-19 23:13:27 +02:00
François Autin
f55189f1fe ♻️ Refactored lock_release 2023-04-19 21:30:28 +02:00
François Autin
efe00ffa26 📝 Documentation update 2023-04-19 18:12:27 +02:00
François Autin
73ac8d3083 BurritOS now read configuration file 2023-04-19 18:09:08 +02:00
François Autin
1c4c51b0ba Merge branch 'settings' into thread_scheduler 2023-04-19 16:39:58 +02:00
François Autin
74a0960ec3 Added user configuration to utility module 2023-04-19 16:39:39 +02:00
Rémi Rativel
32c1237c26 Tests lock
Signed-off-by: Rémi Rativel <remi.rativel@etudiant.univ-rennes1.fr>
2023-04-19 15:52:31 +02:00
Rémi Rativel
35b2949243 implemented lock_release in thread_manager.rs, for this, I derived the clone function for lock in synch.rs and list in list.rs 2023-04-18 12:13:56 +02:00
Rémi Rativel
ec2f50f7d3 implemented sc_lock_release
TODO : to implement lock_release in thread_manager
2023-04-13 14:45:57 +02:00
Quentin Legot
3244584da9 Add debug message and debug_assert 2023-04-13 02:10:09 +02:00
Quentin Legot
232617c32e Add debug field to thread_manager and tried to fix sc_join (not worked :-( ) 2023-04-13 02:05:21 +02:00
Quentin Legot
f144438490 loader now return better understanable errors, fix when compiler when to use bss section, add join exception, fix get_string_param, add support for thread in obbAddr, add a test 2023-04-13 00:18:51 +02:00
Samy Solhi
05f72af035 added lock acquire system call 2023-04-13 00:17:34 +02:00
Samy Solhi
6e6d3424f5 added lock create and destroy system calls 2023-04-12 23:10:26 +02:00
Samy Solhi
6c3655bd78 write semaphore id in machine on creation 2023-04-12 23:03:38 +02:00
Samy Solhi
c419926a4c added sc_sem_remove 2023-04-12 23:00:12 +02:00
Samy Solhi
19356a36d9 add new semaphore to obj_addrs in sc_sem_create 2023-04-12 22:54:40 +02:00
Quentin Legot
35736821c0 lint: remove some warning 2023-04-12 15:32:46 +02:00
Quentin Legot
752b70e448 Remove old P and V semaphore function and moved tests 2023-04-12 15:22:22 +02:00
Quentin Legot
21f3a72a3d Fix exceptions with semaphore 2023-04-12 14:49:08 +02:00
Quentin Legot
134e2bd2cc Fix a lot of errors 2023-04-12 14:01:39 +02:00
Quentin Legot
e8629b1ebf Moving sc_new_thread to it own function 2023-04-12 13:55:32 +02:00
François Autin
0d70751279
Moved sc_sem_create to own function 2023-04-12 13:50:54 +02:00
François Autin
355071a2f1
Added sc_p call 2023-04-12 13:28:55 +02:00
François Autin
729eba656c
Added sc_v call 2023-04-12 13:25:33 +02:00