uboot/doc/README.sched
<<
>>
Prefs
   1Notes on the scheduler in sched.c:
   2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   3
   4  'sched.c' provides an very simplistic multi-threading scheduler.
   5   See the example, function 'sched(...)', in the same file for its
   6   API usage.
   7
   8   Until an exhaustive testing can be done, the implementation cannot
   9   qualify as that of production quality. It works with the example
  10   in 'sched.c', it may or may not work in other cases.
  11
  12
  13Limitations:
  14~~~~~~~~~~~~
  15
  16  - There are NO primitives for thread synchronization (locking,
  17    notify etc).
  18
  19  - Only the GPRs and FPRs context is saved during a thread context
  20    switch. Other registers on the PowerPC processor (60x, 7xx, 7xxx
  21    etc) are NOT saved.
  22
  23  - The scheduler is NOT transparent to the user. The user
  24    applications must invoke thread_yield() to allow other threads to
  25    scheduler.
  26
  27  - There are NO priorities, and the scheduling policy is round-robin
  28    based.
  29
  30  - There are NO capabilities to collect thread CPU usage, scheduler
  31    stats, thread status etc.
  32
  33  - The semantics are somewhat based on those of pthreads, but NOT
  34    the same.
  35
  36  - Only seven threads are allowed. These can be easily increased by
  37    changing "#define MAX_THREADS" depending on the available memory.
  38
  39  - The stack size of each thread is 8KBytes. This can be easily
  40    increased depending on the requirement and the available memory,
  41    by increasing "#define STK_SIZE".
  42
  43  - Only one master/parent thread is allowed, and it cannot be
  44    stopped or deleted. Any given thread is NOT allowed to stop or
  45    delete itself.
  46
  47  - There NOT enough safety checks as are probably in the other
  48    threads implementations.
  49
  50  - There is no parent-child relationship between threads. Only one
  51    thread may thread_join, preferably the master/parent thread.
  52
  53(C) 2003 Arun Dharankar <ADharankar@ATTBI.Com>
  54