-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
39 lines (31 loc) · 1 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
1. Paging
- Relocate kernel?
- Track owner - kernel/pid
- Locks?
- Use first fit - try to free later page tables
- Bitmap: use ffs and 0:used 1:free
2. Malloc
- Track usage
- Use a sorted linked list
- Above needs a recursion tracker - make sure we don't overflow
- Use a static var - this might need to become per-pid with threads
- Doubly linked list of free/malloc'ed areas? is this really necessary?
- Necessary: merge adjacent free areas - need this to reduce fragmentation
- Optional: round up <256byte allocs to nearest power of 2 and use a bitmap
to track allocs
3. FAT
- Think about: file caches/memory pressure
4. Task switches
5. Scheduler
- Round robin design initially
5 1/2. Atomic ops/Locks
- Optional: record spinlock contention
- Optional: name spinlocks
6. Exceptions/asserts
- Use ud2 instruction?
- stack unwinds?
7. Shell
- Visual memory walker
- kbd needs work
8. Init
- Store function pointers in a section, call all functions in that section