summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Nick Downing [Sun, 17 Mar 2019 03:16:54 +0000 (14:16 +1100)]
Fix a bug of requiring a certain amount of free swap, when swap is preallocated
Nick Downing [Sun, 17 Mar 2019 03:00:27 +0000 (14:00 +1100)]
Fix a bug of victim_core_size being used uninitialized without PREALLOCATE_CORE
Nick Downing [Sun, 17 Mar 2019 02:24:46 +0000 (13:24 +1100)]
Implement PREALLOCATE_CORE and PREALLOCATE_SWAP compile time options
Nick Downing [Sat, 16 Mar 2019 22:27:26 +0000 (09:27 +1100)]
Improve use of alloc()/realloc()/free() to remove allocs and reallocs of size 0
Nick Downing [Sat, 16 Mar 2019 14:03:15 +0000 (01:03 +1100)]
Tidy up debugging code
Nick Downing [Sat, 16 Mar 2019 13:58:21 +0000 (00:58 +1100)]
Replace core_item and swap_item in the process structure with just pool_item
Nick Downing [Sat, 16 Mar 2019 13:47:56 +0000 (00:47 +1100)]
Keep process and victim pool items in dedicated storage during swapping (should generate smaller code, also ensures a process has only one pool item at a time)
Nick Downing [Sat, 16 Mar 2019 12:43:33 +0000 (23:43 +1100)]
Don't track victim or in-swap processes in LRU list (should've thought of this)
Nick Downing [Sat, 16 Mar 2019 11:36:31 +0000 (22:36 +1100)]
Use process->size == -1 to mark free process not process->lru_item.prev == NULL
Nick Downing [Fri, 15 Mar 2019 23:55:25 +0000 (10:55 +1100)]
Reverse swap addressing, so that swap is allocated from top down, and copies between memory and swap always go forward with respect to the actual backing store
Nick Downing [Fri, 15 Mar 2019 13:21:48 +0000 (00:21 +1100)]
Combine in-core and in-swap LRU list, using global victim pointer to first swap
Nick Downing [Fri, 15 Mar 2019 13:02:52 +0000 (00:02 +1100)]
Make the current victim be stored at head of in-swap LRU list instead of tail of in-core LRU list, strengthen invariants about core and/or swap membership
Nick Downing [Fri, 15 Mar 2019 07:59:39 +0000 (18:59 +1100)]
Use #define to improve casting for lru_item vs process pointers
Nick Downing [Fri, 15 Mar 2019 07:17:04 +0000 (18:17 +1100)]
Change process_head/process_item to lru_head/lru_item which is more descriptive
Nick Downing [Thu, 14 Mar 2019 14:31:39 +0000 (01:31 +1100)]
Process test, it is based on the pool test but involves two pools, one representing core and the other representing swap, and a new command 'run' which moves the given process fully into core, using an LRU algorithm to boot out some others
Nick Downing [Mon, 11 Mar 2019 01:58:08 +0000 (12:58 +1100)]
Initial commit, seemingly correct malloc/realloc/free pool implementation, where the user supplies the control blocks (instead of them appearing at the start of an allocation), and existing allocations can be moved to make room as needed