This is a glossary of CS - mainly comp-arch terms and their meanings, explained in their simplest ways.
coherence: Ensuring that a computer reads the result of the latest write
Typically used with cache coherence
consistency: An ordering of otherwise concurrent memory instructions
fence: On operations that occur out of order, ensure that all previous instructions have occured before continuing. Thread local.
barrier: When multiple threads are running, ensure that all threads have reached this point before continuing. Thread global.
secure binding: Proof that an application has access to a shared kernel resource (like hardware)
An exokernel or -kernel environment will move traditional kernel features into userspace. To reduce the amount of IPC required, a secure binding separates:
Once an application is authorized¹ to use a resource, the kernel caches the resource's ID, and can quickly enforce the validity of an application access at runtime.
exokernel: A libOS - an OS where the kernel's job is to present hardware resources directly to applications through high-level abstractions
An OS pushing the end-to-end argument. Hardware resources are managed by user-level applications (often via library functions), but that access is managed by the kernel.
microkernel: A minimalistic kernel which provides several 'optional' OS services inside of userspace
RaceTrack: A race condition detector for the Microsoft Common Language Runtime
LightVM: A lightweight virtualization regime comparable to containers
Unikernel: A kernel that runs a singular process
Tinyx: A tool that enables creating tailor-made, trimmed-down Linux virtual machines
Xen: A hypervisor…
NVIDIA Fermi: A GPGPU architecture by NVIDIA
There is a whitepaper which describes the decisions used to make GPUs
CPU: A general purpose computing device
Despite the 'general purpose nature' CPUs tend to be best at single-threaded (or minorly multi-threaded), branch-heavy workloads which have good locality and can benefit from speculation