Oracle 12c Background Processes

In startup order, the processes running on my test Oracle 12c instance are shown below. Those below the "empty" line are not started on my system, but either start later, or are fairly common and are included for completeness.
PMONProcess MonitorCleans buffer cache and frees resources when processes die/are killed.
Restarts Oracle processes which have died/been killed (unless stopped by Oracle)
PSP0Process SpawnerInstance startup process to spawn other background Oracle processes
VKTMVirtual Keeper of TimeTracks time
  a) "wall clock" with one second interval, and
  b) high resolution for interval measurement
GEN0General Task ExecutionPerforms SQL and DML, but I don't yet know for what purpose
MMANMemory ManagerInstance memory management - resizing of memory areas
DIAGDiagnostic CapturePerforms diagnostic dumps when requested by other processes
DBRMDatabase Resource ManagerResource plan management related tasks
DIA0DiagnosticDetects and resolves hangs and deadlocks
DBW0Database WriterWrites dirty/modified buffer cache blocks to disk
LGWRLog WriterUses LGnn to write redo log buffer to disk on every commit,
wakes up every three seconds, and may write when it wakes up
writes redo before DBWx can write an associated dirty block
CKPTCheckpointUpdate headers of all datafiles when a checkpoint is performed
SMONSystem MonitorPerform recovery at instance startup or tablespace being brought online.
Cleans up TEMP segments which have been finished with.
Coalesces contiguous free extents in dictionary managed tablespaces.
RECORecovererTidies up after failed distributed transactions
LREGListener RegistrationRegisters database information with the listener
MMONManageability MonitorMaintains AWR (Automatic Workload Repository) data
MMNLManageability Monitor LiteWrite statistics from the SGA ASH buffer to disk
TMONTransport MonitorRumoured to be related to threading processes in 12c, seems to wake up every three seconds
SMCOSpace Management CoordinatorCoordinates Wnnn slave processes to reclaim space, and proactively allocate space
AQPCAQ Process CoordinatorAdmin for Advanced Queueing
CJQ0Job Queue CoordinatorUsed for batch processes
ARC0ArchiverCopies online redo log files to offline storage, including to standby databases
DnnnDispatcher ProcessPerforms network communication
FBDAFlashback Data ArchiveStores "before change" versions of rows in tracked tables
JnnnJob Queue SlaveProcess spawned by CJQ0 to run one or more job(s)
LGnnLog Writer WorkerSpawned by LGWR to write redo to the online redo log
PnnnParallel Query Slave
QnnnAQ Server Class Process
QMnnAQ Master Class Process
SnnnShared Server Process
TTnnRedo Transport SlaveShips redo from current online and standby redo logs to remote standby
WnnnSpace Management WorkerSlave process spawned by SMCO to allocate or reclaim space