Commit Graph

21 Commits

Author SHA1 Message Date
293a992133
kernel: Add a kernel_wait_for_event() function to avoid weird calls to kernel_wait in kthreads
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-04 23:43:00 +02:00
3a1c22bb93
kernel: Add keyboard combinations for debug information dumps
Ctrl+Alt+E: Dump threads
Ctrl+Alt+M: Dump memory usage
Ctrl+Alt+H: Dump heap state
2023-05-04 23:32:48 +02:00
96f3d29d37
kernel: Tell the reap thread to run when it's needed, instead of checking every 200 ms 2023-05-04 23:06:00 +02:00
42eb0a1d74
kernel: Freeze waitpid()'s calling thread until a child tells us it's done, instead of polling it every 10 ms 2023-05-04 23:03:31 +02:00
4616997f5b
kernel: Store a thread's parent directly instead of its parent's PID 2023-05-04 22:58:04 +02:00
52ce4b28aa
Scheduler: Remove redundant check in for_each_child
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-28 15:22:16 +02:00
7b4cfd52cd
Scheduler: Don't search threads spawned before the current thread to find children
All checks were successful
continuous-integration/drone/push Build is passing
Children will always be spawned later (and thus have a higher PID) than their parent.
2023-04-28 15:19:01 +02:00
bcdec62f51
kernel: Allow returning early from Scheduler::for_each_child 2023-04-28 15:13:53 +02:00
77dcfab5ef
kernel: Run the initialization process in a thread
All checks were successful
continuous-integration/drone/push Build is passing
This way we can give it more stack and also reclaim it later!
2023-04-28 13:23:07 +02:00
d48d0efb07
kernel: Add names to threads
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-24 21:05:38 +01:00
7efcc06090
kernel+init+sh: Implement parent processes and waitpid(-1, ...)
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-24 17:37:04 +01:00
b6fb5f3dfe
kernel+libc: Implement waitpid()
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-23 22:42:24 +01:00
54f2d35416
kernel: Add the fork() system call 2023-03-18 23:45:48 +01:00
ff468db675
kernel/ELF+Scheduler: Use VFS instead of TarStream
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-11 10:34:08 +01:00
a33a72915e
Scheduler: Creation, destruction and switching of userspace tasks :))
From a TarStream. Not optimal, but OK for the moment.
2023-01-05 21:52:26 +01:00
5854e5e530
Add newlines at end-of-file 2023-01-02 13:07:29 +01:00
a11a5dec1f
DoublyLinkedList -> LinkedList
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-19 12:43:23 +01:00
92a7004c2f
Move the reaping logic to Scheduler 2022-12-19 12:24:15 +01:00
751377de0a
Scheduler: Make it possible for a thread to stop existing
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-18 18:43:34 +01:00
d93d95f23c Add sleeping mechanism 2022-12-07 16:11:59 +00:00
13f5d09cfd Add a Scheduler!! 2022-12-07 16:11:59 +00:00