-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
46 lines (46 loc) · 2.05 KB
/
CHANGELOG
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
40
41
42
43
44
45
46
0.4.0dev:
* local-timer based scheduling support added
* MLFQ scheduling
* CFS scheduling
* FCFS scheduling
* improved PenaltySchedulerAddon
* schedulers now return time-slices, which is used for the local-timer based scheduling
* the addon uses these time-slices to measure the penalty
* add TimeSliceFixer
* add TimeSliceMaxer
* ModuleBuilder added for more convenient hierarchy specification
* ModuleBuilderThread added for dynamic hierarchy expansion
* removal of "unsuccessful" (i.e. non-atomic) context switches
* decreased binary log buffering for faster output
* thread statistics changes (and fixes!)
* logging of statistics
* plotting tool for statistics
* scheduler and VCPU threads wait until schedulers have ready threads
* when a scheduler yields, the parent module knows that its child does not have any ready threads
* normally idle threads would wait for some signal, i.e. message, to arrive
* thus a module would resume the scheduler if it previously yielded, but now has a message waiting
* in the simulator, threads wake up "by themselves", which is why we need to do this
* previously, yielding schedulers were assumed to still have ready threads
* they would just yield again though, leading to an alternating series of "schedule A, A yields"
0.3.1:
* PenaltySchedulerAddon fix
0.3.0:
* thread statistics fixes
* PeriodicWorkThread fixes
* SchedulerAddon added
* thread statistics gather individual data points, instead of just the sum
* VCPUs return after their thread yielded (see 219745623331c0d7d787b505470d745d645b20c0 for more info)
* performance optimizations in hot paths
0.2.0:
* thread/scheduling fixes
* Shortest Job First scheduling
* no heuristics, just peeks into the thread's internals
* CPU redesign
* read about new design in HACKING
* allows adding multi-core support and interrupt handling simulation
0.1.0:
* initial release
* Round Robin scheduling
* MessagePack, Plaintext and SVG logging
* replay.py to convert from MessagePack to Plaintext or SVG
* module hierarchy and hierarchical scheduling support